epan/dissectors/pidl/samr/samr.cnf cnf_dissect_lsa_BinaryString => lsarpc_dissect_str...
[wireshark-sm.git] / epan / dissectors / packet-dcerpc-svcctl.c
blobee9ed2ac4d341fcc108343e25486530d631aa663
1 /* DO NOT EDIT
2 This file was automatically generated by Pidl
3 from svcctl.idl and svcctl.cnf.
5 Pidl is a perl based IDL compiler for DCE/RPC idl files.
6 It is maintained by the Samba team, not the Wireshark team.
7 Instructions on how to download and install Pidl can be
8 found at https://wiki.wireshark.org/Pidl
9 */
12 #include "config.h"
13 #include <string.h>
14 #include <wsutil/array.h>
15 #include <epan/packet.h>
16 #include <epan/tfs.h>
18 #include "packet-dcerpc.h"
19 #include "packet-dcerpc-nt.h"
20 #include "packet-windows-common.h"
21 #include "packet-dcerpc-svcctl.h"
22 void proto_register_dcerpc_svcctl(void);
23 void proto_reg_handoff_dcerpc_svcctl(void);
25 /* Ett declarations */
26 static int ett_svcctl_service;
27 static int ett_svcctl_service_name;
28 static int ett_svcctl_display_name;
29 static int ett_dcerpc_svcctl;
30 static int ett_svcctl_security_secinfo;
31 static int ett_svcctl_SERVICE_LOCK_STATUS;
32 static int ett_svcctl_svcctl_ControlsAccepted;
33 static int ett_svcctl_SERVICE_STATUS;
34 static int ett_svcctl_SERVICE_STATUS_PROCESS;
35 static int ett_svcctl_ENUM_SERVICE_STATUSW;
36 static int ett_svcctl_ENUM_SERVICE_STATUSA;
37 static int ett_svcctl_svcctl_MgrAccessMask;
38 static int ett_svcctl_svcctl_ServiceAccessMask;
39 static int ett_svcctl_QUERY_SERVICE_CONFIG;
40 static int ett_svcctl_svcctl_ArgumentString;
41 static int ett_svcctl_svcctl_ArgumentStringA;
44 /* Header field declarations */
45 static int hf_svcctl_ENUM_SERVICE_STATUSA_display_name;
46 static int hf_svcctl_ENUM_SERVICE_STATUSA_service_name;
47 static int hf_svcctl_ENUM_SERVICE_STATUSA_status;
48 static int hf_svcctl_ENUM_SERVICE_STATUSW_display_name;
49 static int hf_svcctl_ENUM_SERVICE_STATUSW_service_name;
50 static int hf_svcctl_ENUM_SERVICE_STATUSW_status;
51 static int hf_svcctl_EnumServicesStatusExA_group_name;
52 static int hf_svcctl_EnumServicesStatusExA_info_level;
53 static int hf_svcctl_EnumServicesStatusExA_needed;
54 static int hf_svcctl_EnumServicesStatusExA_offered;
55 static int hf_svcctl_EnumServicesStatusExA_resume_handle;
56 static int hf_svcctl_EnumServicesStatusExA_scm_handle;
57 static int hf_svcctl_EnumServicesStatusExA_service_returned;
58 static int hf_svcctl_EnumServicesStatusExA_service_type;
59 static int hf_svcctl_EnumServicesStatusExA_services;
60 static int hf_svcctl_EnumServicesStatusExA_state;
61 static int hf_svcctl_EnumServicesStatusExW_group_name;
62 static int hf_svcctl_EnumServicesStatusExW_info_level;
63 static int hf_svcctl_EnumServicesStatusExW_needed;
64 static int hf_svcctl_EnumServicesStatusExW_offered;
65 static int hf_svcctl_EnumServicesStatusExW_resume_handle;
66 static int hf_svcctl_EnumServicesStatusExW_scmanager;
67 static int hf_svcctl_EnumServicesStatusExW_service_returned;
68 static int hf_svcctl_EnumServicesStatusExW_service_type;
69 static int hf_svcctl_EnumServicesStatusExW_services;
70 static int hf_svcctl_EnumServicesStatusExW_state;
71 static int hf_svcctl_QUERY_SERVICE_CONFIG_dependencies;
72 static int hf_svcctl_QUERY_SERVICE_CONFIG_displayname;
73 static int hf_svcctl_QUERY_SERVICE_CONFIG_error_control;
74 static int hf_svcctl_QUERY_SERVICE_CONFIG_executablepath;
75 static int hf_svcctl_QUERY_SERVICE_CONFIG_loadordergroup;
76 static int hf_svcctl_QUERY_SERVICE_CONFIG_service_type;
77 static int hf_svcctl_QUERY_SERVICE_CONFIG_start_type;
78 static int hf_svcctl_QUERY_SERVICE_CONFIG_startname;
79 static int hf_svcctl_QUERY_SERVICE_CONFIG_tag_id;
80 static int hf_svcctl_SERVICE_LOCK_STATUS_is_locked;
81 static int hf_svcctl_SERVICE_LOCK_STATUS_lock_duration;
82 static int hf_svcctl_SERVICE_LOCK_STATUS_lock_owner;
83 static int hf_svcctl_SERVICE_STATUS_PROCESS_check_point;
84 static int hf_svcctl_SERVICE_STATUS_PROCESS_controls_accepted;
85 static int hf_svcctl_SERVICE_STATUS_PROCESS_process_id;
86 static int hf_svcctl_SERVICE_STATUS_PROCESS_service_exit_code;
87 static int hf_svcctl_SERVICE_STATUS_PROCESS_service_flags;
88 static int hf_svcctl_SERVICE_STATUS_PROCESS_state;
89 static int hf_svcctl_SERVICE_STATUS_PROCESS_type;
90 static int hf_svcctl_SERVICE_STATUS_PROCESS_wait_hint;
91 static int hf_svcctl_SERVICE_STATUS_PROCESS_win32_exit_code;
92 static int hf_svcctl_SERVICE_STATUS_check_point;
93 static int hf_svcctl_SERVICE_STATUS_controls_accepted;
94 static int hf_svcctl_SERVICE_STATUS_service_exit_code;
95 static int hf_svcctl_SERVICE_STATUS_state;
96 static int hf_svcctl_SERVICE_STATUS_type;
97 static int hf_svcctl_SERVICE_STATUS_wait_hint;
98 static int hf_svcctl_SERVICE_STATUS_win32_exit_code;
99 static int hf_svcctl_opnum;
100 static int hf_svcctl_service_buffer_size;
101 static int hf_svcctl_service_referent_id;
102 static int hf_svcctl_svcctl_ArgumentStringA_string;
103 static int hf_svcctl_svcctl_ArgumentString_string;
104 static int hf_svcctl_svcctl_ChangeServiceConfig2A_info;
105 static int hf_svcctl_svcctl_ChangeServiceConfig2A_info_level;
106 static int hf_svcctl_svcctl_ChangeServiceConfig2A_service_handle;
107 static int hf_svcctl_svcctl_ChangeServiceConfig2W_handle;
108 static int hf_svcctl_svcctl_ChangeServiceConfig2W_info;
109 static int hf_svcctl_svcctl_ChangeServiceConfig2W_info_level;
110 static int hf_svcctl_svcctl_ChangeServiceConfigA_binary_path;
111 static int hf_svcctl_svcctl_ChangeServiceConfigA_dependencies;
112 static int hf_svcctl_svcctl_ChangeServiceConfigA_display_name;
113 static int hf_svcctl_svcctl_ChangeServiceConfigA_error_control;
114 static int hf_svcctl_svcctl_ChangeServiceConfigA_load_order_group;
115 static int hf_svcctl_svcctl_ChangeServiceConfigA_password;
116 static int hf_svcctl_svcctl_ChangeServiceConfigA_service_handle;
117 static int hf_svcctl_svcctl_ChangeServiceConfigA_service_start_name;
118 static int hf_svcctl_svcctl_ChangeServiceConfigA_service_type;
119 static int hf_svcctl_svcctl_ChangeServiceConfigA_start_type;
120 static int hf_svcctl_svcctl_ChangeServiceConfigA_tag_id;
121 static int hf_svcctl_svcctl_ChangeServiceConfigW_binary_path;
122 static int hf_svcctl_svcctl_ChangeServiceConfigW_dependencies;
123 static int hf_svcctl_svcctl_ChangeServiceConfigW_display_name;
124 static int hf_svcctl_svcctl_ChangeServiceConfigW_dwDependSize;
125 static int hf_svcctl_svcctl_ChangeServiceConfigW_dwPwSize;
126 static int hf_svcctl_svcctl_ChangeServiceConfigW_error_control;
127 static int hf_svcctl_svcctl_ChangeServiceConfigW_load_order_group;
128 static int hf_svcctl_svcctl_ChangeServiceConfigW_password;
129 static int hf_svcctl_svcctl_ChangeServiceConfigW_service_handle;
130 static int hf_svcctl_svcctl_ChangeServiceConfigW_service_start_name;
131 static int hf_svcctl_svcctl_ChangeServiceConfigW_service_type;
132 static int hf_svcctl_svcctl_ChangeServiceConfigW_start_type;
133 static int hf_svcctl_svcctl_ChangeServiceConfigW_tag_id;
134 static int hf_svcctl_svcctl_CloseServiceHandle_object_handle;
135 static int hf_svcctl_svcctl_ControlService_control;
136 static int hf_svcctl_svcctl_ControlService_service_handle;
137 static int hf_svcctl_svcctl_ControlService_service_status;
138 static int hf_svcctl_svcctl_ControlsAccepted_SERVICE_ACCEPT_HARDWAREPROFILECHANGE;
139 static int hf_svcctl_svcctl_ControlsAccepted_SERVICE_ACCEPT_NETBINDCHANGE;
140 static int hf_svcctl_svcctl_ControlsAccepted_SERVICE_ACCEPT_PARAMCHANGE;
141 static int hf_svcctl_svcctl_ControlsAccepted_SERVICE_ACCEPT_PAUSE_CONTINUE;
142 static int hf_svcctl_svcctl_ControlsAccepted_SERVICE_ACCEPT_POWEREVENT;
143 static int hf_svcctl_svcctl_ControlsAccepted_SERVICE_ACCEPT_PRESHUTDOWN;
144 static int hf_svcctl_svcctl_ControlsAccepted_SERVICE_ACCEPT_SESSIONCHANGE;
145 static int hf_svcctl_svcctl_ControlsAccepted_SERVICE_ACCEPT_SHUTDOWN;
146 static int hf_svcctl_svcctl_ControlsAccepted_SERVICE_ACCEPT_STOP;
147 static int hf_svcctl_svcctl_ControlsAccepted_SERVICE_ACCEPT_TIMECHANGE;
148 static int hf_svcctl_svcctl_ControlsAccepted_SERVICE_ACCEPT_TRIGGEREVENT;
149 static int hf_svcctl_svcctl_ControlsAccepted_SERVICE_ACCEPT_USERMODEREBOOT;
150 static int hf_svcctl_svcctl_CreateServiceA_DisplayName;
151 static int hf_svcctl_svcctl_CreateServiceA_LoadOrderGroupKey;
152 static int hf_svcctl_svcctl_CreateServiceA_ServiceName;
153 static int hf_svcctl_svcctl_CreateServiceA_binary_path;
154 static int hf_svcctl_svcctl_CreateServiceA_dependencies;
155 static int hf_svcctl_svcctl_CreateServiceA_dependencies_size;
156 static int hf_svcctl_svcctl_CreateServiceA_desired_access;
157 static int hf_svcctl_svcctl_CreateServiceA_error_control;
158 static int hf_svcctl_svcctl_CreateServiceA_password;
159 static int hf_svcctl_svcctl_CreateServiceA_password_size;
160 static int hf_svcctl_svcctl_CreateServiceA_scm_handle;
161 static int hf_svcctl_svcctl_CreateServiceA_service_handle;
162 static int hf_svcctl_svcctl_CreateServiceA_service_start_name;
163 static int hf_svcctl_svcctl_CreateServiceA_service_type;
164 static int hf_svcctl_svcctl_CreateServiceA_start_type;
165 static int hf_svcctl_svcctl_CreateServiceA_tag_id;
166 static int hf_svcctl_svcctl_CreateServiceWOW64A_DisplayName;
167 static int hf_svcctl_svcctl_CreateServiceWOW64A_LoadOrderGroupKey;
168 static int hf_svcctl_svcctl_CreateServiceWOW64A_ServiceName;
169 static int hf_svcctl_svcctl_CreateServiceWOW64A_binary_path;
170 static int hf_svcctl_svcctl_CreateServiceWOW64A_dependencies;
171 static int hf_svcctl_svcctl_CreateServiceWOW64A_dependencies_size;
172 static int hf_svcctl_svcctl_CreateServiceWOW64A_desired_access;
173 static int hf_svcctl_svcctl_CreateServiceWOW64A_error_control;
174 static int hf_svcctl_svcctl_CreateServiceWOW64A_handle;
175 static int hf_svcctl_svcctl_CreateServiceWOW64A_password;
176 static int hf_svcctl_svcctl_CreateServiceWOW64A_password_size;
177 static int hf_svcctl_svcctl_CreateServiceWOW64A_scm_handle;
178 static int hf_svcctl_svcctl_CreateServiceWOW64A_service_start_name;
179 static int hf_svcctl_svcctl_CreateServiceWOW64A_service_type;
180 static int hf_svcctl_svcctl_CreateServiceWOW64A_start_type;
181 static int hf_svcctl_svcctl_CreateServiceWOW64A_tag_id;
182 static int hf_svcctl_svcctl_CreateServiceWOW64W_DisplayName;
183 static int hf_svcctl_svcctl_CreateServiceWOW64W_LoadOrderGroupKey;
184 static int hf_svcctl_svcctl_CreateServiceWOW64W_ServiceName;
185 static int hf_svcctl_svcctl_CreateServiceWOW64W_binary_path;
186 static int hf_svcctl_svcctl_CreateServiceWOW64W_dependencies;
187 static int hf_svcctl_svcctl_CreateServiceWOW64W_dependencies_size;
188 static int hf_svcctl_svcctl_CreateServiceWOW64W_desired_access;
189 static int hf_svcctl_svcctl_CreateServiceWOW64W_error_control;
190 static int hf_svcctl_svcctl_CreateServiceWOW64W_handle;
191 static int hf_svcctl_svcctl_CreateServiceWOW64W_password;
192 static int hf_svcctl_svcctl_CreateServiceWOW64W_password_size;
193 static int hf_svcctl_svcctl_CreateServiceWOW64W_scm_handle;
194 static int hf_svcctl_svcctl_CreateServiceWOW64W_service_start_name;
195 static int hf_svcctl_svcctl_CreateServiceWOW64W_service_type;
196 static int hf_svcctl_svcctl_CreateServiceWOW64W_start_type;
197 static int hf_svcctl_svcctl_CreateServiceWOW64W_tag_id;
198 static int hf_svcctl_svcctl_CreateServiceW_DisplayName;
199 static int hf_svcctl_svcctl_CreateServiceW_LoadOrderGroup;
200 static int hf_svcctl_svcctl_CreateServiceW_ServiceName;
201 static int hf_svcctl_svcctl_CreateServiceW_binary_path;
202 static int hf_svcctl_svcctl_CreateServiceW_dependencies;
203 static int hf_svcctl_svcctl_CreateServiceW_dependencies_size;
204 static int hf_svcctl_svcctl_CreateServiceW_desired_access;
205 static int hf_svcctl_svcctl_CreateServiceW_error_control;
206 static int hf_svcctl_svcctl_CreateServiceW_password;
207 static int hf_svcctl_svcctl_CreateServiceW_password_size;
208 static int hf_svcctl_svcctl_CreateServiceW_scm_handle;
209 static int hf_svcctl_svcctl_CreateServiceW_service_handle;
210 static int hf_svcctl_svcctl_CreateServiceW_service_start_name;
211 static int hf_svcctl_svcctl_CreateServiceW_service_type;
212 static int hf_svcctl_svcctl_CreateServiceW_start_type;
213 static int hf_svcctl_svcctl_CreateServiceW_tag_id;
214 static int hf_svcctl_svcctl_CreateWowService_DisplayName;
215 static int hf_svcctl_svcctl_CreateWowService_LoadOrderGroupKey;
216 static int hf_svcctl_svcctl_CreateWowService_ServiceName;
217 static int hf_svcctl_svcctl_CreateWowService_binary_path;
218 static int hf_svcctl_svcctl_CreateWowService_dependencies;
219 static int hf_svcctl_svcctl_CreateWowService_dependencies_size;
220 static int hf_svcctl_svcctl_CreateWowService_desired_access;
221 static int hf_svcctl_svcctl_CreateWowService_error_control;
222 static int hf_svcctl_svcctl_CreateWowService_handle;
223 static int hf_svcctl_svcctl_CreateWowService_password;
224 static int hf_svcctl_svcctl_CreateWowService_password_size;
225 static int hf_svcctl_svcctl_CreateWowService_scm_handle;
226 static int hf_svcctl_svcctl_CreateWowService_service_start_name;
227 static int hf_svcctl_svcctl_CreateWowService_service_type;
228 static int hf_svcctl_svcctl_CreateWowService_service_wow_type;
229 static int hf_svcctl_svcctl_CreateWowService_start_type;
230 static int hf_svcctl_svcctl_CreateWowService_tag_id;
231 static int hf_svcctl_svcctl_DeleteService_service_handle;
232 static int hf_svcctl_svcctl_EnumDependentServicesA_needed;
233 static int hf_svcctl_svcctl_EnumDependentServicesA_offered;
234 static int hf_svcctl_svcctl_EnumDependentServicesA_service_handle;
235 static int hf_svcctl_svcctl_EnumDependentServicesA_service_status;
236 static int hf_svcctl_svcctl_EnumDependentServicesA_services_returned;
237 static int hf_svcctl_svcctl_EnumDependentServicesA_state;
238 static int hf_svcctl_svcctl_EnumDependentServicesW_bytesneeded;
239 static int hf_svcctl_svcctl_EnumDependentServicesW_offered;
240 static int hf_svcctl_svcctl_EnumDependentServicesW_service_handle;
241 static int hf_svcctl_svcctl_EnumDependentServicesW_service_state;
242 static int hf_svcctl_svcctl_EnumDependentServicesW_service_status;
243 static int hf_svcctl_svcctl_EnumDependentServicesW_services_returned;
244 static int hf_svcctl_svcctl_EnumServiceGroupW_ResumeIndex;
245 static int hf_svcctl_svcctl_EnumServiceGroupW_cbBufSize;
246 static int hf_svcctl_svcctl_EnumServiceGroupW_lpBuffer;
247 static int hf_svcctl_svcctl_EnumServiceGroupW_lpServicesReturned;
248 static int hf_svcctl_svcctl_EnumServiceGroupW_pcbBytesNeeded;
249 static int hf_svcctl_svcctl_EnumServiceGroupW_pszGroupName;
250 static int hf_svcctl_svcctl_EnumServiceGroupW_scm_handle;
251 static int hf_svcctl_svcctl_EnumServiceGroupW_service_state;
252 static int hf_svcctl_svcctl_EnumServiceGroupW_service_type;
253 static int hf_svcctl_svcctl_EnumServicesStatusA_needed;
254 static int hf_svcctl_svcctl_EnumServicesStatusA_offered;
255 static int hf_svcctl_svcctl_EnumServicesStatusA_resume_handle;
256 static int hf_svcctl_svcctl_EnumServicesStatusA_scm_handle;
257 static int hf_svcctl_svcctl_EnumServicesStatusA_service;
258 static int hf_svcctl_svcctl_EnumServicesStatusA_service_state;
259 static int hf_svcctl_svcctl_EnumServicesStatusA_service_type;
260 static int hf_svcctl_svcctl_EnumServicesStatusA_services_returned;
261 static int hf_svcctl_svcctl_EnumServicesStatusW_bytes_needed;
262 static int hf_svcctl_svcctl_EnumServicesStatusW_offered;
263 static int hf_svcctl_svcctl_EnumServicesStatusW_resume_index;
264 static int hf_svcctl_svcctl_EnumServicesStatusW_scm_handle;
265 static int hf_svcctl_svcctl_EnumServicesStatusW_service_state;
266 static int hf_svcctl_svcctl_EnumServicesStatusW_service_type;
267 static int hf_svcctl_svcctl_EnumServicesStatusW_services;
268 static int hf_svcctl_svcctl_EnumServicesStatusW_services_returned;
269 static int hf_svcctl_svcctl_GetCurrentGroupeStateW_handle;
270 static int hf_svcctl_svcctl_GetCurrentGroupeStateW_lpLoadOrderGroup;
271 static int hf_svcctl_svcctl_GetCurrentGroupeStateW_state;
272 static int hf_svcctl_svcctl_GetServiceDisplayNameA_display_name;
273 static int hf_svcctl_svcctl_GetServiceDisplayNameA_display_name_length;
274 static int hf_svcctl_svcctl_GetServiceDisplayNameA_handle;
275 static int hf_svcctl_svcctl_GetServiceDisplayNameA_service_name;
276 static int hf_svcctl_svcctl_GetServiceDisplayNameW_display_name;
277 static int hf_svcctl_svcctl_GetServiceDisplayNameW_display_name_length;
278 static int hf_svcctl_svcctl_GetServiceDisplayNameW_scm_handle;
279 static int hf_svcctl_svcctl_GetServiceDisplayNameW_service_name;
280 static int hf_svcctl_svcctl_GetServiceKeyNameA_display_name_length;
281 static int hf_svcctl_svcctl_GetServiceKeyNameA_key_name;
282 static int hf_svcctl_svcctl_GetServiceKeyNameA_scm_handle;
283 static int hf_svcctl_svcctl_GetServiceKeyNameA_service_name;
284 static int hf_svcctl_svcctl_GetServiceKeyNameW_display_name;
285 static int hf_svcctl_svcctl_GetServiceKeyNameW_scm_handle;
286 static int hf_svcctl_svcctl_GetServiceKeyNameW_service_name;
287 static int hf_svcctl_svcctl_GetServiceKeyNameW_service_name_length;
288 static int hf_svcctl_svcctl_LockServiceDatabase_lock_handle;
289 static int hf_svcctl_svcctl_LockServiceDatabase_scm_handle;
290 static int hf_svcctl_svcctl_MgrAccessMask_SC_RIGHT_MGR_ALL_ACCESS;
291 static int hf_svcctl_svcctl_MgrAccessMask_SC_RIGHT_MGR_CONNECT;
292 static int hf_svcctl_svcctl_MgrAccessMask_SC_RIGHT_MGR_CREATE_SERVICE;
293 static int hf_svcctl_svcctl_MgrAccessMask_SC_RIGHT_MGR_ENUMERATE_SERVICE;
294 static int hf_svcctl_svcctl_MgrAccessMask_SC_RIGHT_MGR_LOCK;
295 static int hf_svcctl_svcctl_MgrAccessMask_SC_RIGHT_MGR_MODIFY_BOOT_CONFIG;
296 static int hf_svcctl_svcctl_MgrAccessMask_SC_RIGHT_MGR_QUERY_LOCK_STATUS;
297 static int hf_svcctl_svcctl_NotifyBootConfigStatus_boot_acceptable;
298 static int hf_svcctl_svcctl_NotifyBootConfigStatus_machine_name;
299 static int hf_svcctl_svcctl_OpenSCManager2_database_name;
300 static int hf_svcctl_svcctl_OpenSCManager2_desired_access;
301 static int hf_svcctl_svcctl_OpenSCManager2_handle;
302 static int hf_svcctl_svcctl_OpenSCManagerA_DatabaseName;
303 static int hf_svcctl_svcctl_OpenSCManagerA_MachineName;
304 static int hf_svcctl_svcctl_OpenSCManagerA_access_mask;
305 static int hf_svcctl_svcctl_OpenSCManagerA_scm_handle;
306 static int hf_svcctl_svcctl_OpenSCManagerW_DatabaseName;
307 static int hf_svcctl_svcctl_OpenSCManagerW_MachineName;
308 static int hf_svcctl_svcctl_OpenSCManagerW_access_mask;
309 static int hf_svcctl_svcctl_OpenSCManagerW_scm_handle;
310 static int hf_svcctl_svcctl_OpenServiceA_ServiceName;
311 static int hf_svcctl_svcctl_OpenServiceA_access_mask;
312 static int hf_svcctl_svcctl_OpenServiceA_scm_handle;
313 static int hf_svcctl_svcctl_OpenServiceA_service_handle;
314 static int hf_svcctl_svcctl_OpenServiceW_ServiceName;
315 static int hf_svcctl_svcctl_OpenServiceW_access_mask;
316 static int hf_svcctl_svcctl_OpenServiceW_scm_handle;
317 static int hf_svcctl_svcctl_OpenServiceW_service_handle;
318 static int hf_svcctl_svcctl_QueryServiceConfig2A_buffer;
319 static int hf_svcctl_svcctl_QueryServiceConfig2A_handle;
320 static int hf_svcctl_svcctl_QueryServiceConfig2A_info_level;
321 static int hf_svcctl_svcctl_QueryServiceConfig2A_needed;
322 static int hf_svcctl_svcctl_QueryServiceConfig2A_offered;
323 static int hf_svcctl_svcctl_QueryServiceConfig2W_buffer;
324 static int hf_svcctl_svcctl_QueryServiceConfig2W_handle;
325 static int hf_svcctl_svcctl_QueryServiceConfig2W_info_level;
326 static int hf_svcctl_svcctl_QueryServiceConfig2W_needed;
327 static int hf_svcctl_svcctl_QueryServiceConfig2W_offered;
328 static int hf_svcctl_svcctl_QueryServiceConfigA_needed;
329 static int hf_svcctl_svcctl_QueryServiceConfigA_offered;
330 static int hf_svcctl_svcctl_QueryServiceConfigA_query;
331 static int hf_svcctl_svcctl_QueryServiceConfigA_service_handle;
332 static int hf_svcctl_svcctl_QueryServiceConfigEx_info_level;
333 static int hf_svcctl_svcctl_QueryServiceConfigEx_service_handle;
334 static int hf_svcctl_svcctl_QueryServiceConfigW_needed;
335 static int hf_svcctl_svcctl_QueryServiceConfigW_offered;
336 static int hf_svcctl_svcctl_QueryServiceConfigW_service_config;
337 static int hf_svcctl_svcctl_QueryServiceConfigW_service_handle;
338 static int hf_svcctl_svcctl_QueryServiceLockStatusA_lock_status;
339 static int hf_svcctl_svcctl_QueryServiceLockStatusA_needed;
340 static int hf_svcctl_svcctl_QueryServiceLockStatusA_offered;
341 static int hf_svcctl_svcctl_QueryServiceLockStatusA_scm_handle;
342 static int hf_svcctl_svcctl_QueryServiceLockStatusW_lock_status;
343 static int hf_svcctl_svcctl_QueryServiceLockStatusW_needed;
344 static int hf_svcctl_svcctl_QueryServiceLockStatusW_offered;
345 static int hf_svcctl_svcctl_QueryServiceLockStatusW_scm_handle;
346 static int hf_svcctl_svcctl_QueryServiceObjectSecurity_bytes_needed;
347 static int hf_svcctl_svcctl_QueryServiceObjectSecurity_offered;
348 static int hf_svcctl_svcctl_QueryServiceObjectSecurity_security_descriptor;
349 static int hf_svcctl_svcctl_QueryServiceObjectSecurity_security_flags;
350 static int hf_svcctl_svcctl_QueryServiceObjectSecurity_service_handle;
351 static int hf_svcctl_svcctl_QueryServiceStatusEx_buffer;
352 static int hf_svcctl_svcctl_QueryServiceStatusEx_handle;
353 static int hf_svcctl_svcctl_QueryServiceStatusEx_info_level;
354 static int hf_svcctl_svcctl_QueryServiceStatusEx_needed;
355 static int hf_svcctl_svcctl_QueryServiceStatusEx_offered;
356 static int hf_svcctl_svcctl_QueryServiceStatus_service_handle;
357 static int hf_svcctl_svcctl_QueryServiceStatus_service_status;
358 static int hf_svcctl_svcctl_SCSetServiceBitsA_handle;
359 static int hf_svcctl_svcctl_SCSetServiceBitsA_lpString;
360 static int hf_svcctl_svcctl_SCSetServiceBitsA_service_bits;
361 static int hf_svcctl_svcctl_SCSetServiceBitsA_set_bits_on;
362 static int hf_svcctl_svcctl_SCSetServiceBitsA_update_immediately;
363 static int hf_svcctl_svcctl_SCSetServiceBitsW_lpString;
364 static int hf_svcctl_svcctl_SCSetServiceBitsW_service_bits;
365 static int hf_svcctl_svcctl_SCSetServiceBitsW_service_handle;
366 static int hf_svcctl_svcctl_SCSetServiceBitsW_set_bits_on;
367 static int hf_svcctl_svcctl_SCSetServiceBitsW_update_immediately;
368 static int hf_svcctl_svcctl_ServiceAccessMask_SC_RIGHT_SVC_CHANGE_CONFIG;
369 static int hf_svcctl_svcctl_ServiceAccessMask_SC_RIGHT_SVC_ENUMERATE_DEPENDENTS;
370 static int hf_svcctl_svcctl_ServiceAccessMask_SC_RIGHT_SVC_INTERROGATE;
371 static int hf_svcctl_svcctl_ServiceAccessMask_SC_RIGHT_SVC_PAUSE_CONTINUE;
372 static int hf_svcctl_svcctl_ServiceAccessMask_SC_RIGHT_SVC_QUERY_CONFIG;
373 static int hf_svcctl_svcctl_ServiceAccessMask_SC_RIGHT_SVC_QUERY_STATUS;
374 static int hf_svcctl_svcctl_ServiceAccessMask_SC_RIGHT_SVC_START;
375 static int hf_svcctl_svcctl_ServiceAccessMask_SC_RIGHT_SVC_STOP;
376 static int hf_svcctl_svcctl_ServiceAccessMask_SC_RIGHT_SVC_USER_DEFINED_CONTROL;
377 static int hf_svcctl_svcctl_SetServiceObjectSecurity_offered;
378 static int hf_svcctl_svcctl_SetServiceObjectSecurity_security_descriptor;
379 static int hf_svcctl_svcctl_SetServiceObjectSecurity_security_flags;
380 static int hf_svcctl_svcctl_SetServiceObjectSecurity_service_handle;
381 static int hf_svcctl_svcctl_SetServiceStatus_service_handle;
382 static int hf_svcctl_svcctl_SetServiceStatus_service_status;
383 static int hf_svcctl_svcctl_StartServiceA_Arguments;
384 static int hf_svcctl_svcctl_StartServiceA_NumArgs;
385 static int hf_svcctl_svcctl_StartServiceA_service_handle;
386 static int hf_svcctl_svcctl_StartServiceW_Arguments;
387 static int hf_svcctl_svcctl_StartServiceW_NumArgs;
388 static int hf_svcctl_svcctl_StartServiceW_service_handle;
389 static int hf_svcctl_svcctl_UnlockServiceDatabase_lock_handle;
390 static int hf_svcctl_werror;
392 static int proto_dcerpc_svcctl;
393 /* Version information */
396 static e_guid_t uuid_dcerpc_svcctl = {
397 0x367abb81, 0x9844, 0x35f1,
398 { 0xad, 0x32, 0x98, 0xf0, 0x38, 0x00, 0x10, 0x03 }
400 static uint16_t ver_dcerpc_svcctl = 2;
402 static int svcctl_dissect_element_SERVICE_LOCK_STATUS_is_locked(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
403 static int svcctl_dissect_element_SERVICE_LOCK_STATUS_lock_owner(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
404 static int svcctl_dissect_element_SERVICE_LOCK_STATUS_lock_owner_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
405 static int svcctl_dissect_element_SERVICE_LOCK_STATUS_lock_duration(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
406 const value_string svcctl_svcctl_ServiceStatus_vals[] = {
407 { SVCCTL_STOPPED, "SVCCTL_STOPPED" },
408 { SVCCTL_START_PENDING, "SVCCTL_START_PENDING" },
409 { SVCCTL_STOP_PENDING, "SVCCTL_STOP_PENDING" },
410 { SVCCTL_RUNNING, "SVCCTL_RUNNING" },
411 { SVCCTL_CONTINUE_PENDING, "SVCCTL_CONTINUE_PENDING" },
412 { SVCCTL_PAUSE_PENDING, "SVCCTL_PAUSE_PENDING" },
413 { SVCCTL_PAUSED, "SVCCTL_PAUSED" },
414 { 0, NULL }
416 const value_string svcctl_svcctl_ServiceType_vals[] = {
417 { SERVICE_TYPE_KERNEL_DRIVER, "SERVICE_TYPE_KERNEL_DRIVER" },
418 { SERVICE_TYPE_FS_DRIVER, "SERVICE_TYPE_FS_DRIVER" },
419 { SERVICE_TYPE_ADAPTER, "SERVICE_TYPE_ADAPTER" },
420 { SERVICE_TYPE_RECOGNIZER_DRIVER, "SERVICE_TYPE_RECOGNIZER_DRIVER" },
421 { SERVICE_TYPE_DRIVER, "SERVICE_TYPE_DRIVER" },
422 { SERVICE_TYPE_WIN32_OWN_PROCESS, "SERVICE_TYPE_WIN32_OWN_PROCESS" },
423 { SERVICE_TYPE_WIN32_SHARE_PROCESS, "SERVICE_TYPE_WIN32_SHARE_PROCESS" },
424 { SERVICE_TYPE_USER_OWN_PROCESS, "SERVICE_TYPE_USER_OWN_PROCESS" },
425 { SERVICE_TYPE_USER_SHARE_PROCESS, "SERVICE_TYPE_USER_SHARE_PROCESS" },
426 { SERVICE_TYPE_WIN32, "SERVICE_TYPE_WIN32" },
427 { SERVICE_TYPE_INTERACTIVE_PROCESS, "SERVICE_TYPE_INTERACTIVE_PROCESS" },
428 { 0, NULL }
430 static const true_false_string svcctl_ControlsAccepted_SERVICE_ACCEPT_STOP_tfs = {
431 "SERVICE_ACCEPT_STOP is SET",
432 "SERVICE_ACCEPT_STOP is NOT SET",
434 static const true_false_string svcctl_ControlsAccepted_SERVICE_ACCEPT_PAUSE_CONTINUE_tfs = {
435 "SERVICE_ACCEPT_PAUSE_CONTINUE is SET",
436 "SERVICE_ACCEPT_PAUSE_CONTINUE is NOT SET",
438 static const true_false_string svcctl_ControlsAccepted_SERVICE_ACCEPT_SHUTDOWN_tfs = {
439 "SERVICE_ACCEPT_SHUTDOWN is SET",
440 "SERVICE_ACCEPT_SHUTDOWN is NOT SET",
442 static const true_false_string svcctl_ControlsAccepted_SERVICE_ACCEPT_PARAMCHANGE_tfs = {
443 "SERVICE_ACCEPT_PARAMCHANGE is SET",
444 "SERVICE_ACCEPT_PARAMCHANGE is NOT SET",
446 static const true_false_string svcctl_ControlsAccepted_SERVICE_ACCEPT_NETBINDCHANGE_tfs = {
447 "SERVICE_ACCEPT_NETBINDCHANGE is SET",
448 "SERVICE_ACCEPT_NETBINDCHANGE is NOT SET",
450 static const true_false_string svcctl_ControlsAccepted_SERVICE_ACCEPT_HARDWAREPROFILECHANGE_tfs = {
451 "SERVICE_ACCEPT_HARDWAREPROFILECHANGE is SET",
452 "SERVICE_ACCEPT_HARDWAREPROFILECHANGE is NOT SET",
454 static const true_false_string svcctl_ControlsAccepted_SERVICE_ACCEPT_POWEREVENT_tfs = {
455 "SERVICE_ACCEPT_POWEREVENT is SET",
456 "SERVICE_ACCEPT_POWEREVENT is NOT SET",
458 static const true_false_string svcctl_ControlsAccepted_SERVICE_ACCEPT_SESSIONCHANGE_tfs = {
459 "SERVICE_ACCEPT_SESSIONCHANGE is SET",
460 "SERVICE_ACCEPT_SESSIONCHANGE is NOT SET",
462 static const true_false_string svcctl_ControlsAccepted_SERVICE_ACCEPT_PRESHUTDOWN_tfs = {
463 "SERVICE_ACCEPT_PRESHUTDOWN is SET",
464 "SERVICE_ACCEPT_PRESHUTDOWN is NOT SET",
466 static const true_false_string svcctl_ControlsAccepted_SERVICE_ACCEPT_TIMECHANGE_tfs = {
467 "SERVICE_ACCEPT_TIMECHANGE is SET",
468 "SERVICE_ACCEPT_TIMECHANGE is NOT SET",
470 static const true_false_string svcctl_ControlsAccepted_SERVICE_ACCEPT_TRIGGEREVENT_tfs = {
471 "SERVICE_ACCEPT_TRIGGEREVENT is SET",
472 "SERVICE_ACCEPT_TRIGGEREVENT is NOT SET",
474 static const true_false_string svcctl_ControlsAccepted_SERVICE_ACCEPT_USERMODEREBOOT_tfs = {
475 "SERVICE_ACCEPT_USERMODEREBOOT is SET",
476 "SERVICE_ACCEPT_USERMODEREBOOT is NOT SET",
478 static int svcctl_dissect_element_SERVICE_STATUS_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
479 static int svcctl_dissect_element_SERVICE_STATUS_state(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
480 static int svcctl_dissect_element_SERVICE_STATUS_controls_accepted(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
481 static int svcctl_dissect_element_SERVICE_STATUS_win32_exit_code(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
482 static int svcctl_dissect_element_SERVICE_STATUS_service_exit_code(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
483 static int svcctl_dissect_element_SERVICE_STATUS_check_point(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
484 static int svcctl_dissect_element_SERVICE_STATUS_wait_hint(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
485 const value_string svcctl_svcctl_ServiceFlags_vals[] = {
486 { SERVICE_RUNS_IN_NONSYSTEM_ORNOTRUNNING, "SERVICE_RUNS_IN_NONSYSTEM_ORNOTRUNNING" },
487 { SERVICE_RUNS_IN_SYSTEM_PROCESS, "SERVICE_RUNS_IN_SYSTEM_PROCESS" },
488 { 0, NULL }
490 static int svcctl_dissect_element_SERVICE_STATUS_PROCESS_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
491 static int svcctl_dissect_element_SERVICE_STATUS_PROCESS_state(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
492 static int svcctl_dissect_element_SERVICE_STATUS_PROCESS_controls_accepted(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
493 static int svcctl_dissect_element_SERVICE_STATUS_PROCESS_win32_exit_code(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
494 static int svcctl_dissect_element_SERVICE_STATUS_PROCESS_service_exit_code(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
495 static int svcctl_dissect_element_SERVICE_STATUS_PROCESS_check_point(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
496 static int svcctl_dissect_element_SERVICE_STATUS_PROCESS_wait_hint(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
497 static int svcctl_dissect_element_SERVICE_STATUS_PROCESS_process_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
498 static int svcctl_dissect_element_SERVICE_STATUS_PROCESS_service_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
499 static int svcctl_dissect_element_ENUM_SERVICE_STATUSW_service_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
500 static int svcctl_dissect_element_ENUM_SERVICE_STATUSW_service_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
501 static int svcctl_dissect_element_ENUM_SERVICE_STATUSW_display_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
502 static int svcctl_dissect_element_ENUM_SERVICE_STATUSW_display_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
503 static int svcctl_dissect_element_ENUM_SERVICE_STATUSW_status(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
504 static int svcctl_dissect_element_ENUM_SERVICE_STATUSA_service_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
505 static int svcctl_dissect_element_ENUM_SERVICE_STATUSA_service_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
506 static int svcctl_dissect_element_ENUM_SERVICE_STATUSA_display_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
507 static int svcctl_dissect_element_ENUM_SERVICE_STATUSA_display_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
508 static int svcctl_dissect_element_ENUM_SERVICE_STATUSA_status(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
509 const value_string svcctl_SERVICE_CONTROL_vals[] = {
510 { SVCCTL_CONTROL_STOP, "SVCCTL_CONTROL_STOP" },
511 { SVCCTL_CONTROL_PAUSE, "SVCCTL_CONTROL_PAUSE" },
512 { SVCCTL_CONTROL_CONTINUE, "SVCCTL_CONTROL_CONTINUE" },
513 { SVCCTL_CONTROL_INTERROGATE, "SVCCTL_CONTROL_INTERROGATE" },
514 { SVCCTL_CONTROL_SHUTDOWN, "SVCCTL_CONTROL_SHUTDOWN" },
515 { SERVICE_CONTROL_PARAMCHANGE, "SERVICE_CONTROL_PARAMCHANGE" },
516 { SERVICE_CONTROL_NETBINDADD, "SERVICE_CONTROL_NETBINDADD" },
517 { SERVICE_CONTROL_NETBINDREMOVE, "SERVICE_CONTROL_NETBINDREMOVE" },
518 { SERVICE_CONTROL_NETBINDENABLE, "SERVICE_CONTROL_NETBINDENABLE" },
519 { SERVICE_CONTROL_NETBINDDISABLE, "SERVICE_CONTROL_NETBINDDISABLE" },
520 { 0, NULL }
522 const value_string svcctl_svcctl_ErrorControl_vals[] = {
523 { SVCCTL_SVC_ERROR_IGNORE, "SVCCTL_SVC_ERROR_IGNORE" },
524 { SVCCTL_SVC_ERROR_NORMAL, "SVCCTL_SVC_ERROR_NORMAL" },
525 { SVCCTL_SVC_ERROR_CRITICAL, "SVCCTL_SVC_ERROR_CRITICAL" },
526 { SVCCTL_SVC_ERROR_SEVERE, "SVCCTL_SVC_ERROR_SEVERE" },
527 { 0, NULL }
529 const value_string svcctl_svcctl_StartType_vals[] = {
530 { SVCCTL_BOOT_START, "SVCCTL_BOOT_START" },
531 { SVCCTL_SYSTEM_START, "SVCCTL_SYSTEM_START" },
532 { SVCCTL_AUTO_START, "SVCCTL_AUTO_START" },
533 { SVCCTL_DEMAND_START, "SVCCTL_DEMAND_START" },
534 { SVCCTL_DISABLED, "SVCCTL_DISABLED" },
535 { 0, NULL }
537 const value_string svcctl_svcctl_ServiceState_vals[] = {
538 { SERVICE_STATE_ACTIVE, "SERVICE_STATE_ACTIVE" },
539 { SERVICE_STATE_INACTIVE, "SERVICE_STATE_INACTIVE" },
540 { SERVICE_STATE_ALL, "SERVICE_STATE_ALL" },
541 { 0, NULL }
543 static const true_false_string svcctl_MgrAccessMask_SC_RIGHT_MGR_CONNECT_tfs = {
544 "SC_RIGHT_MGR_CONNECT is SET",
545 "SC_RIGHT_MGR_CONNECT is NOT SET",
547 static const true_false_string svcctl_MgrAccessMask_SC_RIGHT_MGR_CREATE_SERVICE_tfs = {
548 "SC_RIGHT_MGR_CREATE_SERVICE is SET",
549 "SC_RIGHT_MGR_CREATE_SERVICE is NOT SET",
551 static const true_false_string svcctl_MgrAccessMask_SC_RIGHT_MGR_ENUMERATE_SERVICE_tfs = {
552 "SC_RIGHT_MGR_ENUMERATE_SERVICE is SET",
553 "SC_RIGHT_MGR_ENUMERATE_SERVICE is NOT SET",
555 static const true_false_string svcctl_MgrAccessMask_SC_RIGHT_MGR_LOCK_tfs = {
556 "SC_RIGHT_MGR_LOCK is SET",
557 "SC_RIGHT_MGR_LOCK is NOT SET",
559 static const true_false_string svcctl_MgrAccessMask_SC_RIGHT_MGR_QUERY_LOCK_STATUS_tfs = {
560 "SC_RIGHT_MGR_QUERY_LOCK_STATUS is SET",
561 "SC_RIGHT_MGR_QUERY_LOCK_STATUS is NOT SET",
563 static const true_false_string svcctl_MgrAccessMask_SC_RIGHT_MGR_MODIFY_BOOT_CONFIG_tfs = {
564 "SC_RIGHT_MGR_MODIFY_BOOT_CONFIG is SET",
565 "SC_RIGHT_MGR_MODIFY_BOOT_CONFIG is NOT SET",
567 static const true_false_string svcctl_MgrAccessMask_SC_RIGHT_MGR_ALL_ACCESS_tfs = {
568 "SC_RIGHT_MGR_ALL_ACCESS is SET",
569 "SC_RIGHT_MGR_ALL_ACCESS is NOT SET",
571 static const true_false_string svcctl_ServiceAccessMask_SC_RIGHT_SVC_QUERY_CONFIG_tfs = {
572 "SC_RIGHT_SVC_QUERY_CONFIG is SET",
573 "SC_RIGHT_SVC_QUERY_CONFIG is NOT SET",
575 static const true_false_string svcctl_ServiceAccessMask_SC_RIGHT_SVC_CHANGE_CONFIG_tfs = {
576 "SC_RIGHT_SVC_CHANGE_CONFIG is SET",
577 "SC_RIGHT_SVC_CHANGE_CONFIG is NOT SET",
579 static const true_false_string svcctl_ServiceAccessMask_SC_RIGHT_SVC_QUERY_STATUS_tfs = {
580 "SC_RIGHT_SVC_QUERY_STATUS is SET",
581 "SC_RIGHT_SVC_QUERY_STATUS is NOT SET",
583 static const true_false_string svcctl_ServiceAccessMask_SC_RIGHT_SVC_ENUMERATE_DEPENDENTS_tfs = {
584 "SC_RIGHT_SVC_ENUMERATE_DEPENDENTS is SET",
585 "SC_RIGHT_SVC_ENUMERATE_DEPENDENTS is NOT SET",
587 static const true_false_string svcctl_ServiceAccessMask_SC_RIGHT_SVC_START_tfs = {
588 "SC_RIGHT_SVC_START is SET",
589 "SC_RIGHT_SVC_START is NOT SET",
591 static const true_false_string svcctl_ServiceAccessMask_SC_RIGHT_SVC_STOP_tfs = {
592 "SC_RIGHT_SVC_STOP is SET",
593 "SC_RIGHT_SVC_STOP is NOT SET",
595 static const true_false_string svcctl_ServiceAccessMask_SC_RIGHT_SVC_PAUSE_CONTINUE_tfs = {
596 "SC_RIGHT_SVC_PAUSE_CONTINUE is SET",
597 "SC_RIGHT_SVC_PAUSE_CONTINUE is NOT SET",
599 static const true_false_string svcctl_ServiceAccessMask_SC_RIGHT_SVC_INTERROGATE_tfs = {
600 "SC_RIGHT_SVC_INTERROGATE is SET",
601 "SC_RIGHT_SVC_INTERROGATE is NOT SET",
603 static const true_false_string svcctl_ServiceAccessMask_SC_RIGHT_SVC_USER_DEFINED_CONTROL_tfs = {
604 "SC_RIGHT_SVC_USER_DEFINED_CONTROL is SET",
605 "SC_RIGHT_SVC_USER_DEFINED_CONTROL is NOT SET",
607 static int svcctl_dissect_element_QUERY_SERVICE_CONFIG_service_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
608 static int svcctl_dissect_element_QUERY_SERVICE_CONFIG_start_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
609 static int svcctl_dissect_element_QUERY_SERVICE_CONFIG_error_control(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
610 static int svcctl_dissect_element_QUERY_SERVICE_CONFIG_executablepath(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
611 static int svcctl_dissect_element_QUERY_SERVICE_CONFIG_executablepath_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
612 static int svcctl_dissect_element_QUERY_SERVICE_CONFIG_loadordergroup(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
613 static int svcctl_dissect_element_QUERY_SERVICE_CONFIG_loadordergroup_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
614 static int svcctl_dissect_element_QUERY_SERVICE_CONFIG_tag_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
615 static int svcctl_dissect_element_QUERY_SERVICE_CONFIG_dependencies(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
616 static int svcctl_dissect_element_QUERY_SERVICE_CONFIG_dependencies_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
617 static int svcctl_dissect_element_QUERY_SERVICE_CONFIG_startname(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
618 static int svcctl_dissect_element_QUERY_SERVICE_CONFIG_startname_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
619 static int svcctl_dissect_element_QUERY_SERVICE_CONFIG_displayname(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
620 static int svcctl_dissect_element_QUERY_SERVICE_CONFIG_displayname_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
621 static int svcctl_dissect_element_ArgumentString_string(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
622 static int svcctl_dissect_element_ArgumentString_string_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
623 static int svcctl_dissect_element_ArgumentStringA_string(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
624 static int svcctl_dissect_element_ArgumentStringA_string_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
625 const value_string svcctl_svcctl_ConfigLevel_vals[] = {
626 { SERVICE_CONFIG_DESCRIPTION, "SERVICE_CONFIG_DESCRIPTION" },
627 { SERVICE_CONFIG_FAILURE_ACTIONS, "SERVICE_CONFIG_FAILURE_ACTIONS" },
628 { 0, NULL }
630 const value_string svcctl_svcctl_StatusLevel_vals[] = {
631 { SVC_STATUS_PROCESS_INFO, "SVC_STATUS_PROCESS_INFO" },
632 { 0, NULL }
634 static int svcctl_dissect_element_CloseServiceHandle_object_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
635 static int svcctl_dissect_element_CloseServiceHandle_object_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
636 static int svcctl_dissect_element_ControlService_service_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
637 static int svcctl_dissect_element_ControlService_service_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
638 static int svcctl_dissect_element_ControlService_control(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
639 static int svcctl_dissect_element_ControlService_service_status(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
640 static int svcctl_dissect_element_ControlService_service_status_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
641 static int svcctl_dissect_element_DeleteService_service_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
642 static int svcctl_dissect_element_DeleteService_service_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
643 static int svcctl_dissect_element_LockServiceDatabase_scm_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
644 static int svcctl_dissect_element_LockServiceDatabase_scm_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
645 static int svcctl_dissect_element_LockServiceDatabase_lock_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
646 static int svcctl_dissect_element_LockServiceDatabase_lock_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
647 static int svcctl_dissect_element_QueryServiceObjectSecurity_service_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
648 static int svcctl_dissect_element_QueryServiceObjectSecurity_service_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
649 static int svcctl_dissect_element_QueryServiceObjectSecurity_security_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
650 static int svcctl_dissect_element_QueryServiceObjectSecurity_security_descriptor(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
651 static int svcctl_dissect_element_QueryServiceObjectSecurity_security_descriptor_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
652 static int svcctl_dissect_element_QueryServiceObjectSecurity_security_descriptor__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
653 static int svcctl_dissect_element_QueryServiceObjectSecurity_offered(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
654 static int svcctl_dissect_element_QueryServiceObjectSecurity_bytes_needed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
655 static int svcctl_dissect_element_QueryServiceObjectSecurity_bytes_needed_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
656 static int svcctl_dissect_element_SetServiceObjectSecurity_service_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
657 static int svcctl_dissect_element_SetServiceObjectSecurity_service_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
658 static int svcctl_dissect_element_SetServiceObjectSecurity_security_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
659 static int svcctl_dissect_element_SetServiceObjectSecurity_security_descriptor(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
660 static int svcctl_dissect_element_SetServiceObjectSecurity_security_descriptor_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
661 static int svcctl_dissect_element_SetServiceObjectSecurity_security_descriptor__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
662 static int svcctl_dissect_element_SetServiceObjectSecurity_offered(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
663 static int svcctl_dissect_element_QueryServiceStatus_service_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
664 static int svcctl_dissect_element_QueryServiceStatus_service_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
665 static int svcctl_dissect_element_QueryServiceStatus_service_status(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
666 static int svcctl_dissect_element_QueryServiceStatus_service_status_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
667 static int svcctl_dissect_element_SetServiceStatus_service_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
668 static int svcctl_dissect_element_SetServiceStatus_service_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
669 static int svcctl_dissect_element_SetServiceStatus_service_status(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
670 static int svcctl_dissect_element_SetServiceStatus_service_status_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
671 static int svcctl_dissect_element_UnlockServiceDatabase_lock_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
672 static int svcctl_dissect_element_UnlockServiceDatabase_lock_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
673 static int svcctl_dissect_element_NotifyBootConfigStatus_machine_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
674 static int svcctl_dissect_element_NotifyBootConfigStatus_machine_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
675 static int svcctl_dissect_element_NotifyBootConfigStatus_boot_acceptable(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
676 static int svcctl_dissect_element_SCSetServiceBitsW_service_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
677 static int svcctl_dissect_element_SCSetServiceBitsW_service_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
678 static int svcctl_dissect_element_SCSetServiceBitsW_service_bits(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
679 static int svcctl_dissect_element_SCSetServiceBitsW_set_bits_on(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
680 static int svcctl_dissect_element_SCSetServiceBitsW_update_immediately(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
681 static int svcctl_dissect_element_SCSetServiceBitsW_lpString(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
682 static int svcctl_dissect_element_SCSetServiceBitsW_lpString_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
683 static int svcctl_dissect_element_ChangeServiceConfigW_service_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
684 static int svcctl_dissect_element_ChangeServiceConfigW_service_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
685 static int svcctl_dissect_element_ChangeServiceConfigW_service_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
686 static int svcctl_dissect_element_ChangeServiceConfigW_start_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
687 static int svcctl_dissect_element_ChangeServiceConfigW_error_control(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
688 static int svcctl_dissect_element_ChangeServiceConfigW_binary_path(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
689 static int svcctl_dissect_element_ChangeServiceConfigW_binary_path_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
690 static int svcctl_dissect_element_ChangeServiceConfigW_load_order_group(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
691 static int svcctl_dissect_element_ChangeServiceConfigW_load_order_group_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
692 static int svcctl_dissect_element_ChangeServiceConfigW_tag_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
693 static int svcctl_dissect_element_ChangeServiceConfigW_tag_id_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
694 static int svcctl_dissect_element_ChangeServiceConfigW_dependencies(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
695 static int svcctl_dissect_element_ChangeServiceConfigW_dependencies_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
696 static int svcctl_dissect_element_ChangeServiceConfigW_dwDependSize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
697 static int svcctl_dissect_element_ChangeServiceConfigW_service_start_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
698 static int svcctl_dissect_element_ChangeServiceConfigW_service_start_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
699 static int svcctl_dissect_element_ChangeServiceConfigW_password(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
700 static int svcctl_dissect_element_ChangeServiceConfigW_password_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
701 static int svcctl_dissect_element_ChangeServiceConfigW_dwPwSize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
702 static int svcctl_dissect_element_ChangeServiceConfigW_display_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
703 static int svcctl_dissect_element_ChangeServiceConfigW_display_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
704 static int svcctl_dissect_element_CreateServiceW_scm_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
705 static int svcctl_dissect_element_CreateServiceW_scm_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
706 static int svcctl_dissect_element_CreateServiceW_ServiceName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
707 static int svcctl_dissect_element_CreateServiceW_DisplayName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
708 static int svcctl_dissect_element_CreateServiceW_DisplayName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
709 static int svcctl_dissect_element_CreateServiceW_desired_access(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
710 static int svcctl_dissect_element_CreateServiceW_service_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
711 static int svcctl_dissect_element_CreateServiceW_start_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
712 static int svcctl_dissect_element_CreateServiceW_error_control(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
713 static int svcctl_dissect_element_CreateServiceW_binary_path(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
714 static int svcctl_dissect_element_CreateServiceW_LoadOrderGroup(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
715 static int svcctl_dissect_element_CreateServiceW_LoadOrderGroup_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
716 static int svcctl_dissect_element_CreateServiceW_tag_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
717 static int svcctl_dissect_element_CreateServiceW_tag_id_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
718 static int svcctl_dissect_element_CreateServiceW_dependencies(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
719 static int svcctl_dissect_element_CreateServiceW_dependencies_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
720 static int svcctl_dissect_element_CreateServiceW_dependencies__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
721 static int svcctl_dissect_element_CreateServiceW_dependencies_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
722 static int svcctl_dissect_element_CreateServiceW_service_start_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
723 static int svcctl_dissect_element_CreateServiceW_service_start_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
724 static int svcctl_dissect_element_CreateServiceW_password(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
725 static int svcctl_dissect_element_CreateServiceW_password_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
726 static int svcctl_dissect_element_CreateServiceW_password__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
727 static int svcctl_dissect_element_CreateServiceW_password_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
728 static int svcctl_dissect_element_CreateServiceW_service_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
729 static int svcctl_dissect_element_CreateServiceW_service_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
730 static int svcctl_dissect_element_EnumDependentServicesW_service_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
731 static int svcctl_dissect_element_EnumDependentServicesW_service_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
732 static int svcctl_dissect_element_EnumDependentServicesW_service_state(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
733 static int svcctl_dissect_element_EnumDependentServicesW_service_status(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
734 static int svcctl_dissect_element_EnumDependentServicesW_service_status_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
735 static int svcctl_dissect_element_EnumDependentServicesW_service_status__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
736 static int svcctl_dissect_element_EnumDependentServicesW_offered(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
737 static int svcctl_dissect_element_EnumDependentServicesW_bytesneeded(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
738 static int svcctl_dissect_element_EnumDependentServicesW_bytesneeded_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
739 static int svcctl_dissect_element_EnumDependentServicesW_services_returned(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
740 static int svcctl_dissect_element_EnumDependentServicesW_services_returned_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
741 static int svcctl_dissect_element_EnumServicesStatusW_scm_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
742 static int svcctl_dissect_element_EnumServicesStatusW_scm_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
743 static int svcctl_dissect_element_EnumServicesStatusW_service_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
744 static int svcctl_dissect_element_EnumServicesStatusW_service_state(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
745 static int svcctl_dissect_element_EnumServicesStatusW_offered(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
746 static int svcctl_dissect_element_EnumServicesStatusW_resume_index(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
747 static int svcctl_dissect_element_EnumServicesStatusW_resume_index_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
748 static int svcctl_dissect_element_OpenSCManagerW_MachineName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
749 static int svcctl_dissect_element_OpenSCManagerW_MachineName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
750 static int svcctl_dissect_element_OpenSCManagerW_DatabaseName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
751 static int svcctl_dissect_element_OpenSCManagerW_DatabaseName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
752 static int svcctl_dissect_element_OpenSCManagerW_access_mask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
753 static int svcctl_dissect_element_OpenSCManagerW_scm_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
754 static int svcctl_dissect_element_OpenSCManagerW_scm_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
755 static int svcctl_dissect_element_OpenServiceW_scm_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
756 static int svcctl_dissect_element_OpenServiceW_scm_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
757 static int svcctl_dissect_element_OpenServiceW_ServiceName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
758 static int svcctl_dissect_element_OpenServiceW_access_mask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
759 static int svcctl_dissect_element_OpenServiceW_service_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
760 static int svcctl_dissect_element_OpenServiceW_service_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
761 static int svcctl_dissect_element_QueryServiceConfigW_service_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
762 static int svcctl_dissect_element_QueryServiceConfigW_service_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
763 static int svcctl_dissect_element_QueryServiceConfigW_service_config(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
764 static int svcctl_dissect_element_QueryServiceConfigW_service_config_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
765 static int svcctl_dissect_element_QueryServiceConfigW_offered(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
766 static int svcctl_dissect_element_QueryServiceConfigW_needed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
767 static int svcctl_dissect_element_QueryServiceConfigW_needed_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
768 static int svcctl_dissect_element_QueryServiceLockStatusW_scm_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
769 static int svcctl_dissect_element_QueryServiceLockStatusW_scm_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
770 static int svcctl_dissect_element_QueryServiceLockStatusW_lock_status(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
771 static int svcctl_dissect_element_QueryServiceLockStatusW_lock_status_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
772 static int svcctl_dissect_element_QueryServiceLockStatusW_offered(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
773 static int svcctl_dissect_element_QueryServiceLockStatusW_needed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
774 static int svcctl_dissect_element_QueryServiceLockStatusW_needed_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
775 static int svcctl_dissect_element_StartServiceW_service_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
776 static int svcctl_dissect_element_StartServiceW_service_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
777 static int svcctl_dissect_element_StartServiceW_NumArgs(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
778 static int svcctl_dissect_element_StartServiceW_Arguments(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
779 static int svcctl_dissect_element_StartServiceW_Arguments_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
780 static int svcctl_dissect_element_StartServiceW_Arguments__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
781 static int svcctl_dissect_element_GetServiceDisplayNameW_scm_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
782 static int svcctl_dissect_element_GetServiceDisplayNameW_scm_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
783 static int svcctl_dissect_element_GetServiceDisplayNameW_service_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
784 static int svcctl_dissect_element_GetServiceDisplayNameW_service_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
785 static int svcctl_dissect_element_GetServiceDisplayNameW_display_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
786 static int svcctl_dissect_element_GetServiceDisplayNameW_display_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
787 static int svcctl_dissect_element_GetServiceDisplayNameW_display_name__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
788 static int svcctl_dissect_element_GetServiceDisplayNameW_display_name_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
789 static int svcctl_dissect_element_GetServiceDisplayNameW_display_name_length_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
790 static int svcctl_dissect_element_GetServiceKeyNameW_scm_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
791 static int svcctl_dissect_element_GetServiceKeyNameW_scm_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
792 static int svcctl_dissect_element_GetServiceKeyNameW_display_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
793 static int svcctl_dissect_element_GetServiceKeyNameW_display_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
794 static int svcctl_dissect_element_GetServiceKeyNameW_service_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
795 static int svcctl_dissect_element_GetServiceKeyNameW_service_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
796 static int svcctl_dissect_element_GetServiceKeyNameW_service_name__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
797 static int svcctl_dissect_element_GetServiceKeyNameW_service_name_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
798 static int svcctl_dissect_element_GetServiceKeyNameW_service_name_length_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
799 static int svcctl_dissect_element_SCSetServiceBitsA_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
800 static int svcctl_dissect_element_SCSetServiceBitsA_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
801 static int svcctl_dissect_element_SCSetServiceBitsA_service_bits(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
802 static int svcctl_dissect_element_SCSetServiceBitsA_set_bits_on(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
803 static int svcctl_dissect_element_SCSetServiceBitsA_update_immediately(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
804 static int svcctl_dissect_element_SCSetServiceBitsA_lpString(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
805 static int svcctl_dissect_element_SCSetServiceBitsA_lpString_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
806 static int svcctl_dissect_element_ChangeServiceConfigA_service_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
807 static int svcctl_dissect_element_ChangeServiceConfigA_service_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
808 static int svcctl_dissect_element_ChangeServiceConfigA_service_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
809 static int svcctl_dissect_element_ChangeServiceConfigA_start_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
810 static int svcctl_dissect_element_ChangeServiceConfigA_error_control(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
811 static int svcctl_dissect_element_ChangeServiceConfigA_binary_path(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
812 static int svcctl_dissect_element_ChangeServiceConfigA_binary_path_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
813 static int svcctl_dissect_element_ChangeServiceConfigA_load_order_group(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
814 static int svcctl_dissect_element_ChangeServiceConfigA_load_order_group_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
815 static int svcctl_dissect_element_ChangeServiceConfigA_tag_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
816 static int svcctl_dissect_element_ChangeServiceConfigA_tag_id_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
817 static int svcctl_dissect_element_ChangeServiceConfigA_dependencies(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
818 static int svcctl_dissect_element_ChangeServiceConfigA_dependencies_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
819 static int svcctl_dissect_element_ChangeServiceConfigA_service_start_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
820 static int svcctl_dissect_element_ChangeServiceConfigA_service_start_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
821 static int svcctl_dissect_element_ChangeServiceConfigA_password(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
822 static int svcctl_dissect_element_ChangeServiceConfigA_password_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
823 static int svcctl_dissect_element_ChangeServiceConfigA_display_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
824 static int svcctl_dissect_element_ChangeServiceConfigA_display_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
825 static int svcctl_dissect_element_CreateServiceA_scm_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
826 static int svcctl_dissect_element_CreateServiceA_scm_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
827 static int svcctl_dissect_element_CreateServiceA_ServiceName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
828 static int svcctl_dissect_element_CreateServiceA_DisplayName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
829 static int svcctl_dissect_element_CreateServiceA_DisplayName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
830 static int svcctl_dissect_element_CreateServiceA_desired_access(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
831 static int svcctl_dissect_element_CreateServiceA_service_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
832 static int svcctl_dissect_element_CreateServiceA_start_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
833 static int svcctl_dissect_element_CreateServiceA_error_control(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
834 static int svcctl_dissect_element_CreateServiceA_binary_path(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
835 static int svcctl_dissect_element_CreateServiceA_LoadOrderGroupKey(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
836 static int svcctl_dissect_element_CreateServiceA_LoadOrderGroupKey_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
837 static int svcctl_dissect_element_CreateServiceA_tag_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
838 static int svcctl_dissect_element_CreateServiceA_tag_id_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
839 static int svcctl_dissect_element_CreateServiceA_dependencies(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
840 static int svcctl_dissect_element_CreateServiceA_dependencies_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
841 static int svcctl_dissect_element_CreateServiceA_dependencies__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
842 static int svcctl_dissect_element_CreateServiceA_dependencies_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
843 static int svcctl_dissect_element_CreateServiceA_service_start_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
844 static int svcctl_dissect_element_CreateServiceA_service_start_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
845 static int svcctl_dissect_element_CreateServiceA_password(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
846 static int svcctl_dissect_element_CreateServiceA_password_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
847 static int svcctl_dissect_element_CreateServiceA_password__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
848 static int svcctl_dissect_element_CreateServiceA_password_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
849 static int svcctl_dissect_element_CreateServiceA_service_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
850 static int svcctl_dissect_element_CreateServiceA_service_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
851 static int svcctl_dissect_element_EnumDependentServicesA_service_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
852 static int svcctl_dissect_element_EnumDependentServicesA_service_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
853 static int svcctl_dissect_element_EnumDependentServicesA_state(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
854 static int svcctl_dissect_element_EnumDependentServicesA_service_status(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
855 static int svcctl_dissect_element_EnumDependentServicesA_service_status_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
856 static int svcctl_dissect_element_EnumDependentServicesA_offered(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
857 static int svcctl_dissect_element_EnumDependentServicesA_needed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
858 static int svcctl_dissect_element_EnumDependentServicesA_needed_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
859 static int svcctl_dissect_element_EnumDependentServicesA_services_returned(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
860 static int svcctl_dissect_element_EnumDependentServicesA_services_returned_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
861 static int svcctl_dissect_element_EnumServicesStatusA_scm_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
862 static int svcctl_dissect_element_EnumServicesStatusA_scm_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
863 static int svcctl_dissect_element_EnumServicesStatusA_service_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
864 static int svcctl_dissect_element_EnumServicesStatusA_service_state(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
865 static int svcctl_dissect_element_EnumServicesStatusA_offered(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
866 static int svcctl_dissect_element_EnumServicesStatusA_service(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
867 static int svcctl_dissect_element_EnumServicesStatusA_service_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
868 static int svcctl_dissect_element_EnumServicesStatusA_needed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
869 static int svcctl_dissect_element_EnumServicesStatusA_needed_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
870 static int svcctl_dissect_element_EnumServicesStatusA_services_returned(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
871 static int svcctl_dissect_element_EnumServicesStatusA_services_returned_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
872 static int svcctl_dissect_element_EnumServicesStatusA_resume_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
873 static int svcctl_dissect_element_EnumServicesStatusA_resume_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
874 static int svcctl_dissect_element_OpenSCManagerA_MachineName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
875 static int svcctl_dissect_element_OpenSCManagerA_MachineName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
876 static int svcctl_dissect_element_OpenSCManagerA_DatabaseName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
877 static int svcctl_dissect_element_OpenSCManagerA_DatabaseName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
878 static int svcctl_dissect_element_OpenSCManagerA_access_mask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
879 static int svcctl_dissect_element_OpenSCManagerA_scm_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
880 static int svcctl_dissect_element_OpenSCManagerA_scm_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
881 static int svcctl_dissect_element_OpenServiceA_scm_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
882 static int svcctl_dissect_element_OpenServiceA_scm_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
883 static int svcctl_dissect_element_OpenServiceA_ServiceName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
884 static int svcctl_dissect_element_OpenServiceA_access_mask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
885 static int svcctl_dissect_element_OpenServiceA_service_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
886 static int svcctl_dissect_element_OpenServiceA_service_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
887 static int svcctl_dissect_element_QueryServiceConfigA_service_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
888 static int svcctl_dissect_element_QueryServiceConfigA_service_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
889 static int svcctl_dissect_element_QueryServiceConfigA_query(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
890 static int svcctl_dissect_element_QueryServiceConfigA_query_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
891 static int svcctl_dissect_element_QueryServiceConfigA_offered(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
892 static int svcctl_dissect_element_QueryServiceConfigA_needed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
893 static int svcctl_dissect_element_QueryServiceConfigA_needed_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
894 static int svcctl_dissect_element_QueryServiceLockStatusA_scm_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
895 static int svcctl_dissect_element_QueryServiceLockStatusA_scm_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
896 static int svcctl_dissect_element_QueryServiceLockStatusA_lock_status(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
897 static int svcctl_dissect_element_QueryServiceLockStatusA_lock_status_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
898 static int svcctl_dissect_element_QueryServiceLockStatusA_offered(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
899 static int svcctl_dissect_element_QueryServiceLockStatusA_needed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
900 static int svcctl_dissect_element_QueryServiceLockStatusA_needed_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
901 static int svcctl_dissect_element_StartServiceA_service_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
902 static int svcctl_dissect_element_StartServiceA_service_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
903 static int svcctl_dissect_element_StartServiceA_NumArgs(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
904 static int svcctl_dissect_element_StartServiceA_Arguments(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
905 static int svcctl_dissect_element_StartServiceA_Arguments_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
906 static int svcctl_dissect_element_StartServiceA_Arguments__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
907 static int svcctl_dissect_element_GetServiceDisplayNameA_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
908 static int svcctl_dissect_element_GetServiceDisplayNameA_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
909 static int svcctl_dissect_element_GetServiceDisplayNameA_service_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
910 static int svcctl_dissect_element_GetServiceDisplayNameA_service_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
911 static int svcctl_dissect_element_GetServiceDisplayNameA_display_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
912 static int svcctl_dissect_element_GetServiceDisplayNameA_display_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
913 static int svcctl_dissect_element_GetServiceDisplayNameA_display_name__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
914 static int svcctl_dissect_element_GetServiceDisplayNameA_display_name_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
915 static int svcctl_dissect_element_GetServiceDisplayNameA_display_name_length_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
916 static int svcctl_dissect_element_GetServiceKeyNameA_scm_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
917 static int svcctl_dissect_element_GetServiceKeyNameA_scm_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
918 static int svcctl_dissect_element_GetServiceKeyNameA_service_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
919 static int svcctl_dissect_element_GetServiceKeyNameA_service_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
920 static int svcctl_dissect_element_GetServiceKeyNameA_key_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
921 static int svcctl_dissect_element_GetServiceKeyNameA_key_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
922 static int svcctl_dissect_element_GetServiceKeyNameA_key_name__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
923 static int svcctl_dissect_element_GetServiceKeyNameA_display_name_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
924 static int svcctl_dissect_element_GetServiceKeyNameA_display_name_length_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
925 static int svcctl_dissect_element_GetCurrentGroupeStateW_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
926 static int svcctl_dissect_element_GetCurrentGroupeStateW_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
927 static int svcctl_dissect_element_GetCurrentGroupeStateW_lpLoadOrderGroup(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
928 static int svcctl_dissect_element_GetCurrentGroupeStateW_lpLoadOrderGroup_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
929 static int svcctl_dissect_element_GetCurrentGroupeStateW_state(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
930 static int svcctl_dissect_element_GetCurrentGroupeStateW_state_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
931 static int svcctl_dissect_element_EnumServiceGroupW_scm_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
932 static int svcctl_dissect_element_EnumServiceGroupW_scm_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
933 static int svcctl_dissect_element_EnumServiceGroupW_service_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
934 static int svcctl_dissect_element_EnumServiceGroupW_service_state(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
935 static int svcctl_dissect_element_EnumServiceGroupW_lpBuffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
936 static int svcctl_dissect_element_EnumServiceGroupW_lpBuffer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
937 static int svcctl_dissect_element_EnumServiceGroupW_cbBufSize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
938 static int svcctl_dissect_element_EnumServiceGroupW_pcbBytesNeeded(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
939 static int svcctl_dissect_element_EnumServiceGroupW_pcbBytesNeeded_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
940 static int svcctl_dissect_element_EnumServiceGroupW_lpServicesReturned(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
941 static int svcctl_dissect_element_EnumServiceGroupW_lpServicesReturned_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
942 static int svcctl_dissect_element_EnumServiceGroupW_ResumeIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
943 static int svcctl_dissect_element_EnumServiceGroupW_ResumeIndex_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
944 static int svcctl_dissect_element_EnumServiceGroupW_pszGroupName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
945 static int svcctl_dissect_element_EnumServiceGroupW_pszGroupName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
946 static int svcctl_dissect_element_ChangeServiceConfig2A_service_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
947 static int svcctl_dissect_element_ChangeServiceConfig2A_service_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
948 static int svcctl_dissect_element_ChangeServiceConfig2A_info_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
949 static int svcctl_dissect_element_ChangeServiceConfig2A_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
950 static int svcctl_dissect_element_ChangeServiceConfig2A_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
951 static int svcctl_dissect_element_ChangeServiceConfig2W_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
952 static int svcctl_dissect_element_ChangeServiceConfig2W_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
953 static int svcctl_dissect_element_ChangeServiceConfig2W_info_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
954 static int svcctl_dissect_element_ChangeServiceConfig2W_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
955 static int svcctl_dissect_element_ChangeServiceConfig2W_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
956 static int svcctl_dissect_element_QueryServiceConfig2A_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
957 static int svcctl_dissect_element_QueryServiceConfig2A_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
958 static int svcctl_dissect_element_QueryServiceConfig2A_info_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
959 static int svcctl_dissect_element_QueryServiceConfig2A_buffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
960 static int svcctl_dissect_element_QueryServiceConfig2A_buffer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
961 static int svcctl_dissect_element_QueryServiceConfig2A_offered(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
962 static int svcctl_dissect_element_QueryServiceConfig2A_needed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
963 static int svcctl_dissect_element_QueryServiceConfig2A_needed_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
964 static int svcctl_dissect_element_QueryServiceConfig2W_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
965 static int svcctl_dissect_element_QueryServiceConfig2W_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
966 static int svcctl_dissect_element_QueryServiceConfig2W_info_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
967 static int svcctl_dissect_element_QueryServiceConfig2W_buffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
968 static int svcctl_dissect_element_QueryServiceConfig2W_buffer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
969 static int svcctl_dissect_element_QueryServiceConfig2W_buffer__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
970 static int svcctl_dissect_element_QueryServiceConfig2W_offered(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
971 static int svcctl_dissect_element_QueryServiceConfig2W_needed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
972 static int svcctl_dissect_element_QueryServiceConfig2W_needed_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
973 static int svcctl_dissect_element_QueryServiceStatusEx_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
974 static int svcctl_dissect_element_QueryServiceStatusEx_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
975 static int svcctl_dissect_element_QueryServiceStatusEx_info_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
976 static int svcctl_dissect_element_QueryServiceStatusEx_buffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
977 static int svcctl_dissect_element_QueryServiceStatusEx_buffer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
978 static int svcctl_dissect_element_QueryServiceStatusEx_buffer__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
979 static int svcctl_dissect_element_QueryServiceStatusEx_offered(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
980 static int svcctl_dissect_element_QueryServiceStatusEx_needed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
981 static int svcctl_dissect_element_QueryServiceStatusEx_needed_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
982 static int svcctl_dissect_element_EnumServicesStatusExA_scm_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
983 static int svcctl_dissect_element_EnumServicesStatusExA_scm_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
984 static int svcctl_dissect_element_EnumServicesStatusExA_info_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
985 static int svcctl_dissect_element_EnumServicesStatusExA_service_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
986 static int svcctl_dissect_element_EnumServicesStatusExA_state(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
987 static int svcctl_dissect_element_EnumServicesStatusExA_services(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
988 static int svcctl_dissect_element_EnumServicesStatusExA_services_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
989 static int svcctl_dissect_element_EnumServicesStatusExA_offered(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
990 static int svcctl_dissect_element_EnumServicesStatusExA_needed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
991 static int svcctl_dissect_element_EnumServicesStatusExA_needed_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
992 static int svcctl_dissect_element_EnumServicesStatusExA_service_returned(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
993 static int svcctl_dissect_element_EnumServicesStatusExA_service_returned_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
994 static int svcctl_dissect_element_EnumServicesStatusExA_resume_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
995 static int svcctl_dissect_element_EnumServicesStatusExA_resume_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
996 static int svcctl_dissect_element_EnumServicesStatusExA_group_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
997 static int svcctl_dissect_element_EnumServicesStatusExA_group_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
998 static int svcctl_dissect_element_EnumServicesStatusExA_group_name__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
999 static int svcctl_dissect_element_EnumServicesStatusExW_scmanager(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1000 static int svcctl_dissect_element_EnumServicesStatusExW_scmanager_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1001 static int svcctl_dissect_element_EnumServicesStatusExW_info_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1002 static int svcctl_dissect_element_EnumServicesStatusExW_service_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1003 static int svcctl_dissect_element_EnumServicesStatusExW_state(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1004 static int svcctl_dissect_element_EnumServicesStatusExW_services(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1005 static int svcctl_dissect_element_EnumServicesStatusExW_services_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1006 static int svcctl_dissect_element_EnumServicesStatusExW_services__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1007 static int svcctl_dissect_element_EnumServicesStatusExW_offered(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1008 static int svcctl_dissect_element_EnumServicesStatusExW_needed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1009 static int svcctl_dissect_element_EnumServicesStatusExW_needed_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1010 static int svcctl_dissect_element_EnumServicesStatusExW_service_returned(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1011 static int svcctl_dissect_element_EnumServicesStatusExW_service_returned_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1012 static int svcctl_dissect_element_EnumServicesStatusExW_resume_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1013 static int svcctl_dissect_element_EnumServicesStatusExW_resume_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1014 static int svcctl_dissect_element_EnumServicesStatusExW_group_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1015 static int svcctl_dissect_element_EnumServicesStatusExW_group_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1016 static int svcctl_dissect_element_CreateServiceWOW64A_scm_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1017 static int svcctl_dissect_element_CreateServiceWOW64A_scm_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1018 static int svcctl_dissect_element_CreateServiceWOW64A_ServiceName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1019 static int svcctl_dissect_element_CreateServiceWOW64A_DisplayName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1020 static int svcctl_dissect_element_CreateServiceWOW64A_DisplayName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1021 static int svcctl_dissect_element_CreateServiceWOW64A_desired_access(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1022 static int svcctl_dissect_element_CreateServiceWOW64A_service_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1023 static int svcctl_dissect_element_CreateServiceWOW64A_start_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1024 static int svcctl_dissect_element_CreateServiceWOW64A_error_control(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1025 static int svcctl_dissect_element_CreateServiceWOW64A_binary_path(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1026 static int svcctl_dissect_element_CreateServiceWOW64A_LoadOrderGroupKey(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1027 static int svcctl_dissect_element_CreateServiceWOW64A_LoadOrderGroupKey_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1028 static int svcctl_dissect_element_CreateServiceWOW64A_tag_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1029 static int svcctl_dissect_element_CreateServiceWOW64A_tag_id_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1030 static int svcctl_dissect_element_CreateServiceWOW64A_dependencies(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1031 static int svcctl_dissect_element_CreateServiceWOW64A_dependencies_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1032 static int svcctl_dissect_element_CreateServiceWOW64A_dependencies__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1033 static int svcctl_dissect_element_CreateServiceWOW64A_dependencies_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1034 static int svcctl_dissect_element_CreateServiceWOW64A_service_start_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1035 static int svcctl_dissect_element_CreateServiceWOW64A_service_start_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1036 static int svcctl_dissect_element_CreateServiceWOW64A_password(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1037 static int svcctl_dissect_element_CreateServiceWOW64A_password_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1038 static int svcctl_dissect_element_CreateServiceWOW64A_password__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1039 static int svcctl_dissect_element_CreateServiceWOW64A_password_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1040 static int svcctl_dissect_element_CreateServiceWOW64A_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1041 static int svcctl_dissect_element_CreateServiceWOW64A_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1042 static int svcctl_dissect_element_CreateServiceWOW64W_scm_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1043 static int svcctl_dissect_element_CreateServiceWOW64W_scm_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1044 static int svcctl_dissect_element_CreateServiceWOW64W_ServiceName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1045 static int svcctl_dissect_element_CreateServiceWOW64W_DisplayName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1046 static int svcctl_dissect_element_CreateServiceWOW64W_DisplayName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1047 static int svcctl_dissect_element_CreateServiceWOW64W_desired_access(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1048 static int svcctl_dissect_element_CreateServiceWOW64W_service_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1049 static int svcctl_dissect_element_CreateServiceWOW64W_start_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1050 static int svcctl_dissect_element_CreateServiceWOW64W_error_control(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1051 static int svcctl_dissect_element_CreateServiceWOW64W_binary_path(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1052 static int svcctl_dissect_element_CreateServiceWOW64W_LoadOrderGroupKey(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1053 static int svcctl_dissect_element_CreateServiceWOW64W_LoadOrderGroupKey_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1054 static int svcctl_dissect_element_CreateServiceWOW64W_tag_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1055 static int svcctl_dissect_element_CreateServiceWOW64W_tag_id_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1056 static int svcctl_dissect_element_CreateServiceWOW64W_dependencies(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1057 static int svcctl_dissect_element_CreateServiceWOW64W_dependencies_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1058 static int svcctl_dissect_element_CreateServiceWOW64W_dependencies__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1059 static int svcctl_dissect_element_CreateServiceWOW64W_dependencies_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1060 static int svcctl_dissect_element_CreateServiceWOW64W_service_start_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1061 static int svcctl_dissect_element_CreateServiceWOW64W_service_start_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1062 static int svcctl_dissect_element_CreateServiceWOW64W_password(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1063 static int svcctl_dissect_element_CreateServiceWOW64W_password_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1064 static int svcctl_dissect_element_CreateServiceWOW64W_password__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1065 static int svcctl_dissect_element_CreateServiceWOW64W_password_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1066 static int svcctl_dissect_element_CreateServiceWOW64W_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1067 static int svcctl_dissect_element_CreateServiceWOW64W_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1068 static int svcctl_dissect_element_QueryServiceConfigEx_service_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1069 static int svcctl_dissect_element_QueryServiceConfigEx_service_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1070 static int svcctl_dissect_element_QueryServiceConfigEx_info_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1071 static int svcctl_dissect_element_CreateWowService_scm_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1072 static int svcctl_dissect_element_CreateWowService_scm_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1073 static int svcctl_dissect_element_CreateWowService_ServiceName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1074 static int svcctl_dissect_element_CreateWowService_DisplayName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1075 static int svcctl_dissect_element_CreateWowService_DisplayName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1076 static int svcctl_dissect_element_CreateWowService_desired_access(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1077 static int svcctl_dissect_element_CreateWowService_service_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1078 static int svcctl_dissect_element_CreateWowService_start_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1079 static int svcctl_dissect_element_CreateWowService_error_control(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1080 static int svcctl_dissect_element_CreateWowService_binary_path(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1081 static int svcctl_dissect_element_CreateWowService_LoadOrderGroupKey(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1082 static int svcctl_dissect_element_CreateWowService_LoadOrderGroupKey_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1083 static int svcctl_dissect_element_CreateWowService_tag_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1084 static int svcctl_dissect_element_CreateWowService_tag_id_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1085 static int svcctl_dissect_element_CreateWowService_dependencies(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1086 static int svcctl_dissect_element_CreateWowService_dependencies_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1087 static int svcctl_dissect_element_CreateWowService_dependencies__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1088 static int svcctl_dissect_element_CreateWowService_dependencies_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1089 static int svcctl_dissect_element_CreateWowService_service_start_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1090 static int svcctl_dissect_element_CreateWowService_service_start_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1091 static int svcctl_dissect_element_CreateWowService_password(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1092 static int svcctl_dissect_element_CreateWowService_password_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1093 static int svcctl_dissect_element_CreateWowService_password__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1094 static int svcctl_dissect_element_CreateWowService_password_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1095 static int svcctl_dissect_element_CreateWowService_service_wow_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1096 static int svcctl_dissect_element_CreateWowService_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1097 static int svcctl_dissect_element_CreateWowService_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1098 static int svcctl_dissect_element_OpenSCManager2_database_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1099 static int svcctl_dissect_element_OpenSCManager2_database_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1100 static int svcctl_dissect_element_OpenSCManager2_desired_access(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1101 static int svcctl_dissect_element_OpenSCManager2_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1102 static int svcctl_dissect_element_OpenSCManager2_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1103 /* ENUM_SERVICE_STATUSW Caveats
1104 https://github.com/fortra/impacket/blob/4888172ce638910104da4bda2c3301c24e17564c/impacket/dcerpc/v5/scmr.py#L1274
1106 static int
1107 svcctl_dissect_struct_ENUM_SERVICE_STATUSW_ptr(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *parent_tree, dcerpc_info* di, uint8_t *drep, int hf_index, int starting_offset);
1108 static int
1109 svcctl_dissect_struct_ENUM_SERVICE_STATUSW_ptr(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *parent_tree, dcerpc_info* di, uint8_t *drep, int hf_index, int starting_offset)
1111 proto_item *item = NULL;
1112 proto_tree *tree = NULL;
1113 proto_tree *tr = NULL;
1114 int old_offset;
1115 uint32_t _referent_id = 0;
1116 ALIGN_TO_5_BYTES;
1117 old_offset = offset;
1118 if (parent_tree) {
1119 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
1120 tree = proto_item_add_subtree(item, ett_svcctl_ENUM_SERVICE_STATUSW);
1122 // Service Name
1123 tr = proto_tree_add_subtree(tree, tvb, offset, 4, ett_svcctl_service_name, NULL, "Pointer to Service Name");
1124 offset = PIDL_dissect_uint32_val(tvb, offset, pinfo, tr, di, drep, hf_svcctl_service_referent_id, 0, &_referent_id);
1125 dissect_null_term_wstring(tvb, starting_offset + _referent_id, pinfo, tr, drep, hf_svcctl_ENUM_SERVICE_STATUSW_service_name , 0);
1126 // Display Name
1127 tr = proto_tree_add_subtree(tree, tvb, offset, 4, ett_svcctl_display_name, NULL, "Pointer to Display Name");
1128 offset = PIDL_dissect_uint32_val(tvb, offset, pinfo, tr, di, drep, hf_svcctl_service_referent_id, 0, &_referent_id);
1129 dissect_null_term_wstring(tvb, starting_offset + _referent_id, pinfo, tr, drep, hf_svcctl_ENUM_SERVICE_STATUSW_display_name , 0);
1130 // Status
1131 offset = svcctl_dissect_element_ENUM_SERVICE_STATUSW_status(tvb, offset, pinfo, tree, di, drep);
1132 proto_item_set_len(item, offset-old_offset);
1133 if (di->call_data->flags & DCERPC_IS_NDR64) {
1134 ALIGN_TO_5_BYTES;
1136 return offset;
1138 /* REnumServicesStatusW
1139 https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-scmr/22b4ff3d-29c6-481f-b598-8ce66a46944a
1141 static int
1142 svcctl_dissect_EnumServicesStatusW_response(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, dcerpc_info* di, uint8_t *drep)
1144 uint32_t status;
1145 uint32_t services_returned= 0;
1146 proto_item *item;
1147 proto_tree *tr = NULL;
1148 int services_buffer_offset;
1149 int payload_starting_offset = offset;
1150 uint64_t buffer_size = 0;
1151 ALIGN_TO_5_BYTES
1152 di->dcerpc_procedure_name="EnumServicesStatusW";
1153 tr = proto_tree_add_subtree(tree, tvb, offset, 0, ett_svcctl_service, &item, "Pointer to Services Status");
1154 // Services Buffer Size
1155 offset = dissect_ndr_uint3264(tvb, offset, pinfo, tr, di, drep, hf_svcctl_service_buffer_size, &buffer_size);
1156 services_buffer_offset = offset;
1157 offset += (int)buffer_size;
1158 proto_item_set_len(item, offset-payload_starting_offset);
1159 ALIGN_TO_4_BYTES
1160 // Bytes Needed
1161 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_EnumServicesStatusW_bytes_needed, 0);
1162 // Services Returned
1163 offset = PIDL_dissect_uint32_val( tvb, offset, pinfo, tree, di, drep
1164 , hf_svcctl_svcctl_EnumServicesStatusW_services_returned
1165 , 0, &services_returned);
1166 // Services
1167 if (services_returned > 0){
1168 payload_starting_offset = services_buffer_offset;
1169 for(unsigned idx = 0; idx < services_returned ; ++idx){
1170 services_buffer_offset = svcctl_dissect_struct_ENUM_SERVICE_STATUSW_ptr( tvb, services_buffer_offset
1171 , pinfo, tr, di, drep
1172 , hf_svcctl_svcctl_EnumDependentServicesW_service_status
1173 , payload_starting_offset);
1175 dissect_deferred_pointers(pinfo, tvb, services_buffer_offset, di, drep);
1177 // Resume Index
1178 offset = svcctl_dissect_element_EnumServicesStatusW_resume_index(tvb, offset, pinfo, tree, di, drep);
1179 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
1180 // Return status
1181 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_werror, &status);
1182 if (status != 0)
1183 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(status, &WERR_errors_ext, "Unknown DOS error 0x%08x"));
1184 return offset;
1188 /* IDL: bitmap { */
1189 /* IDL: } */
1192 svcctl_dissect_bitmap_security_secinfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
1194 uint32_t flags;
1195 ALIGN_TO_4_BYTES;
1197 proto_tree_add_item(parent_tree, hf_index, tvb, offset, 4, DREP_ENC_INTEGER(drep));
1199 offset = dissect_ndr_uint32(tvb, offset, pinfo, parent_tree, di, drep, -1, &flags);
1201 return offset;
1205 /* IDL: struct { */
1206 /* IDL: uint32 is_locked; */
1207 /* IDL: [charset(UTF16)] [unique(1)] uint16 *lock_owner; */
1208 /* IDL: uint32 lock_duration; */
1209 /* IDL: } */
1211 static int
1212 svcctl_dissect_element_SERVICE_LOCK_STATUS_is_locked(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1214 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_SERVICE_LOCK_STATUS_is_locked, 0);
1216 return offset;
1219 static int
1220 svcctl_dissect_element_SERVICE_LOCK_STATUS_lock_owner(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1222 offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_SERVICE_LOCK_STATUS_lock_owner_, NDR_POINTER_UNIQUE, "Pointer to Lock Owner (uint16)",hf_svcctl_SERVICE_LOCK_STATUS_lock_owner);
1224 return offset;
1227 static int
1228 svcctl_dissect_element_SERVICE_LOCK_STATUS_lock_owner_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1230 char *data;
1232 offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(uint16_t), hf_svcctl_SERVICE_LOCK_STATUS_lock_owner, false, &data);
1233 proto_item_append_text(tree, ": %s", data);
1235 return offset;
1238 static int
1239 svcctl_dissect_element_SERVICE_LOCK_STATUS_lock_duration(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1241 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_SERVICE_LOCK_STATUS_lock_duration, 0);
1243 return offset;
1247 svcctl_dissect_struct_SERVICE_LOCK_STATUS(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
1249 proto_item *item = NULL;
1250 proto_tree *tree = NULL;
1251 int old_offset;
1253 ALIGN_TO_5_BYTES;
1255 old_offset = offset;
1257 if (parent_tree) {
1258 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
1259 tree = proto_item_add_subtree(item, ett_svcctl_SERVICE_LOCK_STATUS);
1262 offset = svcctl_dissect_element_SERVICE_LOCK_STATUS_is_locked(tvb, offset, pinfo, tree, di, drep);
1264 offset = svcctl_dissect_element_SERVICE_LOCK_STATUS_lock_owner(tvb, offset, pinfo, tree, di, drep);
1266 offset = svcctl_dissect_element_SERVICE_LOCK_STATUS_lock_duration(tvb, offset, pinfo, tree, di, drep);
1269 proto_item_set_len(item, offset-old_offset);
1272 if (di->call_data->flags & DCERPC_IS_NDR64) {
1273 ALIGN_TO_5_BYTES;
1276 return offset;
1280 /* IDL: enum { */
1281 /* IDL: SVCCTL_STOPPED=0x00000001, */
1282 /* IDL: SVCCTL_START_PENDING=0x00000002, */
1283 /* IDL: SVCCTL_STOP_PENDING=0x00000003, */
1284 /* IDL: SVCCTL_RUNNING=0x00000004, */
1285 /* IDL: SVCCTL_CONTINUE_PENDING=0x00000005, */
1286 /* IDL: SVCCTL_PAUSE_PENDING=0x00000006, */
1287 /* IDL: SVCCTL_PAUSED=0x00000007, */
1288 /* IDL: } */
1291 svcctl_dissect_enum_ServiceStatus(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t *param _U_)
1293 uint32_t parameter=0;
1294 if (param) {
1295 parameter = *param;
1297 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_index, &parameter);
1298 if (param) {
1299 *param = parameter;
1301 return offset;
1305 /* IDL: enum { */
1306 /* IDL: SERVICE_TYPE_KERNEL_DRIVER=0x00000001, */
1307 /* IDL: SERVICE_TYPE_FS_DRIVER=0x00000002, */
1308 /* IDL: SERVICE_TYPE_ADAPTER=0x00000004, */
1309 /* IDL: SERVICE_TYPE_RECOGNIZER_DRIVER=0x00000008, */
1310 /* IDL: SERVICE_TYPE_DRIVER=SERVICE_TYPE_KERNEL_DRIVER|SERVICE_TYPE_FS_DRIVER|SERVICE_TYPE_RECOGNIZER_DRIVER, */
1311 /* IDL: SERVICE_TYPE_WIN32_OWN_PROCESS=0x00000010, */
1312 /* IDL: SERVICE_TYPE_WIN32_SHARE_PROCESS=0x00000020, */
1313 /* IDL: SERVICE_TYPE_USER_OWN_PROCESS=0x00000050, */
1314 /* IDL: SERVICE_TYPE_USER_SHARE_PROCESS=0x00000060, */
1315 /* IDL: SERVICE_TYPE_WIN32=SERVICE_TYPE_WIN32_OWN_PROCESS|SERVICE_TYPE_WIN32_SHARE_PROCESS, */
1316 /* IDL: SERVICE_TYPE_INTERACTIVE_PROCESS=0x00000100, */
1317 /* IDL: } */
1320 svcctl_dissect_enum_ServiceType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t *param _U_)
1322 uint32_t parameter=0;
1323 if (param) {
1324 parameter = *param;
1326 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_index, &parameter);
1327 if (param) {
1328 *param = parameter;
1330 return offset;
1334 /* IDL: bitmap { */
1335 /* IDL: SERVICE_ACCEPT_STOP = 0x00000001 , */
1336 /* IDL: SERVICE_ACCEPT_PAUSE_CONTINUE = 0x00000002 , */
1337 /* IDL: SERVICE_ACCEPT_SHUTDOWN = 0x00000004 , */
1338 /* IDL: SERVICE_ACCEPT_PARAMCHANGE = 0x00000008 , */
1339 /* IDL: SERVICE_ACCEPT_NETBINDCHANGE = 0x00000010 , */
1340 /* IDL: SERVICE_ACCEPT_HARDWAREPROFILECHANGE = 0x00000020 , */
1341 /* IDL: SERVICE_ACCEPT_POWEREVENT = 0x00000040 , */
1342 /* IDL: SERVICE_ACCEPT_SESSIONCHANGE = 0x00000080 , */
1343 /* IDL: SERVICE_ACCEPT_PRESHUTDOWN = 0x00000100 , */
1344 /* IDL: SERVICE_ACCEPT_TIMECHANGE = 0x00000200 , */
1345 /* IDL: SERVICE_ACCEPT_TRIGGEREVENT = 0x00000400 , */
1346 /* IDL: SERVICE_ACCEPT_USERMODEREBOOT = 0x00000800 , */
1347 /* IDL: } */
1350 svcctl_dissect_bitmap_ControlsAccepted(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
1352 proto_item *item;
1353 static int * const svcctl_svcctl_ControlsAccepted_fields[] = {
1354 &hf_svcctl_svcctl_ControlsAccepted_SERVICE_ACCEPT_STOP,
1355 &hf_svcctl_svcctl_ControlsAccepted_SERVICE_ACCEPT_PAUSE_CONTINUE,
1356 &hf_svcctl_svcctl_ControlsAccepted_SERVICE_ACCEPT_SHUTDOWN,
1357 &hf_svcctl_svcctl_ControlsAccepted_SERVICE_ACCEPT_PARAMCHANGE,
1358 &hf_svcctl_svcctl_ControlsAccepted_SERVICE_ACCEPT_NETBINDCHANGE,
1359 &hf_svcctl_svcctl_ControlsAccepted_SERVICE_ACCEPT_HARDWAREPROFILECHANGE,
1360 &hf_svcctl_svcctl_ControlsAccepted_SERVICE_ACCEPT_POWEREVENT,
1361 &hf_svcctl_svcctl_ControlsAccepted_SERVICE_ACCEPT_SESSIONCHANGE,
1362 &hf_svcctl_svcctl_ControlsAccepted_SERVICE_ACCEPT_PRESHUTDOWN,
1363 &hf_svcctl_svcctl_ControlsAccepted_SERVICE_ACCEPT_TIMECHANGE,
1364 &hf_svcctl_svcctl_ControlsAccepted_SERVICE_ACCEPT_TRIGGEREVENT,
1365 &hf_svcctl_svcctl_ControlsAccepted_SERVICE_ACCEPT_USERMODEREBOOT,
1366 NULL
1368 uint32_t flags;
1369 ALIGN_TO_4_BYTES;
1371 item = proto_tree_add_bitmask_with_flags(parent_tree, tvb, offset, hf_index,
1372 ett_svcctl_svcctl_ControlsAccepted, svcctl_svcctl_ControlsAccepted_fields, DREP_ENC_INTEGER(drep), BMT_NO_FALSE);
1374 offset = dissect_ndr_uint32(tvb, offset, pinfo, parent_tree, di, drep, -1, &flags);
1376 if (!flags)
1377 proto_item_append_text(item, ": (No values set)");
1379 if (flags & (~0x00000fff)) {
1380 flags &= (~0x00000fff);
1381 proto_item_append_text(item, "Unknown bitmap value 0x%x", flags);
1384 return offset;
1388 /* IDL: struct { */
1389 /* IDL: svcctl_ServiceType type; */
1390 /* IDL: svcctl_ServiceStatus state; */
1391 /* IDL: svcctl_ControlsAccepted controls_accepted; */
1392 /* IDL: WERROR win32_exit_code; */
1393 /* IDL: uint32 service_exit_code; */
1394 /* IDL: uint32 check_point; */
1395 /* IDL: uint32 wait_hint; */
1396 /* IDL: } */
1398 static int
1399 svcctl_dissect_element_SERVICE_STATUS_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1401 offset = svcctl_dissect_enum_ServiceType(tvb, offset, pinfo, tree, di, drep, hf_svcctl_SERVICE_STATUS_type, 0);
1403 return offset;
1406 static int
1407 svcctl_dissect_element_SERVICE_STATUS_state(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1409 offset = svcctl_dissect_enum_ServiceStatus(tvb, offset, pinfo, tree, di, drep, hf_svcctl_SERVICE_STATUS_state, 0);
1411 return offset;
1414 static int
1415 svcctl_dissect_element_SERVICE_STATUS_controls_accepted(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1417 offset = svcctl_dissect_bitmap_ControlsAccepted(tvb, offset, pinfo, tree, di, drep, hf_svcctl_SERVICE_STATUS_controls_accepted, 0);
1419 return offset;
1422 static int
1423 svcctl_dissect_element_SERVICE_STATUS_win32_exit_code(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1425 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_SERVICE_STATUS_win32_exit_code, 0);
1427 return offset;
1430 static int
1431 svcctl_dissect_element_SERVICE_STATUS_service_exit_code(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1433 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_SERVICE_STATUS_service_exit_code, 0);
1435 return offset;
1438 static int
1439 svcctl_dissect_element_SERVICE_STATUS_check_point(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1441 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_SERVICE_STATUS_check_point, 0);
1443 return offset;
1446 static int
1447 svcctl_dissect_element_SERVICE_STATUS_wait_hint(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1449 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_SERVICE_STATUS_wait_hint, 0);
1451 return offset;
1455 svcctl_dissect_struct_SERVICE_STATUS(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
1457 proto_item *item = NULL;
1458 proto_tree *tree = NULL;
1459 int old_offset;
1461 ALIGN_TO_4_BYTES;
1463 old_offset = offset;
1465 if (parent_tree) {
1466 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
1467 tree = proto_item_add_subtree(item, ett_svcctl_SERVICE_STATUS);
1470 offset = svcctl_dissect_element_SERVICE_STATUS_type(tvb, offset, pinfo, tree, di, drep);
1472 offset = svcctl_dissect_element_SERVICE_STATUS_state(tvb, offset, pinfo, tree, di, drep);
1474 offset = svcctl_dissect_element_SERVICE_STATUS_controls_accepted(tvb, offset, pinfo, tree, di, drep);
1476 offset = svcctl_dissect_element_SERVICE_STATUS_win32_exit_code(tvb, offset, pinfo, tree, di, drep);
1478 offset = svcctl_dissect_element_SERVICE_STATUS_service_exit_code(tvb, offset, pinfo, tree, di, drep);
1480 offset = svcctl_dissect_element_SERVICE_STATUS_check_point(tvb, offset, pinfo, tree, di, drep);
1482 offset = svcctl_dissect_element_SERVICE_STATUS_wait_hint(tvb, offset, pinfo, tree, di, drep);
1485 proto_item_set_len(item, offset-old_offset);
1488 if (di->call_data->flags & DCERPC_IS_NDR64) {
1489 ALIGN_TO_4_BYTES;
1492 return offset;
1496 /* IDL: enum { */
1497 /* IDL: SERVICE_RUNS_IN_NONSYSTEM_ORNOTRUNNING=0x00000000, */
1498 /* IDL: SERVICE_RUNS_IN_SYSTEM_PROCESS=0x00000001, */
1499 /* IDL: } */
1502 svcctl_dissect_enum_ServiceFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t *param _U_)
1504 uint32_t parameter=0;
1505 if (param) {
1506 parameter = *param;
1508 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_index, &parameter);
1509 if (param) {
1510 *param = parameter;
1512 return offset;
1516 /* IDL: struct { */
1517 /* IDL: svcctl_ServiceType type; */
1518 /* IDL: svcctl_ServiceStatus state; */
1519 /* IDL: svcctl_ControlsAccepted controls_accepted; */
1520 /* IDL: WERROR win32_exit_code; */
1521 /* IDL: uint32 service_exit_code; */
1522 /* IDL: uint32 check_point; */
1523 /* IDL: uint32 wait_hint; */
1524 /* IDL: uint32 process_id; */
1525 /* IDL: svcctl_ServiceFlags service_flags; */
1526 /* IDL: } */
1528 static int
1529 svcctl_dissect_element_SERVICE_STATUS_PROCESS_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1531 offset = svcctl_dissect_enum_ServiceType(tvb, offset, pinfo, tree, di, drep, hf_svcctl_SERVICE_STATUS_PROCESS_type, 0);
1533 return offset;
1536 static int
1537 svcctl_dissect_element_SERVICE_STATUS_PROCESS_state(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1539 offset = svcctl_dissect_enum_ServiceStatus(tvb, offset, pinfo, tree, di, drep, hf_svcctl_SERVICE_STATUS_PROCESS_state, 0);
1541 return offset;
1544 static int
1545 svcctl_dissect_element_SERVICE_STATUS_PROCESS_controls_accepted(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1547 offset = svcctl_dissect_bitmap_ControlsAccepted(tvb, offset, pinfo, tree, di, drep, hf_svcctl_SERVICE_STATUS_PROCESS_controls_accepted, 0);
1549 return offset;
1552 static int
1553 svcctl_dissect_element_SERVICE_STATUS_PROCESS_win32_exit_code(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1555 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_SERVICE_STATUS_PROCESS_win32_exit_code, 0);
1557 return offset;
1560 static int
1561 svcctl_dissect_element_SERVICE_STATUS_PROCESS_service_exit_code(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1563 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_SERVICE_STATUS_PROCESS_service_exit_code, 0);
1565 return offset;
1568 static int
1569 svcctl_dissect_element_SERVICE_STATUS_PROCESS_check_point(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1571 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_SERVICE_STATUS_PROCESS_check_point, 0);
1573 return offset;
1576 static int
1577 svcctl_dissect_element_SERVICE_STATUS_PROCESS_wait_hint(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1579 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_SERVICE_STATUS_PROCESS_wait_hint, 0);
1581 return offset;
1584 static int
1585 svcctl_dissect_element_SERVICE_STATUS_PROCESS_process_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1587 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_SERVICE_STATUS_PROCESS_process_id, 0);
1589 return offset;
1592 static int
1593 svcctl_dissect_element_SERVICE_STATUS_PROCESS_service_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1595 offset = svcctl_dissect_enum_ServiceFlags(tvb, offset, pinfo, tree, di, drep, hf_svcctl_SERVICE_STATUS_PROCESS_service_flags, 0);
1597 return offset;
1601 svcctl_dissect_struct_SERVICE_STATUS_PROCESS(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
1603 proto_item *item = NULL;
1604 proto_tree *tree = NULL;
1605 int old_offset;
1607 ALIGN_TO_4_BYTES;
1609 old_offset = offset;
1611 if (parent_tree) {
1612 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
1613 tree = proto_item_add_subtree(item, ett_svcctl_SERVICE_STATUS_PROCESS);
1616 offset = svcctl_dissect_element_SERVICE_STATUS_PROCESS_type(tvb, offset, pinfo, tree, di, drep);
1618 offset = svcctl_dissect_element_SERVICE_STATUS_PROCESS_state(tvb, offset, pinfo, tree, di, drep);
1620 offset = svcctl_dissect_element_SERVICE_STATUS_PROCESS_controls_accepted(tvb, offset, pinfo, tree, di, drep);
1622 offset = svcctl_dissect_element_SERVICE_STATUS_PROCESS_win32_exit_code(tvb, offset, pinfo, tree, di, drep);
1624 offset = svcctl_dissect_element_SERVICE_STATUS_PROCESS_service_exit_code(tvb, offset, pinfo, tree, di, drep);
1626 offset = svcctl_dissect_element_SERVICE_STATUS_PROCESS_check_point(tvb, offset, pinfo, tree, di, drep);
1628 offset = svcctl_dissect_element_SERVICE_STATUS_PROCESS_wait_hint(tvb, offset, pinfo, tree, di, drep);
1630 offset = svcctl_dissect_element_SERVICE_STATUS_PROCESS_process_id(tvb, offset, pinfo, tree, di, drep);
1632 offset = svcctl_dissect_element_SERVICE_STATUS_PROCESS_service_flags(tvb, offset, pinfo, tree, di, drep);
1635 proto_item_set_len(item, offset-old_offset);
1638 if (di->call_data->flags & DCERPC_IS_NDR64) {
1639 ALIGN_TO_4_BYTES;
1642 return offset;
1646 /* IDL: struct { */
1647 /* IDL: [flag(LIBNDR_FLAG_STR_NULLTERM)] [unique(1)] string *service_name; */
1648 /* IDL: [flag(LIBNDR_FLAG_STR_NULLTERM)] [unique(1)] string *display_name; */
1649 /* IDL: SERVICE_STATUS status; */
1650 /* IDL: } */
1652 static int
1653 svcctl_dissect_element_ENUM_SERVICE_STATUSW_service_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1655 offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_ENUM_SERVICE_STATUSW_service_name_, NDR_POINTER_UNIQUE, "Pointer to Service Name (string)",hf_svcctl_ENUM_SERVICE_STATUSW_service_name);
1657 return offset;
1660 static int
1661 svcctl_dissect_element_ENUM_SERVICE_STATUSW_service_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1663 offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_svcctl_ENUM_SERVICE_STATUSW_service_name , 0);
1665 return offset;
1668 static int
1669 svcctl_dissect_element_ENUM_SERVICE_STATUSW_display_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1671 offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_ENUM_SERVICE_STATUSW_display_name_, NDR_POINTER_UNIQUE, "Pointer to Display Name (string)",hf_svcctl_ENUM_SERVICE_STATUSW_display_name);
1673 return offset;
1676 static int
1677 svcctl_dissect_element_ENUM_SERVICE_STATUSW_display_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1679 offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_svcctl_ENUM_SERVICE_STATUSW_display_name , 0);
1681 return offset;
1684 static int
1685 svcctl_dissect_element_ENUM_SERVICE_STATUSW_status(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1687 offset = svcctl_dissect_struct_SERVICE_STATUS(tvb,offset,pinfo,tree,di,drep,hf_svcctl_ENUM_SERVICE_STATUSW_status,0);
1689 return offset;
1693 svcctl_dissect_struct_ENUM_SERVICE_STATUSW(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
1695 proto_item *item = NULL;
1696 proto_tree *tree = NULL;
1697 int old_offset;
1699 ALIGN_TO_5_BYTES;
1701 old_offset = offset;
1703 if (parent_tree) {
1704 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
1705 tree = proto_item_add_subtree(item, ett_svcctl_ENUM_SERVICE_STATUSW);
1708 offset = svcctl_dissect_element_ENUM_SERVICE_STATUSW_service_name(tvb, offset, pinfo, tree, di, drep);
1710 offset = svcctl_dissect_element_ENUM_SERVICE_STATUSW_display_name(tvb, offset, pinfo, tree, di, drep);
1712 offset = svcctl_dissect_element_ENUM_SERVICE_STATUSW_status(tvb, offset, pinfo, tree, di, drep);
1715 proto_item_set_len(item, offset-old_offset);
1718 if (di->call_data->flags & DCERPC_IS_NDR64) {
1719 ALIGN_TO_5_BYTES;
1722 return offset;
1726 /* IDL: struct { */
1727 /* IDL: [flag(LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM)] [unique(1)] string *service_name; */
1728 /* IDL: [flag(LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM)] [unique(1)] string *display_name; */
1729 /* IDL: SERVICE_STATUS status; */
1730 /* IDL: } */
1732 static int
1733 svcctl_dissect_element_ENUM_SERVICE_STATUSA_service_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1735 offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_ENUM_SERVICE_STATUSA_service_name_, NDR_POINTER_UNIQUE, "Pointer to Service Name (string)",hf_svcctl_ENUM_SERVICE_STATUSA_service_name);
1737 return offset;
1740 static int
1741 svcctl_dissect_element_ENUM_SERVICE_STATUSA_service_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1743 offset = dissect_null_term_string(tvb, offset, pinfo, tree, drep, hf_svcctl_ENUM_SERVICE_STATUSA_service_name , 0);
1745 return offset;
1748 static int
1749 svcctl_dissect_element_ENUM_SERVICE_STATUSA_display_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1751 offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_ENUM_SERVICE_STATUSA_display_name_, NDR_POINTER_UNIQUE, "Pointer to Display Name (string)",hf_svcctl_ENUM_SERVICE_STATUSA_display_name);
1753 return offset;
1756 static int
1757 svcctl_dissect_element_ENUM_SERVICE_STATUSA_display_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1759 offset = dissect_null_term_string(tvb, offset, pinfo, tree, drep, hf_svcctl_ENUM_SERVICE_STATUSA_display_name , 0);
1761 return offset;
1764 static int
1765 svcctl_dissect_element_ENUM_SERVICE_STATUSA_status(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1767 offset = svcctl_dissect_struct_SERVICE_STATUS(tvb,offset,pinfo,tree,di,drep,hf_svcctl_ENUM_SERVICE_STATUSA_status,0);
1769 return offset;
1773 svcctl_dissect_struct_ENUM_SERVICE_STATUSA(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
1775 proto_item *item = NULL;
1776 proto_tree *tree = NULL;
1777 int old_offset;
1779 ALIGN_TO_5_BYTES;
1781 old_offset = offset;
1783 if (parent_tree) {
1784 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
1785 tree = proto_item_add_subtree(item, ett_svcctl_ENUM_SERVICE_STATUSA);
1788 offset = svcctl_dissect_element_ENUM_SERVICE_STATUSA_service_name(tvb, offset, pinfo, tree, di, drep);
1790 offset = svcctl_dissect_element_ENUM_SERVICE_STATUSA_display_name(tvb, offset, pinfo, tree, di, drep);
1792 offset = svcctl_dissect_element_ENUM_SERVICE_STATUSA_status(tvb, offset, pinfo, tree, di, drep);
1795 proto_item_set_len(item, offset-old_offset);
1798 if (di->call_data->flags & DCERPC_IS_NDR64) {
1799 ALIGN_TO_5_BYTES;
1802 return offset;
1806 /* IDL: enum { */
1807 /* IDL: SVCCTL_CONTROL_STOP=0x00000001, */
1808 /* IDL: SVCCTL_CONTROL_PAUSE=0x00000002, */
1809 /* IDL: SVCCTL_CONTROL_CONTINUE=0x00000003, */
1810 /* IDL: SVCCTL_CONTROL_INTERROGATE=0x00000004, */
1811 /* IDL: SVCCTL_CONTROL_SHUTDOWN=0x00000005, */
1812 /* IDL: SERVICE_CONTROL_PARAMCHANGE=0x00000006, */
1813 /* IDL: SERVICE_CONTROL_NETBINDADD=0x00000007, */
1814 /* IDL: SERVICE_CONTROL_NETBINDREMOVE=0x00000008, */
1815 /* IDL: SERVICE_CONTROL_NETBINDENABLE=0x00000009, */
1816 /* IDL: SERVICE_CONTROL_NETBINDDISABLE=0x0000000A, */
1817 /* IDL: } */
1820 svcctl_dissect_enum_SERVICE_CONTROL(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t *param _U_)
1822 uint32_t parameter=0;
1823 if (param) {
1824 parameter = *param;
1826 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_index, &parameter);
1827 if (param) {
1828 *param = parameter;
1830 return offset;
1834 /* IDL: enum { */
1835 /* IDL: SVCCTL_SVC_ERROR_IGNORE=0x00000000, */
1836 /* IDL: SVCCTL_SVC_ERROR_NORMAL=0x00000001, */
1837 /* IDL: SVCCTL_SVC_ERROR_CRITICAL=0x00000002, */
1838 /* IDL: SVCCTL_SVC_ERROR_SEVERE=0x00000003, */
1839 /* IDL: } */
1842 svcctl_dissect_enum_ErrorControl(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t *param _U_)
1844 uint32_t parameter=0;
1845 if (param) {
1846 parameter = *param;
1848 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_index, &parameter);
1849 if (param) {
1850 *param = parameter;
1852 return offset;
1856 /* IDL: enum { */
1857 /* IDL: SVCCTL_BOOT_START=0x00000000, */
1858 /* IDL: SVCCTL_SYSTEM_START=0x00000001, */
1859 /* IDL: SVCCTL_AUTO_START=0x00000002, */
1860 /* IDL: SVCCTL_DEMAND_START=0x00000003, */
1861 /* IDL: SVCCTL_DISABLED=0x00000004, */
1862 /* IDL: } */
1865 svcctl_dissect_enum_StartType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t *param _U_)
1867 uint32_t parameter=0;
1868 if (param) {
1869 parameter = *param;
1871 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_index, &parameter);
1872 if (param) {
1873 *param = parameter;
1875 return offset;
1879 /* IDL: enum { */
1880 /* IDL: SERVICE_STATE_ACTIVE=0x00000001, */
1881 /* IDL: SERVICE_STATE_INACTIVE=0x00000002, */
1882 /* IDL: SERVICE_STATE_ALL=(SERVICE_STATE_ACTIVE|SERVICE_STATE_INACTIVE), */
1883 /* IDL: } */
1886 svcctl_dissect_enum_ServiceState(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t *param _U_)
1888 uint32_t parameter=0;
1889 if (param) {
1890 parameter = *param;
1892 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_index, &parameter);
1893 if (param) {
1894 *param = parameter;
1896 return offset;
1900 /* IDL: bitmap { */
1901 /* IDL: SC_RIGHT_MGR_CONNECT = 0x00000001 , */
1902 /* IDL: SC_RIGHT_MGR_CREATE_SERVICE = 0x00000002 , */
1903 /* IDL: SC_RIGHT_MGR_ENUMERATE_SERVICE = 0x00000004 , */
1904 /* IDL: SC_RIGHT_MGR_LOCK = 0x00000008 , */
1905 /* IDL: SC_RIGHT_MGR_QUERY_LOCK_STATUS = 0x00000010 , */
1906 /* IDL: SC_RIGHT_MGR_MODIFY_BOOT_CONFIG = 0x00000020 , */
1907 /* IDL: SC_RIGHT_MGR_ALL_ACCESS = 0x000F003F , */
1908 /* IDL: } */
1911 svcctl_dissect_bitmap_MgrAccessMask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
1913 proto_item *item;
1914 static int * const svcctl_svcctl_MgrAccessMask_fields[] = {
1915 &hf_svcctl_svcctl_MgrAccessMask_SC_RIGHT_MGR_CONNECT,
1916 &hf_svcctl_svcctl_MgrAccessMask_SC_RIGHT_MGR_CREATE_SERVICE,
1917 &hf_svcctl_svcctl_MgrAccessMask_SC_RIGHT_MGR_ENUMERATE_SERVICE,
1918 &hf_svcctl_svcctl_MgrAccessMask_SC_RIGHT_MGR_LOCK,
1919 &hf_svcctl_svcctl_MgrAccessMask_SC_RIGHT_MGR_QUERY_LOCK_STATUS,
1920 &hf_svcctl_svcctl_MgrAccessMask_SC_RIGHT_MGR_MODIFY_BOOT_CONFIG,
1921 &hf_svcctl_svcctl_MgrAccessMask_SC_RIGHT_MGR_ALL_ACCESS,
1922 NULL
1924 uint32_t flags;
1925 ALIGN_TO_4_BYTES;
1927 item = proto_tree_add_bitmask_with_flags(parent_tree, tvb, offset, hf_index,
1928 ett_svcctl_svcctl_MgrAccessMask, svcctl_svcctl_MgrAccessMask_fields, DREP_ENC_INTEGER(drep), BMT_NO_FALSE);
1930 offset = dissect_ndr_uint32(tvb, offset, pinfo, parent_tree, di, drep, -1, &flags);
1932 if (!flags)
1933 proto_item_append_text(item, ": (No values set)");
1935 if (flags & (~0x000f007e)) {
1936 flags &= (~0x000f007e);
1937 proto_item_append_text(item, "Unknown bitmap value 0x%x", flags);
1940 return offset;
1944 /* IDL: bitmap { */
1945 /* IDL: SC_RIGHT_SVC_QUERY_CONFIG = 0x00000001 , */
1946 /* IDL: SC_RIGHT_SVC_CHANGE_CONFIG = 0x00000002 , */
1947 /* IDL: SC_RIGHT_SVC_QUERY_STATUS = 0x00000004 , */
1948 /* IDL: SC_RIGHT_SVC_ENUMERATE_DEPENDENTS = 0x00000008 , */
1949 /* IDL: SC_RIGHT_SVC_START = 0x00000010 , */
1950 /* IDL: SC_RIGHT_SVC_STOP = 0x00000020 , */
1951 /* IDL: SC_RIGHT_SVC_PAUSE_CONTINUE = 0x00000040 , */
1952 /* IDL: SC_RIGHT_SVC_INTERROGATE = 0x00000080 , */
1953 /* IDL: SC_RIGHT_SVC_USER_DEFINED_CONTROL = 0x00000100 , */
1954 /* IDL: } */
1957 svcctl_dissect_bitmap_ServiceAccessMask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
1959 proto_item *item;
1960 static int * const svcctl_svcctl_ServiceAccessMask_fields[] = {
1961 &hf_svcctl_svcctl_ServiceAccessMask_SC_RIGHT_SVC_QUERY_CONFIG,
1962 &hf_svcctl_svcctl_ServiceAccessMask_SC_RIGHT_SVC_CHANGE_CONFIG,
1963 &hf_svcctl_svcctl_ServiceAccessMask_SC_RIGHT_SVC_QUERY_STATUS,
1964 &hf_svcctl_svcctl_ServiceAccessMask_SC_RIGHT_SVC_ENUMERATE_DEPENDENTS,
1965 &hf_svcctl_svcctl_ServiceAccessMask_SC_RIGHT_SVC_START,
1966 &hf_svcctl_svcctl_ServiceAccessMask_SC_RIGHT_SVC_STOP,
1967 &hf_svcctl_svcctl_ServiceAccessMask_SC_RIGHT_SVC_PAUSE_CONTINUE,
1968 &hf_svcctl_svcctl_ServiceAccessMask_SC_RIGHT_SVC_INTERROGATE,
1969 &hf_svcctl_svcctl_ServiceAccessMask_SC_RIGHT_SVC_USER_DEFINED_CONTROL,
1970 NULL
1972 uint32_t flags;
1973 ALIGN_TO_4_BYTES;
1975 item = proto_tree_add_bitmask_with_flags(parent_tree, tvb, offset, hf_index,
1976 ett_svcctl_svcctl_ServiceAccessMask, svcctl_svcctl_ServiceAccessMask_fields, DREP_ENC_INTEGER(drep), BMT_NO_FALSE);
1978 offset = dissect_ndr_uint32(tvb, offset, pinfo, parent_tree, di, drep, -1, &flags);
1980 if (!flags)
1981 proto_item_append_text(item, ": (No values set)");
1983 if (flags & (~0x000001ff)) {
1984 flags &= (~0x000001ff);
1985 proto_item_append_text(item, "Unknown bitmap value 0x%x", flags);
1988 return offset;
1992 /* IDL: struct { */
1993 /* IDL: svcctl_ServiceType service_type; */
1994 /* IDL: svcctl_StartType start_type; */
1995 /* IDL: svcctl_ErrorControl error_control; */
1996 /* IDL: [charset(UTF16)] [range(0,8192)] [unique(1)] uint16 *executablepath; */
1997 /* IDL: [charset(UTF16)] [range(0,8192)] [unique(1)] uint16 *loadordergroup; */
1998 /* IDL: uint32 tag_id; */
1999 /* IDL: [charset(UTF16)] [range(0,8192)] [unique(1)] uint16 *dependencies; */
2000 /* IDL: [charset(UTF16)] [range(0,8192)] [unique(1)] uint16 *startname; */
2001 /* IDL: [charset(UTF16)] [range(0,8192)] [unique(1)] uint16 *displayname; */
2002 /* IDL: } */
2004 static int
2005 svcctl_dissect_element_QUERY_SERVICE_CONFIG_service_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2007 offset = svcctl_dissect_enum_ServiceType(tvb, offset, pinfo, tree, di, drep, hf_svcctl_QUERY_SERVICE_CONFIG_service_type, 0);
2009 return offset;
2012 static int
2013 svcctl_dissect_element_QUERY_SERVICE_CONFIG_start_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2015 offset = svcctl_dissect_enum_StartType(tvb, offset, pinfo, tree, di, drep, hf_svcctl_QUERY_SERVICE_CONFIG_start_type, 0);
2017 return offset;
2020 static int
2021 svcctl_dissect_element_QUERY_SERVICE_CONFIG_error_control(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2023 offset = svcctl_dissect_enum_ErrorControl(tvb, offset, pinfo, tree, di, drep, hf_svcctl_QUERY_SERVICE_CONFIG_error_control, 0);
2025 return offset;
2028 static int
2029 svcctl_dissect_element_QUERY_SERVICE_CONFIG_executablepath(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2031 offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_QUERY_SERVICE_CONFIG_executablepath_, NDR_POINTER_UNIQUE, "Pointer to Executablepath (uint16)",hf_svcctl_QUERY_SERVICE_CONFIG_executablepath);
2033 return offset;
2036 static int
2037 svcctl_dissect_element_QUERY_SERVICE_CONFIG_executablepath_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2039 char *data;
2041 offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(uint16_t), hf_svcctl_QUERY_SERVICE_CONFIG_executablepath, false, &data);
2042 proto_item_append_text(tree, ": %s", data);
2044 return offset;
2047 static int
2048 svcctl_dissect_element_QUERY_SERVICE_CONFIG_loadordergroup(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2050 offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_QUERY_SERVICE_CONFIG_loadordergroup_, NDR_POINTER_UNIQUE, "Pointer to Loadordergroup (uint16)",hf_svcctl_QUERY_SERVICE_CONFIG_loadordergroup);
2052 return offset;
2055 static int
2056 svcctl_dissect_element_QUERY_SERVICE_CONFIG_loadordergroup_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2058 char *data;
2060 offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(uint16_t), hf_svcctl_QUERY_SERVICE_CONFIG_loadordergroup, false, &data);
2061 proto_item_append_text(tree, ": %s", data);
2063 return offset;
2066 static int
2067 svcctl_dissect_element_QUERY_SERVICE_CONFIG_tag_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2069 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_QUERY_SERVICE_CONFIG_tag_id, 0);
2071 return offset;
2074 static int
2075 svcctl_dissect_element_QUERY_SERVICE_CONFIG_dependencies(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2077 offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_QUERY_SERVICE_CONFIG_dependencies_, NDR_POINTER_UNIQUE, "Pointer to Dependencies (uint16)",hf_svcctl_QUERY_SERVICE_CONFIG_dependencies);
2079 return offset;
2082 static int
2083 svcctl_dissect_element_QUERY_SERVICE_CONFIG_dependencies_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2085 char *data;
2087 offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(uint16_t), hf_svcctl_QUERY_SERVICE_CONFIG_dependencies, false, &data);
2088 proto_item_append_text(tree, ": %s", data);
2090 return offset;
2093 static int
2094 svcctl_dissect_element_QUERY_SERVICE_CONFIG_startname(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2096 offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_QUERY_SERVICE_CONFIG_startname_, NDR_POINTER_UNIQUE, "Pointer to Startname (uint16)",hf_svcctl_QUERY_SERVICE_CONFIG_startname);
2098 return offset;
2101 static int
2102 svcctl_dissect_element_QUERY_SERVICE_CONFIG_startname_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2104 char *data;
2106 offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(uint16_t), hf_svcctl_QUERY_SERVICE_CONFIG_startname, false, &data);
2107 proto_item_append_text(tree, ": %s", data);
2109 return offset;
2112 static int
2113 svcctl_dissect_element_QUERY_SERVICE_CONFIG_displayname(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2115 offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_QUERY_SERVICE_CONFIG_displayname_, NDR_POINTER_UNIQUE, "Pointer to Displayname (uint16)",hf_svcctl_QUERY_SERVICE_CONFIG_displayname);
2117 return offset;
2120 static int
2121 svcctl_dissect_element_QUERY_SERVICE_CONFIG_displayname_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2123 char *data;
2125 offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(uint16_t), hf_svcctl_QUERY_SERVICE_CONFIG_displayname, false, &data);
2126 proto_item_append_text(tree, ": %s", data);
2128 return offset;
2132 svcctl_dissect_struct_QUERY_SERVICE_CONFIG(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
2134 proto_item *item = NULL;
2135 proto_tree *tree = NULL;
2136 int old_offset;
2138 ALIGN_TO_5_BYTES;
2140 old_offset = offset;
2142 if (parent_tree) {
2143 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
2144 tree = proto_item_add_subtree(item, ett_svcctl_QUERY_SERVICE_CONFIG);
2147 offset = svcctl_dissect_element_QUERY_SERVICE_CONFIG_service_type(tvb, offset, pinfo, tree, di, drep);
2149 offset = svcctl_dissect_element_QUERY_SERVICE_CONFIG_start_type(tvb, offset, pinfo, tree, di, drep);
2151 offset = svcctl_dissect_element_QUERY_SERVICE_CONFIG_error_control(tvb, offset, pinfo, tree, di, drep);
2153 offset = svcctl_dissect_element_QUERY_SERVICE_CONFIG_executablepath(tvb, offset, pinfo, tree, di, drep);
2155 offset = svcctl_dissect_element_QUERY_SERVICE_CONFIG_loadordergroup(tvb, offset, pinfo, tree, di, drep);
2157 offset = svcctl_dissect_element_QUERY_SERVICE_CONFIG_tag_id(tvb, offset, pinfo, tree, di, drep);
2159 offset = svcctl_dissect_element_QUERY_SERVICE_CONFIG_dependencies(tvb, offset, pinfo, tree, di, drep);
2161 offset = svcctl_dissect_element_QUERY_SERVICE_CONFIG_startname(tvb, offset, pinfo, tree, di, drep);
2163 offset = svcctl_dissect_element_QUERY_SERVICE_CONFIG_displayname(tvb, offset, pinfo, tree, di, drep);
2166 proto_item_set_len(item, offset-old_offset);
2169 if (di->call_data->flags & DCERPC_IS_NDR64) {
2170 ALIGN_TO_5_BYTES;
2173 return offset;
2177 /* IDL: struct { */
2178 /* IDL: [charset(UTF16)] [range(0,SC_MAX_ARGUMENT_LENGTH)] [unique(1)] uint16 *string; */
2179 /* IDL: } */
2181 static int
2182 svcctl_dissect_element_ArgumentString_string(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2184 offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_ArgumentString_string_, NDR_POINTER_UNIQUE, "Pointer to String (uint16)",hf_svcctl_svcctl_ArgumentString_string);
2186 return offset;
2189 static int
2190 svcctl_dissect_element_ArgumentString_string_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2192 char *data;
2194 offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(uint16_t), hf_svcctl_svcctl_ArgumentString_string, false, &data);
2195 proto_item_append_text(tree, ": %s", data);
2197 return offset;
2201 svcctl_dissect_struct_ArgumentString(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
2203 proto_item *item = NULL;
2204 proto_tree *tree = NULL;
2205 int old_offset;
2207 ALIGN_TO_5_BYTES;
2209 old_offset = offset;
2211 if (parent_tree) {
2212 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
2213 tree = proto_item_add_subtree(item, ett_svcctl_svcctl_ArgumentString);
2216 offset = svcctl_dissect_element_ArgumentString_string(tvb, offset, pinfo, tree, di, drep);
2219 proto_item_set_len(item, offset-old_offset);
2222 if (di->call_data->flags & DCERPC_IS_NDR64) {
2223 ALIGN_TO_5_BYTES;
2226 return offset;
2230 /* IDL: struct { */
2231 /* IDL: [charset(ASCII)] [range(0,SC_MAX_ARGUMENT_LENGTH)] [unique(1)] uint8 *string; */
2232 /* IDL: } */
2234 static int
2235 svcctl_dissect_element_ArgumentStringA_string(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2237 offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_ArgumentStringA_string_, NDR_POINTER_UNIQUE, "Pointer to String (uint8)",hf_svcctl_svcctl_ArgumentStringA_string);
2239 return offset;
2242 static int
2243 svcctl_dissect_element_ArgumentStringA_string_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2245 char *data;
2247 offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(uint8_t), hf_svcctl_svcctl_ArgumentStringA_string, false, &data);
2248 proto_item_append_text(tree, ": %s", data);
2250 return offset;
2254 svcctl_dissect_struct_ArgumentStringA(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
2256 proto_item *item = NULL;
2257 proto_tree *tree = NULL;
2258 int old_offset;
2260 ALIGN_TO_5_BYTES;
2262 old_offset = offset;
2264 if (parent_tree) {
2265 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
2266 tree = proto_item_add_subtree(item, ett_svcctl_svcctl_ArgumentStringA);
2269 offset = svcctl_dissect_element_ArgumentStringA_string(tvb, offset, pinfo, tree, di, drep);
2272 proto_item_set_len(item, offset-old_offset);
2275 if (di->call_data->flags & DCERPC_IS_NDR64) {
2276 ALIGN_TO_5_BYTES;
2279 return offset;
2283 /* IDL: enum { */
2284 /* IDL: SERVICE_CONFIG_DESCRIPTION=0x00000001, */
2285 /* IDL: SERVICE_CONFIG_FAILURE_ACTIONS=0x00000002, */
2286 /* IDL: } */
2289 svcctl_dissect_enum_ConfigLevel(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t *param _U_)
2291 uint32_t parameter=0;
2292 if (param) {
2293 parameter = *param;
2295 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_index, &parameter);
2296 if (param) {
2297 *param = parameter;
2299 return offset;
2303 /* IDL: enum { */
2304 /* IDL: SVC_STATUS_PROCESS_INFO=0x00000000, */
2305 /* IDL: } */
2308 svcctl_dissect_enum_StatusLevel(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t *param _U_)
2310 uint32_t parameter=0;
2311 if (param) {
2312 parameter = *param;
2314 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_index, &parameter);
2315 if (param) {
2316 *param = parameter;
2318 return offset;
2321 static int
2322 svcctl_dissect_element_CloseServiceHandle_object_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2324 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_CloseServiceHandle_object_handle_, NDR_POINTER_REF, "Pointer to Object Handle (policy_handle)",hf_svcctl_svcctl_CloseServiceHandle_object_handle);
2326 return offset;
2329 static int
2330 svcctl_dissect_element_CloseServiceHandle_object_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2332 offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_CloseServiceHandle_object_handle, 0);
2334 return offset;
2337 /* IDL: WERROR svcctl_CloseServiceHandle( */
2338 /* IDL: [in] [out] [ref] policy_handle *object_handle */
2339 /* IDL: ); */
2341 static int
2342 svcctl_dissect_CloseServiceHandle_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2344 uint32_t status;
2346 di->dcerpc_procedure_name="CloseServiceHandle";
2347 offset = svcctl_dissect_element_CloseServiceHandle_object_handle(tvb, offset, pinfo, tree, di, drep);
2348 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
2350 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_werror, &status);
2352 if (status != 0)
2353 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(status, &WERR_errors_ext, "Unknown DOS error 0x%08x"));
2355 return offset;
2358 static int
2359 svcctl_dissect_CloseServiceHandle_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2361 di->dcerpc_procedure_name="CloseServiceHandle";
2362 offset = svcctl_dissect_element_CloseServiceHandle_object_handle(tvb, offset, pinfo, tree, di, drep);
2363 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
2364 return offset;
2367 static int
2368 svcctl_dissect_element_ControlService_service_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2370 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_ControlService_service_handle_, NDR_POINTER_REF, "Pointer to Service Handle (policy_handle)",hf_svcctl_svcctl_ControlService_service_handle);
2372 return offset;
2375 static int
2376 svcctl_dissect_element_ControlService_service_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2378 offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_ControlService_service_handle, 0);
2380 return offset;
2383 static int
2384 svcctl_dissect_element_ControlService_control(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2386 offset = svcctl_dissect_enum_SERVICE_CONTROL(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_ControlService_control, 0);
2388 return offset;
2391 static int
2392 svcctl_dissect_element_ControlService_service_status(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2394 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_ControlService_service_status_, NDR_POINTER_REF, "Pointer to Service Status (SERVICE_STATUS)",hf_svcctl_svcctl_ControlService_service_status);
2396 return offset;
2399 static int
2400 svcctl_dissect_element_ControlService_service_status_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2402 offset = svcctl_dissect_struct_SERVICE_STATUS(tvb,offset,pinfo,tree,di,drep,hf_svcctl_svcctl_ControlService_service_status,0);
2404 return offset;
2407 /* IDL: WERROR svcctl_ControlService( */
2408 /* IDL: [in] [ref] policy_handle *service_handle, */
2409 /* IDL: [in] SERVICE_CONTROL control, */
2410 /* IDL: [out] [ref] SERVICE_STATUS *service_status */
2411 /* IDL: ); */
2413 static int
2414 svcctl_dissect_ControlService_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2416 uint32_t status;
2418 di->dcerpc_procedure_name="ControlService";
2419 offset = svcctl_dissect_element_ControlService_service_status(tvb, offset, pinfo, tree, di, drep);
2420 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
2422 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_werror, &status);
2424 if (status != 0)
2425 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(status, &WERR_errors_ext, "Unknown DOS error 0x%08x"));
2427 return offset;
2430 static int
2431 svcctl_dissect_ControlService_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2433 di->dcerpc_procedure_name="ControlService";
2434 offset = svcctl_dissect_element_ControlService_service_handle(tvb, offset, pinfo, tree, di, drep);
2435 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
2436 offset = svcctl_dissect_element_ControlService_control(tvb, offset, pinfo, tree, di, drep);
2437 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
2438 return offset;
2441 static int
2442 svcctl_dissect_element_DeleteService_service_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2444 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_DeleteService_service_handle_, NDR_POINTER_REF, "Pointer to Service Handle (policy_handle)",hf_svcctl_svcctl_DeleteService_service_handle);
2446 return offset;
2449 static int
2450 svcctl_dissect_element_DeleteService_service_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2452 offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_DeleteService_service_handle, 0);
2454 return offset;
2457 /* IDL: WERROR svcctl_DeleteService( */
2458 /* IDL: [in] [ref] policy_handle *service_handle */
2459 /* IDL: ); */
2461 static int
2462 svcctl_dissect_DeleteService_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2464 uint32_t status;
2466 di->dcerpc_procedure_name="DeleteService";
2467 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_werror, &status);
2469 if (status != 0)
2470 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(status, &WERR_errors_ext, "Unknown DOS error 0x%08x"));
2472 return offset;
2475 static int
2476 svcctl_dissect_DeleteService_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2478 di->dcerpc_procedure_name="DeleteService";
2479 offset = svcctl_dissect_element_DeleteService_service_handle(tvb, offset, pinfo, tree, di, drep);
2480 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
2481 return offset;
2484 static int
2485 svcctl_dissect_element_LockServiceDatabase_scm_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2487 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_LockServiceDatabase_scm_handle_, NDR_POINTER_REF, "Pointer to Scm Handle (policy_handle)",hf_svcctl_svcctl_LockServiceDatabase_scm_handle);
2489 return offset;
2492 static int
2493 svcctl_dissect_element_LockServiceDatabase_scm_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2495 offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_LockServiceDatabase_scm_handle, 0);
2497 return offset;
2500 static int
2501 svcctl_dissect_element_LockServiceDatabase_lock_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2503 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_LockServiceDatabase_lock_handle_, NDR_POINTER_REF, "Pointer to Lock Handle (policy_handle)",hf_svcctl_svcctl_LockServiceDatabase_lock_handle);
2505 return offset;
2508 static int
2509 svcctl_dissect_element_LockServiceDatabase_lock_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2511 offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_LockServiceDatabase_lock_handle, 0);
2513 return offset;
2516 /* IDL: WERROR svcctl_LockServiceDatabase( */
2517 /* IDL: [in] [ref] policy_handle *scm_handle, */
2518 /* IDL: [out] [ref] policy_handle *lock_handle */
2519 /* IDL: ); */
2521 static int
2522 svcctl_dissect_LockServiceDatabase_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2524 uint32_t status;
2526 di->dcerpc_procedure_name="LockServiceDatabase";
2527 offset = svcctl_dissect_element_LockServiceDatabase_lock_handle(tvb, offset, pinfo, tree, di, drep);
2528 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
2530 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_werror, &status);
2532 if (status != 0)
2533 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(status, &WERR_errors_ext, "Unknown DOS error 0x%08x"));
2535 return offset;
2538 static int
2539 svcctl_dissect_LockServiceDatabase_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2541 di->dcerpc_procedure_name="LockServiceDatabase";
2542 offset = svcctl_dissect_element_LockServiceDatabase_scm_handle(tvb, offset, pinfo, tree, di, drep);
2543 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
2544 return offset;
2547 static int
2548 svcctl_dissect_element_QueryServiceObjectSecurity_service_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2550 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_QueryServiceObjectSecurity_service_handle_, NDR_POINTER_REF, "Pointer to Service Handle (policy_handle)",hf_svcctl_svcctl_QueryServiceObjectSecurity_service_handle);
2552 return offset;
2555 static int
2556 svcctl_dissect_element_QueryServiceObjectSecurity_service_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2558 offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_QueryServiceObjectSecurity_service_handle, 0);
2560 return offset;
2563 static int
2564 svcctl_dissect_element_QueryServiceObjectSecurity_security_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2566 offset = svcctl_dissect_bitmap_security_secinfo(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_QueryServiceObjectSecurity_security_flags, 0);
2568 return offset;
2571 static int
2572 svcctl_dissect_element_QueryServiceObjectSecurity_security_descriptor(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2574 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_QueryServiceObjectSecurity_security_descriptor_, NDR_POINTER_REF, "Pointer to Security Descriptor (uint8)",hf_svcctl_svcctl_QueryServiceObjectSecurity_security_descriptor);
2576 return offset;
2579 static int
2580 svcctl_dissect_element_QueryServiceObjectSecurity_security_descriptor_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2582 offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_QueryServiceObjectSecurity_security_descriptor__);
2584 return offset;
2587 static int
2588 svcctl_dissect_element_QueryServiceObjectSecurity_security_descriptor__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2590 offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_QueryServiceObjectSecurity_security_descriptor, 0);
2592 return offset;
2595 static int
2596 svcctl_dissect_element_QueryServiceObjectSecurity_offered(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2598 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_QueryServiceObjectSecurity_offered, 0);
2600 return offset;
2603 static int
2604 svcctl_dissect_element_QueryServiceObjectSecurity_bytes_needed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2606 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_QueryServiceObjectSecurity_bytes_needed_, NDR_POINTER_REF, "Pointer to Bytes Needed (uint32)",hf_svcctl_svcctl_QueryServiceObjectSecurity_bytes_needed);
2608 return offset;
2611 static int
2612 svcctl_dissect_element_QueryServiceObjectSecurity_bytes_needed_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2614 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_QueryServiceObjectSecurity_bytes_needed, 0);
2616 return offset;
2619 /* IDL: WERROR svcctl_QueryServiceObjectSecurity( */
2620 /* IDL: [in] [ref] policy_handle *service_handle, */
2621 /* IDL: [in] security_secinfo security_flags, */
2622 /* IDL: [out] [ref] [size_is(offered)] uint8 *security_descriptor, */
2623 /* IDL: [in] [range(0,0x40000)] uint32 offered, */
2624 /* IDL: [out] [range(0,0x40000)] [ref] uint32 *bytes_needed */
2625 /* IDL: ); */
2627 static int
2628 svcctl_dissect_QueryServiceObjectSecurity_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2630 uint32_t status;
2632 di->dcerpc_procedure_name="QueryServiceObjectSecurity";
2633 offset = svcctl_dissect_element_QueryServiceObjectSecurity_security_descriptor(tvb, offset, pinfo, tree, di, drep);
2634 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
2636 offset = svcctl_dissect_element_QueryServiceObjectSecurity_bytes_needed(tvb, offset, pinfo, tree, di, drep);
2637 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
2639 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_werror, &status);
2641 if (status != 0)
2642 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(status, &WERR_errors_ext, "Unknown DOS error 0x%08x"));
2644 return offset;
2647 static int
2648 svcctl_dissect_QueryServiceObjectSecurity_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2650 di->dcerpc_procedure_name="QueryServiceObjectSecurity";
2651 offset = svcctl_dissect_element_QueryServiceObjectSecurity_service_handle(tvb, offset, pinfo, tree, di, drep);
2652 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
2653 offset = svcctl_dissect_element_QueryServiceObjectSecurity_security_flags(tvb, offset, pinfo, tree, di, drep);
2654 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
2655 offset = svcctl_dissect_element_QueryServiceObjectSecurity_offered(tvb, offset, pinfo, tree, di, drep);
2656 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
2657 return offset;
2660 static int
2661 svcctl_dissect_element_SetServiceObjectSecurity_service_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2663 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_SetServiceObjectSecurity_service_handle_, NDR_POINTER_REF, "Pointer to Service Handle (policy_handle)",hf_svcctl_svcctl_SetServiceObjectSecurity_service_handle);
2665 return offset;
2668 static int
2669 svcctl_dissect_element_SetServiceObjectSecurity_service_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2671 offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_SetServiceObjectSecurity_service_handle, 0);
2673 return offset;
2676 static int
2677 svcctl_dissect_element_SetServiceObjectSecurity_security_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2679 offset = svcctl_dissect_bitmap_security_secinfo(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_SetServiceObjectSecurity_security_flags, 0);
2681 return offset;
2684 static int
2685 svcctl_dissect_element_SetServiceObjectSecurity_security_descriptor(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2687 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_SetServiceObjectSecurity_security_descriptor_, NDR_POINTER_REF, "Pointer to Security Descriptor (uint8)",hf_svcctl_svcctl_SetServiceObjectSecurity_security_descriptor);
2689 return offset;
2692 static int
2693 svcctl_dissect_element_SetServiceObjectSecurity_security_descriptor_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2695 offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_SetServiceObjectSecurity_security_descriptor__);
2697 return offset;
2700 static int
2701 svcctl_dissect_element_SetServiceObjectSecurity_security_descriptor__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2703 offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_SetServiceObjectSecurity_security_descriptor, 0);
2705 return offset;
2708 static int
2709 svcctl_dissect_element_SetServiceObjectSecurity_offered(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2711 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_SetServiceObjectSecurity_offered, 0);
2713 return offset;
2716 /* IDL: WERROR svcctl_SetServiceObjectSecurity( */
2717 /* IDL: [in] [ref] policy_handle *service_handle, */
2718 /* IDL: [in] security_secinfo security_flags, */
2719 /* IDL: [in] [ref] [size_is(offered)] uint8 *security_descriptor, */
2720 /* IDL: [in] uint32 offered */
2721 /* IDL: ); */
2723 static int
2724 svcctl_dissect_SetServiceObjectSecurity_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2726 uint32_t status;
2728 di->dcerpc_procedure_name="SetServiceObjectSecurity";
2729 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_werror, &status);
2731 if (status != 0)
2732 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(status, &WERR_errors_ext, "Unknown DOS error 0x%08x"));
2734 return offset;
2737 static int
2738 svcctl_dissect_SetServiceObjectSecurity_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2740 di->dcerpc_procedure_name="SetServiceObjectSecurity";
2741 offset = svcctl_dissect_element_SetServiceObjectSecurity_service_handle(tvb, offset, pinfo, tree, di, drep);
2742 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
2743 offset = svcctl_dissect_element_SetServiceObjectSecurity_security_flags(tvb, offset, pinfo, tree, di, drep);
2744 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
2745 offset = svcctl_dissect_element_SetServiceObjectSecurity_security_descriptor(tvb, offset, pinfo, tree, di, drep);
2746 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
2747 offset = svcctl_dissect_element_SetServiceObjectSecurity_offered(tvb, offset, pinfo, tree, di, drep);
2748 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
2749 return offset;
2752 static int
2753 svcctl_dissect_element_QueryServiceStatus_service_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2755 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_QueryServiceStatus_service_handle_, NDR_POINTER_REF, "Pointer to Service Handle (policy_handle)",hf_svcctl_svcctl_QueryServiceStatus_service_handle);
2757 return offset;
2760 static int
2761 svcctl_dissect_element_QueryServiceStatus_service_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2763 offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_QueryServiceStatus_service_handle, 0);
2765 return offset;
2768 static int
2769 svcctl_dissect_element_QueryServiceStatus_service_status(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2771 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_QueryServiceStatus_service_status_, NDR_POINTER_REF, "Pointer to Service Status (SERVICE_STATUS)",hf_svcctl_svcctl_QueryServiceStatus_service_status);
2773 return offset;
2776 static int
2777 svcctl_dissect_element_QueryServiceStatus_service_status_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2779 offset = svcctl_dissect_struct_SERVICE_STATUS(tvb,offset,pinfo,tree,di,drep,hf_svcctl_svcctl_QueryServiceStatus_service_status,0);
2781 return offset;
2784 /* IDL: WERROR svcctl_QueryServiceStatus( */
2785 /* IDL: [in] [ref] policy_handle *service_handle, */
2786 /* IDL: [out] [ref] SERVICE_STATUS *service_status */
2787 /* IDL: ); */
2789 static int
2790 svcctl_dissect_QueryServiceStatus_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2792 uint32_t status;
2794 di->dcerpc_procedure_name="QueryServiceStatus";
2795 offset = svcctl_dissect_element_QueryServiceStatus_service_status(tvb, offset, pinfo, tree, di, drep);
2796 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
2798 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_werror, &status);
2800 if (status != 0)
2801 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(status, &WERR_errors_ext, "Unknown DOS error 0x%08x"));
2803 return offset;
2806 static int
2807 svcctl_dissect_QueryServiceStatus_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2809 di->dcerpc_procedure_name="QueryServiceStatus";
2810 offset = svcctl_dissect_element_QueryServiceStatus_service_handle(tvb, offset, pinfo, tree, di, drep);
2811 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
2812 return offset;
2815 static int
2816 svcctl_dissect_element_SetServiceStatus_service_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2818 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_SetServiceStatus_service_handle_, NDR_POINTER_REF, "Pointer to Service Handle (policy_handle)",hf_svcctl_svcctl_SetServiceStatus_service_handle);
2820 return offset;
2823 static int
2824 svcctl_dissect_element_SetServiceStatus_service_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2826 offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_SetServiceStatus_service_handle, 0);
2828 return offset;
2831 static int
2832 svcctl_dissect_element_SetServiceStatus_service_status(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2834 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_SetServiceStatus_service_status_, NDR_POINTER_REF, "Pointer to Service Status (SERVICE_STATUS)",hf_svcctl_svcctl_SetServiceStatus_service_status);
2836 return offset;
2839 static int
2840 svcctl_dissect_element_SetServiceStatus_service_status_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2842 offset = svcctl_dissect_struct_SERVICE_STATUS(tvb,offset,pinfo,tree,di,drep,hf_svcctl_svcctl_SetServiceStatus_service_status,0);
2844 return offset;
2847 /* IDL: WERROR svcctl_SetServiceStatus( */
2848 /* IDL: [in] [ref] policy_handle *service_handle, */
2849 /* IDL: [in] [ref] SERVICE_STATUS *service_status */
2850 /* IDL: ); */
2852 static int
2853 svcctl_dissect_SetServiceStatus_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2855 uint32_t status;
2857 di->dcerpc_procedure_name="SetServiceStatus";
2858 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_werror, &status);
2860 if (status != 0)
2861 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(status, &WERR_errors_ext, "Unknown DOS error 0x%08x"));
2863 return offset;
2866 static int
2867 svcctl_dissect_SetServiceStatus_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2869 di->dcerpc_procedure_name="SetServiceStatus";
2870 offset = svcctl_dissect_element_SetServiceStatus_service_handle(tvb, offset, pinfo, tree, di, drep);
2871 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
2872 offset = svcctl_dissect_element_SetServiceStatus_service_status(tvb, offset, pinfo, tree, di, drep);
2873 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
2874 return offset;
2877 static int
2878 svcctl_dissect_element_UnlockServiceDatabase_lock_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2880 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_UnlockServiceDatabase_lock_handle_, NDR_POINTER_REF, "Pointer to Lock Handle (policy_handle)",hf_svcctl_svcctl_UnlockServiceDatabase_lock_handle);
2882 return offset;
2885 static int
2886 svcctl_dissect_element_UnlockServiceDatabase_lock_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2888 offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_UnlockServiceDatabase_lock_handle, 0);
2890 return offset;
2893 /* IDL: WERROR svcctl_UnlockServiceDatabase( */
2894 /* IDL: [in] [out] [ref] policy_handle *lock_handle */
2895 /* IDL: ); */
2897 static int
2898 svcctl_dissect_UnlockServiceDatabase_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2900 uint32_t status;
2902 di->dcerpc_procedure_name="UnlockServiceDatabase";
2903 offset = svcctl_dissect_element_UnlockServiceDatabase_lock_handle(tvb, offset, pinfo, tree, di, drep);
2904 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
2906 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_werror, &status);
2908 if (status != 0)
2909 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(status, &WERR_errors_ext, "Unknown DOS error 0x%08x"));
2911 return offset;
2914 static int
2915 svcctl_dissect_UnlockServiceDatabase_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2917 di->dcerpc_procedure_name="UnlockServiceDatabase";
2918 offset = svcctl_dissect_element_UnlockServiceDatabase_lock_handle(tvb, offset, pinfo, tree, di, drep);
2919 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
2920 return offset;
2923 static int
2924 svcctl_dissect_element_NotifyBootConfigStatus_machine_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2926 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_NotifyBootConfigStatus_machine_name_, NDR_POINTER_UNIQUE, "Pointer to Machine Name (uint16)",hf_svcctl_svcctl_NotifyBootConfigStatus_machine_name);
2928 return offset;
2931 static int
2932 svcctl_dissect_element_NotifyBootConfigStatus_machine_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2934 char *data;
2936 offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(uint16_t), hf_svcctl_svcctl_NotifyBootConfigStatus_machine_name, false, &data);
2937 proto_item_append_text(tree, ": %s", data);
2939 return offset;
2942 static int
2943 svcctl_dissect_element_NotifyBootConfigStatus_boot_acceptable(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2945 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_NotifyBootConfigStatus_boot_acceptable, 0);
2947 return offset;
2950 /* IDL: WERROR svcctl_NotifyBootConfigStatus( */
2951 /* IDL: [charset(UTF16)] [in] [unique(1)] uint16 *machine_name, */
2952 /* IDL: [in] uint32 boot_acceptable */
2953 /* IDL: ); */
2955 static int
2956 svcctl_dissect_NotifyBootConfigStatus_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2958 uint32_t status;
2960 di->dcerpc_procedure_name="NotifyBootConfigStatus";
2961 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_werror, &status);
2963 if (status != 0)
2964 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(status, &WERR_errors_ext, "Unknown DOS error 0x%08x"));
2966 return offset;
2969 static int
2970 svcctl_dissect_NotifyBootConfigStatus_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2972 di->dcerpc_procedure_name="NotifyBootConfigStatus";
2973 offset = svcctl_dissect_element_NotifyBootConfigStatus_machine_name(tvb, offset, pinfo, tree, di, drep);
2974 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
2975 offset = svcctl_dissect_element_NotifyBootConfigStatus_boot_acceptable(tvb, offset, pinfo, tree, di, drep);
2976 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
2977 return offset;
2980 static int
2981 svcctl_dissect_element_SCSetServiceBitsW_service_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2983 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_SCSetServiceBitsW_service_handle_, NDR_POINTER_REF, "Pointer to Service Handle (policy_handle)",hf_svcctl_svcctl_SCSetServiceBitsW_service_handle);
2985 return offset;
2988 static int
2989 svcctl_dissect_element_SCSetServiceBitsW_service_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2991 offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_SCSetServiceBitsW_service_handle, 0);
2993 return offset;
2996 static int
2997 svcctl_dissect_element_SCSetServiceBitsW_service_bits(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2999 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_SCSetServiceBitsW_service_bits, 0);
3001 return offset;
3004 static int
3005 svcctl_dissect_element_SCSetServiceBitsW_set_bits_on(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3007 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_SCSetServiceBitsW_set_bits_on, 0);
3009 return offset;
3012 static int
3013 svcctl_dissect_element_SCSetServiceBitsW_update_immediately(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3015 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_SCSetServiceBitsW_update_immediately, 0);
3017 return offset;
3020 static int
3021 svcctl_dissect_element_SCSetServiceBitsW_lpString(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3023 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_SCSetServiceBitsW_lpString_, NDR_POINTER_UNIQUE, "Pointer to LpString (uint16)",hf_svcctl_svcctl_SCSetServiceBitsW_lpString);
3025 return offset;
3028 static int
3029 svcctl_dissect_element_SCSetServiceBitsW_lpString_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3031 char *data;
3033 offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(uint16_t), hf_svcctl_svcctl_SCSetServiceBitsW_lpString, false, &data);
3034 proto_item_append_text(tree, ": %s", data);
3036 return offset;
3039 /* IDL: WERROR svcctl_SCSetServiceBitsW( */
3040 /* IDL: [in] [ref] policy_handle *service_handle, */
3041 /* IDL: [in] uint32 service_bits, */
3042 /* IDL: [in] uint32 set_bits_on, */
3043 /* IDL: [in] uint32 update_immediately, */
3044 /* IDL: [charset(UTF16)] [in] [unique(1)] uint16 *lpString */
3045 /* IDL: ); */
3047 static int
3048 svcctl_dissect_SCSetServiceBitsW_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3050 uint32_t status;
3052 di->dcerpc_procedure_name="SCSetServiceBitsW";
3053 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_werror, &status);
3055 if (status != 0)
3056 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(status, &WERR_errors_ext, "Unknown DOS error 0x%08x"));
3058 return offset;
3061 static int
3062 svcctl_dissect_SCSetServiceBitsW_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3064 di->dcerpc_procedure_name="SCSetServiceBitsW";
3065 offset = svcctl_dissect_element_SCSetServiceBitsW_service_handle(tvb, offset, pinfo, tree, di, drep);
3066 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
3067 offset = svcctl_dissect_element_SCSetServiceBitsW_service_bits(tvb, offset, pinfo, tree, di, drep);
3068 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
3069 offset = svcctl_dissect_element_SCSetServiceBitsW_set_bits_on(tvb, offset, pinfo, tree, di, drep);
3070 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
3071 offset = svcctl_dissect_element_SCSetServiceBitsW_update_immediately(tvb, offset, pinfo, tree, di, drep);
3072 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
3073 offset = svcctl_dissect_element_SCSetServiceBitsW_lpString(tvb, offset, pinfo, tree, di, drep);
3074 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
3075 return offset;
3078 static int
3079 svcctl_dissect_element_ChangeServiceConfigW_service_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3081 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_ChangeServiceConfigW_service_handle_, NDR_POINTER_REF, "Pointer to Service Handle (policy_handle)",hf_svcctl_svcctl_ChangeServiceConfigW_service_handle);
3083 return offset;
3086 static int
3087 svcctl_dissect_element_ChangeServiceConfigW_service_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3089 offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_ChangeServiceConfigW_service_handle, 0);
3091 return offset;
3094 static int
3095 svcctl_dissect_element_ChangeServiceConfigW_service_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3097 offset = svcctl_dissect_enum_ServiceType(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_ChangeServiceConfigW_service_type, 0);
3099 return offset;
3102 static int
3103 svcctl_dissect_element_ChangeServiceConfigW_start_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3105 offset = svcctl_dissect_enum_StartType(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_ChangeServiceConfigW_start_type, 0);
3107 return offset;
3110 static int
3111 svcctl_dissect_element_ChangeServiceConfigW_error_control(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3113 offset = svcctl_dissect_enum_ErrorControl(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_ChangeServiceConfigW_error_control, 0);
3115 return offset;
3118 static int
3119 svcctl_dissect_element_ChangeServiceConfigW_binary_path(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3121 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_ChangeServiceConfigW_binary_path_, NDR_POINTER_UNIQUE, "Pointer to Binary Path (uint16)",hf_svcctl_svcctl_ChangeServiceConfigW_binary_path);
3123 return offset;
3126 static int
3127 svcctl_dissect_element_ChangeServiceConfigW_binary_path_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3129 char *data;
3131 offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(uint16_t), hf_svcctl_svcctl_ChangeServiceConfigW_binary_path, false, &data);
3132 proto_item_append_text(tree, ": %s", data);
3134 return offset;
3137 static int
3138 svcctl_dissect_element_ChangeServiceConfigW_load_order_group(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3140 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_ChangeServiceConfigW_load_order_group_, NDR_POINTER_UNIQUE, "Pointer to Load Order Group (uint16)",hf_svcctl_svcctl_ChangeServiceConfigW_load_order_group);
3142 return offset;
3145 static int
3146 svcctl_dissect_element_ChangeServiceConfigW_load_order_group_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3148 char *data;
3150 offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(uint16_t), hf_svcctl_svcctl_ChangeServiceConfigW_load_order_group, false, &data);
3151 proto_item_append_text(tree, ": %s", data);
3153 return offset;
3156 static int
3157 svcctl_dissect_element_ChangeServiceConfigW_tag_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3159 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_ChangeServiceConfigW_tag_id_, NDR_POINTER_UNIQUE, "Pointer to Tag Id (uint32)",hf_svcctl_svcctl_ChangeServiceConfigW_tag_id);
3161 return offset;
3164 static int
3165 svcctl_dissect_element_ChangeServiceConfigW_tag_id_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3167 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_ChangeServiceConfigW_tag_id, 0);
3169 return offset;
3172 static int
3173 svcctl_dissect_element_ChangeServiceConfigW_dependencies(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3175 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_ChangeServiceConfigW_dependencies_, NDR_POINTER_UNIQUE, "Pointer to Dependencies (uint16)",hf_svcctl_svcctl_ChangeServiceConfigW_dependencies);
3177 return offset;
3180 static int
3181 svcctl_dissect_element_ChangeServiceConfigW_dependencies_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3183 char *data;
3185 offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(uint16_t), hf_svcctl_svcctl_ChangeServiceConfigW_dependencies, false, &data);
3186 proto_item_append_text(tree, ": %s", data);
3188 return offset;
3191 static int
3192 svcctl_dissect_element_ChangeServiceConfigW_dwDependSize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3194 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_ChangeServiceConfigW_dwDependSize, 0);
3196 return offset;
3199 static int
3200 svcctl_dissect_element_ChangeServiceConfigW_service_start_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3202 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_ChangeServiceConfigW_service_start_name_, NDR_POINTER_UNIQUE, "Pointer to Service Start Name (uint16)",hf_svcctl_svcctl_ChangeServiceConfigW_service_start_name);
3204 return offset;
3207 static int
3208 svcctl_dissect_element_ChangeServiceConfigW_service_start_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3210 char *data;
3212 offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(uint16_t), hf_svcctl_svcctl_ChangeServiceConfigW_service_start_name, false, &data);
3213 proto_item_append_text(tree, ": %s", data);
3215 return offset;
3218 static int
3219 svcctl_dissect_element_ChangeServiceConfigW_password(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3221 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_ChangeServiceConfigW_password_, NDR_POINTER_UNIQUE, "Pointer to Password (uint16)",hf_svcctl_svcctl_ChangeServiceConfigW_password);
3223 return offset;
3226 static int
3227 svcctl_dissect_element_ChangeServiceConfigW_password_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3229 char *data;
3231 offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(uint16_t), hf_svcctl_svcctl_ChangeServiceConfigW_password, false, &data);
3232 proto_item_append_text(tree, ": %s", data);
3234 return offset;
3237 static int
3238 svcctl_dissect_element_ChangeServiceConfigW_dwPwSize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3240 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_ChangeServiceConfigW_dwPwSize, 0);
3242 return offset;
3245 static int
3246 svcctl_dissect_element_ChangeServiceConfigW_display_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3248 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_ChangeServiceConfigW_display_name_, NDR_POINTER_UNIQUE, "Pointer to Display Name (uint16)",hf_svcctl_svcctl_ChangeServiceConfigW_display_name);
3250 return offset;
3253 static int
3254 svcctl_dissect_element_ChangeServiceConfigW_display_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3256 char *data;
3258 offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(uint16_t), hf_svcctl_svcctl_ChangeServiceConfigW_display_name, false, &data);
3259 proto_item_append_text(tree, ": %s", data);
3261 return offset;
3264 /* IDL: WERROR svcctl_ChangeServiceConfigW( */
3265 /* IDL: [in] [ref] policy_handle *service_handle, */
3266 /* IDL: [in] svcctl_ServiceType service_type, */
3267 /* IDL: [in] svcctl_StartType start_type, */
3268 /* IDL: [in] svcctl_ErrorControl error_control, */
3269 /* IDL: [charset(UTF16)] [in] [unique(1)] uint16 *binary_path, */
3270 /* IDL: [charset(UTF16)] [in] [unique(1)] uint16 *load_order_group, */
3271 /* IDL: [in] [out] [unique(1)] uint32 *tag_id, */
3272 /* IDL: [charset(UTF16)] [in] [size_is(dwDependSize)] [unique(1)] uint16 *dependencies, */
3273 /* IDL: [in] [range(0,SC_MAX_DEPEND_SIZE)] uint32 dwDependSize, */
3274 /* IDL: [charset(UTF16)] [in] [range(0,SC_MAX_ACCOUNT_NAME_LENGTH)] [unique(1)] uint16 *service_start_name, */
3275 /* IDL: [charset(UTF16)] [in] [size_is(dwPwSize)] [unique(1)] uint16 *password, */
3276 /* IDL: [in] [range(0,SC_MAX_PWD_SIZE)] uint32 dwPwSize, */
3277 /* IDL: [charset(UTF16)] [in] [range(0,SC_MAX_NAME_LENGTH)] [unique(1)] uint16 *display_name */
3278 /* IDL: ); */
3280 static int
3281 svcctl_dissect_ChangeServiceConfigW_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3283 uint32_t status;
3285 di->dcerpc_procedure_name="ChangeServiceConfigW";
3286 offset = svcctl_dissect_element_ChangeServiceConfigW_tag_id(tvb, offset, pinfo, tree, di, drep);
3287 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
3289 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_werror, &status);
3291 if (status != 0)
3292 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(status, &WERR_errors_ext, "Unknown DOS error 0x%08x"));
3294 return offset;
3297 static int
3298 svcctl_dissect_ChangeServiceConfigW_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3300 di->dcerpc_procedure_name="ChangeServiceConfigW";
3301 offset = svcctl_dissect_element_ChangeServiceConfigW_service_handle(tvb, offset, pinfo, tree, di, drep);
3302 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
3303 offset = svcctl_dissect_element_ChangeServiceConfigW_service_type(tvb, offset, pinfo, tree, di, drep);
3304 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
3305 offset = svcctl_dissect_element_ChangeServiceConfigW_start_type(tvb, offset, pinfo, tree, di, drep);
3306 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
3307 offset = svcctl_dissect_element_ChangeServiceConfigW_error_control(tvb, offset, pinfo, tree, di, drep);
3308 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
3309 offset = svcctl_dissect_element_ChangeServiceConfigW_binary_path(tvb, offset, pinfo, tree, di, drep);
3310 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
3311 offset = svcctl_dissect_element_ChangeServiceConfigW_load_order_group(tvb, offset, pinfo, tree, di, drep);
3312 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
3313 offset = svcctl_dissect_element_ChangeServiceConfigW_tag_id(tvb, offset, pinfo, tree, di, drep);
3314 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
3315 offset = svcctl_dissect_element_ChangeServiceConfigW_dependencies(tvb, offset, pinfo, tree, di, drep);
3316 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
3317 offset = svcctl_dissect_element_ChangeServiceConfigW_dwDependSize(tvb, offset, pinfo, tree, di, drep);
3318 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
3319 offset = svcctl_dissect_element_ChangeServiceConfigW_service_start_name(tvb, offset, pinfo, tree, di, drep);
3320 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
3321 offset = svcctl_dissect_element_ChangeServiceConfigW_password(tvb, offset, pinfo, tree, di, drep);
3322 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
3323 offset = svcctl_dissect_element_ChangeServiceConfigW_dwPwSize(tvb, offset, pinfo, tree, di, drep);
3324 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
3325 offset = svcctl_dissect_element_ChangeServiceConfigW_display_name(tvb, offset, pinfo, tree, di, drep);
3326 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
3327 return offset;
3330 static int
3331 svcctl_dissect_element_CreateServiceW_scm_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3333 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_CreateServiceW_scm_handle_, NDR_POINTER_REF, "Pointer to Scm Handle (policy_handle)",hf_svcctl_svcctl_CreateServiceW_scm_handle);
3335 return offset;
3338 static int
3339 svcctl_dissect_element_CreateServiceW_scm_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3341 offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_CreateServiceW_scm_handle, 0);
3343 return offset;
3346 static int
3347 svcctl_dissect_element_CreateServiceW_ServiceName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3349 char *data;
3351 offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(uint16_t), hf_svcctl_svcctl_CreateServiceW_ServiceName, false, &data);
3352 proto_item_append_text(tree, ": %s", data);
3354 return offset;
3357 static int
3358 svcctl_dissect_element_CreateServiceW_DisplayName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3360 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_CreateServiceW_DisplayName_, NDR_POINTER_UNIQUE, "Pointer to DisplayName (uint16)",hf_svcctl_svcctl_CreateServiceW_DisplayName);
3362 return offset;
3365 static int
3366 svcctl_dissect_element_CreateServiceW_DisplayName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3368 char *data;
3370 offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(uint16_t), hf_svcctl_svcctl_CreateServiceW_DisplayName, false, &data);
3371 proto_item_append_text(tree, ": %s", data);
3373 return offset;
3376 static int
3377 svcctl_dissect_element_CreateServiceW_desired_access(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3379 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_CreateServiceW_desired_access, 0);
3381 return offset;
3384 static int
3385 svcctl_dissect_element_CreateServiceW_service_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3387 offset = svcctl_dissect_enum_ServiceType(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_CreateServiceW_service_type, 0);
3389 return offset;
3392 static int
3393 svcctl_dissect_element_CreateServiceW_start_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3395 offset = svcctl_dissect_enum_StartType(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_CreateServiceW_start_type, 0);
3397 return offset;
3400 static int
3401 svcctl_dissect_element_CreateServiceW_error_control(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3403 offset = svcctl_dissect_enum_ErrorControl(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_CreateServiceW_error_control, 0);
3405 return offset;
3408 static int
3409 svcctl_dissect_element_CreateServiceW_binary_path(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3411 char *data;
3413 offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(uint16_t), hf_svcctl_svcctl_CreateServiceW_binary_path, false, &data);
3414 proto_item_append_text(tree, ": %s", data);
3416 return offset;
3419 static int
3420 svcctl_dissect_element_CreateServiceW_LoadOrderGroup(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3422 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_CreateServiceW_LoadOrderGroup_, NDR_POINTER_UNIQUE, "Pointer to LoadOrderGroup (uint16)",hf_svcctl_svcctl_CreateServiceW_LoadOrderGroup);
3424 return offset;
3427 static int
3428 svcctl_dissect_element_CreateServiceW_LoadOrderGroup_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3430 char *data;
3432 offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(uint16_t), hf_svcctl_svcctl_CreateServiceW_LoadOrderGroup, false, &data);
3433 proto_item_append_text(tree, ": %s", data);
3435 return offset;
3438 static int
3439 svcctl_dissect_element_CreateServiceW_tag_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3441 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_CreateServiceW_tag_id_, NDR_POINTER_UNIQUE, "Pointer to Tag Id (uint32)",hf_svcctl_svcctl_CreateServiceW_tag_id);
3443 return offset;
3446 static int
3447 svcctl_dissect_element_CreateServiceW_tag_id_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3449 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_CreateServiceW_tag_id, 0);
3451 return offset;
3454 static int
3455 svcctl_dissect_element_CreateServiceW_dependencies(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3457 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_CreateServiceW_dependencies_, NDR_POINTER_UNIQUE, "Pointer to Dependencies (uint8)",hf_svcctl_svcctl_CreateServiceW_dependencies);
3459 return offset;
3462 static int
3463 svcctl_dissect_element_CreateServiceW_dependencies_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3465 offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_CreateServiceW_dependencies__);
3467 return offset;
3470 static int
3471 svcctl_dissect_element_CreateServiceW_dependencies__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3473 offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_CreateServiceW_dependencies, 0);
3475 return offset;
3478 static int
3479 svcctl_dissect_element_CreateServiceW_dependencies_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3481 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_CreateServiceW_dependencies_size, 0);
3483 return offset;
3486 static int
3487 svcctl_dissect_element_CreateServiceW_service_start_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3489 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_CreateServiceW_service_start_name_, NDR_POINTER_UNIQUE, "Pointer to Service Start Name (uint16)",hf_svcctl_svcctl_CreateServiceW_service_start_name);
3491 return offset;
3494 static int
3495 svcctl_dissect_element_CreateServiceW_service_start_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3497 char *data;
3499 offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(uint16_t), hf_svcctl_svcctl_CreateServiceW_service_start_name, false, &data);
3500 proto_item_append_text(tree, ": %s", data);
3502 return offset;
3505 static int
3506 svcctl_dissect_element_CreateServiceW_password(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3508 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_CreateServiceW_password_, NDR_POINTER_UNIQUE, "Pointer to Password (uint8)",hf_svcctl_svcctl_CreateServiceW_password);
3510 return offset;
3513 static int
3514 svcctl_dissect_element_CreateServiceW_password_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3516 offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_CreateServiceW_password__);
3518 return offset;
3521 static int
3522 svcctl_dissect_element_CreateServiceW_password__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3524 offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_CreateServiceW_password, 0);
3526 return offset;
3529 static int
3530 svcctl_dissect_element_CreateServiceW_password_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3532 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_CreateServiceW_password_size, 0);
3534 return offset;
3537 static int
3538 svcctl_dissect_element_CreateServiceW_service_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3540 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_CreateServiceW_service_handle_, NDR_POINTER_REF, "Pointer to Service Handle (policy_handle)",hf_svcctl_svcctl_CreateServiceW_service_handle);
3542 return offset;
3545 static int
3546 svcctl_dissect_element_CreateServiceW_service_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3548 offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_CreateServiceW_service_handle, 0);
3550 return offset;
3553 /* IDL: WERROR svcctl_CreateServiceW( */
3554 /* IDL: [in] [ref] policy_handle *scm_handle, */
3555 /* IDL: [charset(UTF16)] [in] uint16 ServiceName[*], */
3556 /* IDL: [charset(UTF16)] [in] [unique(1)] uint16 *DisplayName, */
3557 /* IDL: [in] uint32 desired_access, */
3558 /* IDL: [in] svcctl_ServiceType service_type, */
3559 /* IDL: [in] svcctl_StartType start_type, */
3560 /* IDL: [in] svcctl_ErrorControl error_control, */
3561 /* IDL: [charset(UTF16)] [in] uint16 binary_path[*], */
3562 /* IDL: [charset(UTF16)] [in] [unique(1)] uint16 *LoadOrderGroup, */
3563 /* IDL: [in] [out] [unique(1)] uint32 *tag_id, */
3564 /* IDL: [in] [size_is(dependencies_size)] [unique(1)] uint8 *dependencies, */
3565 /* IDL: [in] uint32 dependencies_size, */
3566 /* IDL: [charset(UTF16)] [in] [unique(1)] uint16 *service_start_name, */
3567 /* IDL: [in] [size_is(password_size)] [unique(1)] uint8 *password, */
3568 /* IDL: [in] uint32 password_size, */
3569 /* IDL: [out] [ref] policy_handle *service_handle */
3570 /* IDL: ); */
3572 static int
3573 svcctl_dissect_CreateServiceW_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3575 uint32_t status;
3577 di->dcerpc_procedure_name="CreateServiceW";
3578 offset = svcctl_dissect_element_CreateServiceW_tag_id(tvb, offset, pinfo, tree, di, drep);
3579 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
3581 offset = svcctl_dissect_element_CreateServiceW_service_handle(tvb, offset, pinfo, tree, di, drep);
3582 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
3584 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_werror, &status);
3586 if (status != 0)
3587 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(status, &WERR_errors_ext, "Unknown DOS error 0x%08x"));
3589 return offset;
3592 static int
3593 svcctl_dissect_CreateServiceW_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3595 di->dcerpc_procedure_name="CreateServiceW";
3596 offset = svcctl_dissect_element_CreateServiceW_scm_handle(tvb, offset, pinfo, tree, di, drep);
3597 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
3598 offset = svcctl_dissect_element_CreateServiceW_ServiceName(tvb, offset, pinfo, tree, di, drep);
3599 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
3600 offset = svcctl_dissect_element_CreateServiceW_DisplayName(tvb, offset, pinfo, tree, di, drep);
3601 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
3602 offset = svcctl_dissect_element_CreateServiceW_desired_access(tvb, offset, pinfo, tree, di, drep);
3603 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
3604 offset = svcctl_dissect_element_CreateServiceW_service_type(tvb, offset, pinfo, tree, di, drep);
3605 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
3606 offset = svcctl_dissect_element_CreateServiceW_start_type(tvb, offset, pinfo, tree, di, drep);
3607 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
3608 offset = svcctl_dissect_element_CreateServiceW_error_control(tvb, offset, pinfo, tree, di, drep);
3609 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
3610 offset = svcctl_dissect_element_CreateServiceW_binary_path(tvb, offset, pinfo, tree, di, drep);
3611 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
3612 offset = svcctl_dissect_element_CreateServiceW_LoadOrderGroup(tvb, offset, pinfo, tree, di, drep);
3613 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
3614 offset = svcctl_dissect_element_CreateServiceW_tag_id(tvb, offset, pinfo, tree, di, drep);
3615 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
3616 offset = svcctl_dissect_element_CreateServiceW_dependencies(tvb, offset, pinfo, tree, di, drep);
3617 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
3618 offset = svcctl_dissect_element_CreateServiceW_dependencies_size(tvb, offset, pinfo, tree, di, drep);
3619 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
3620 offset = svcctl_dissect_element_CreateServiceW_service_start_name(tvb, offset, pinfo, tree, di, drep);
3621 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
3622 offset = svcctl_dissect_element_CreateServiceW_password(tvb, offset, pinfo, tree, di, drep);
3623 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
3624 offset = svcctl_dissect_element_CreateServiceW_password_size(tvb, offset, pinfo, tree, di, drep);
3625 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
3626 return offset;
3629 static int
3630 svcctl_dissect_element_EnumDependentServicesW_service_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3632 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_EnumDependentServicesW_service_handle_, NDR_POINTER_REF, "Pointer to Service Handle (policy_handle)",hf_svcctl_svcctl_EnumDependentServicesW_service_handle);
3634 return offset;
3637 static int
3638 svcctl_dissect_element_EnumDependentServicesW_service_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3640 offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_EnumDependentServicesW_service_handle, 0);
3642 return offset;
3645 static int
3646 svcctl_dissect_element_EnumDependentServicesW_service_state(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3648 offset = svcctl_dissect_enum_ServiceState(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_EnumDependentServicesW_service_state, 0);
3650 return offset;
3653 static int
3654 svcctl_dissect_element_EnumDependentServicesW_service_status(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3656 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_EnumDependentServicesW_service_status_, NDR_POINTER_REF, "Pointer to Service Status (ENUM_SERVICE_STATUSW)",hf_svcctl_svcctl_EnumDependentServicesW_service_status);
3658 return offset;
3661 static int
3662 svcctl_dissect_element_EnumDependentServicesW_service_status_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3664 offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_EnumDependentServicesW_service_status__);
3666 return offset;
3669 static int
3670 svcctl_dissect_element_EnumDependentServicesW_service_status__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3672 offset = svcctl_dissect_struct_ENUM_SERVICE_STATUSW(tvb,offset,pinfo,tree,di,drep,hf_svcctl_svcctl_EnumDependentServicesW_service_status,0);
3674 return offset;
3677 static int
3678 svcctl_dissect_element_EnumDependentServicesW_offered(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3680 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_EnumDependentServicesW_offered, 0);
3682 return offset;
3685 static int
3686 svcctl_dissect_element_EnumDependentServicesW_bytesneeded(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3688 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_EnumDependentServicesW_bytesneeded_, NDR_POINTER_REF, "Pointer to Bytesneeded (uint32)",hf_svcctl_svcctl_EnumDependentServicesW_bytesneeded);
3690 return offset;
3693 static int
3694 svcctl_dissect_element_EnumDependentServicesW_bytesneeded_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3696 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_EnumDependentServicesW_bytesneeded, 0);
3698 return offset;
3701 static int
3702 svcctl_dissect_element_EnumDependentServicesW_services_returned(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3704 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_EnumDependentServicesW_services_returned_, NDR_POINTER_REF, "Pointer to Services Returned (uint32)",hf_svcctl_svcctl_EnumDependentServicesW_services_returned);
3706 return offset;
3709 static int
3710 svcctl_dissect_element_EnumDependentServicesW_services_returned_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3712 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_EnumDependentServicesW_services_returned, 0);
3714 return offset;
3717 /* IDL: WERROR svcctl_EnumDependentServicesW( */
3718 /* IDL: [in] [ref] policy_handle *service_handle, */
3719 /* IDL: [in] svcctl_ServiceState service_state, */
3720 /* IDL: [out] [ref] [size_is(offered)] ENUM_SERVICE_STATUSW *service_status, */
3721 /* IDL: [in] [range(0,0x40000)] uint32 offered, */
3722 /* IDL: [out] [range(0,0x40000)] [ref] uint32 *bytesneeded, */
3723 /* IDL: [out] [range(0,0x40000)] [ref] uint32 *services_returned */
3724 /* IDL: ); */
3726 static int
3727 svcctl_dissect_EnumDependentServicesW_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3729 uint32_t status;
3731 di->dcerpc_procedure_name="EnumDependentServicesW";
3732 offset = svcctl_dissect_element_EnumDependentServicesW_service_status(tvb, offset, pinfo, tree, di, drep);
3733 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
3735 offset = svcctl_dissect_element_EnumDependentServicesW_bytesneeded(tvb, offset, pinfo, tree, di, drep);
3736 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
3738 offset = svcctl_dissect_element_EnumDependentServicesW_services_returned(tvb, offset, pinfo, tree, di, drep);
3739 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
3741 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_werror, &status);
3743 if (status != 0)
3744 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(status, &WERR_errors_ext, "Unknown DOS error 0x%08x"));
3746 return offset;
3749 static int
3750 svcctl_dissect_EnumDependentServicesW_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3752 di->dcerpc_procedure_name="EnumDependentServicesW";
3753 offset = svcctl_dissect_element_EnumDependentServicesW_service_handle(tvb, offset, pinfo, tree, di, drep);
3754 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
3755 offset = svcctl_dissect_element_EnumDependentServicesW_service_state(tvb, offset, pinfo, tree, di, drep);
3756 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
3757 offset = svcctl_dissect_element_EnumDependentServicesW_offered(tvb, offset, pinfo, tree, di, drep);
3758 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
3759 return offset;
3762 static int
3763 svcctl_dissect_element_EnumServicesStatusW_scm_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3765 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_EnumServicesStatusW_scm_handle_, NDR_POINTER_REF, "Pointer to Scm Handle (policy_handle)",hf_svcctl_svcctl_EnumServicesStatusW_scm_handle);
3767 return offset;
3770 static int
3771 svcctl_dissect_element_EnumServicesStatusW_scm_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3773 offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_EnumServicesStatusW_scm_handle, 0);
3775 return offset;
3778 static int
3779 svcctl_dissect_element_EnumServicesStatusW_service_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3781 offset = svcctl_dissect_enum_ServiceType(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_EnumServicesStatusW_service_type, 0);
3783 return offset;
3786 static int
3787 svcctl_dissect_element_EnumServicesStatusW_service_state(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3789 offset = svcctl_dissect_enum_ServiceState(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_EnumServicesStatusW_service_state, 0);
3791 return offset;
3794 static int
3795 svcctl_dissect_element_EnumServicesStatusW_offered(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3797 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_EnumServicesStatusW_offered, 0);
3799 return offset;
3802 static int
3803 svcctl_dissect_element_EnumServicesStatusW_resume_index(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3805 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_EnumServicesStatusW_resume_index_, NDR_POINTER_UNIQUE, "Pointer to Resume Index (uint32)",hf_svcctl_svcctl_EnumServicesStatusW_resume_index);
3807 return offset;
3810 static int
3811 svcctl_dissect_element_EnumServicesStatusW_resume_index_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3813 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_EnumServicesStatusW_resume_index, 0);
3815 return offset;
3818 /* IDL: WERROR svcctl_EnumServicesStatusW( */
3819 /* IDL: [in] [ref] policy_handle *scm_handle, */
3820 /* IDL: [in] svcctl_ServiceType service_type, */
3821 /* IDL: [in] svcctl_ServiceState service_state, */
3822 /* IDL: [out] [ref] [size_is(offered)] uint8 *services, */
3823 /* IDL: [in] [range(0,0x40000)] uint32 offered, */
3824 /* IDL: [out] [range(0,0x40000)] [ref] uint32 *bytes_needed, */
3825 /* IDL: [out] [range(0,0x40000)] [ref] uint32 *services_returned, */
3826 /* IDL: [in] [out] [unique(1)] uint32 *resume_index */
3827 /* IDL: ); */
3829 static int
3830 svcctl_dissect_EnumServicesStatusW_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3832 di->dcerpc_procedure_name="EnumServicesStatusW";
3833 offset = svcctl_dissect_element_EnumServicesStatusW_scm_handle(tvb, offset, pinfo, tree, di, drep);
3834 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
3835 offset = svcctl_dissect_element_EnumServicesStatusW_service_type(tvb, offset, pinfo, tree, di, drep);
3836 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
3837 offset = svcctl_dissect_element_EnumServicesStatusW_service_state(tvb, offset, pinfo, tree, di, drep);
3838 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
3839 offset = svcctl_dissect_element_EnumServicesStatusW_offered(tvb, offset, pinfo, tree, di, drep);
3840 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
3841 offset = svcctl_dissect_element_EnumServicesStatusW_resume_index(tvb, offset, pinfo, tree, di, drep);
3842 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
3843 return offset;
3846 static int
3847 svcctl_dissect_element_OpenSCManagerW_MachineName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3849 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_OpenSCManagerW_MachineName_, NDR_POINTER_UNIQUE, "Pointer to MachineName (uint16)",hf_svcctl_svcctl_OpenSCManagerW_MachineName);
3851 return offset;
3854 static int
3855 svcctl_dissect_element_OpenSCManagerW_MachineName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3857 char *data;
3859 offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(uint16_t), hf_svcctl_svcctl_OpenSCManagerW_MachineName, false, &data);
3860 proto_item_append_text(tree, ": %s", data);
3862 return offset;
3865 static int
3866 svcctl_dissect_element_OpenSCManagerW_DatabaseName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3868 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_OpenSCManagerW_DatabaseName_, NDR_POINTER_UNIQUE, "Pointer to DatabaseName (uint16)",hf_svcctl_svcctl_OpenSCManagerW_DatabaseName);
3870 return offset;
3873 static int
3874 svcctl_dissect_element_OpenSCManagerW_DatabaseName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3876 char *data;
3878 offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(uint16_t), hf_svcctl_svcctl_OpenSCManagerW_DatabaseName, false, &data);
3879 proto_item_append_text(tree, ": %s", data);
3881 return offset;
3884 static int
3885 svcctl_dissect_element_OpenSCManagerW_access_mask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3887 offset = svcctl_dissect_bitmap_MgrAccessMask(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_OpenSCManagerW_access_mask, 0);
3889 return offset;
3892 static int
3893 svcctl_dissect_element_OpenSCManagerW_scm_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3895 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_OpenSCManagerW_scm_handle_, NDR_POINTER_REF, "Pointer to Scm Handle (policy_handle)",hf_svcctl_svcctl_OpenSCManagerW_scm_handle);
3897 return offset;
3900 static int
3901 svcctl_dissect_element_OpenSCManagerW_scm_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3903 offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_OpenSCManagerW_scm_handle, 0);
3905 return offset;
3908 /* IDL: WERROR svcctl_OpenSCManagerW( */
3909 /* IDL: [charset(UTF16)] [in] [unique(1)] uint16 *MachineName, */
3910 /* IDL: [charset(UTF16)] [in] [unique(1)] uint16 *DatabaseName, */
3911 /* IDL: [in] svcctl_MgrAccessMask access_mask, */
3912 /* IDL: [out] [ref] policy_handle *scm_handle */
3913 /* IDL: ); */
3915 static int
3916 svcctl_dissect_OpenSCManagerW_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3918 uint32_t status;
3920 di->dcerpc_procedure_name="OpenSCManagerW";
3921 offset = svcctl_dissect_element_OpenSCManagerW_scm_handle(tvb, offset, pinfo, tree, di, drep);
3922 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
3924 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_werror, &status);
3926 if (status != 0)
3927 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(status, &WERR_errors_ext, "Unknown DOS error 0x%08x"));
3929 return offset;
3932 static int
3933 svcctl_dissect_OpenSCManagerW_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3935 di->dcerpc_procedure_name="OpenSCManagerW";
3936 offset = svcctl_dissect_element_OpenSCManagerW_MachineName(tvb, offset, pinfo, tree, di, drep);
3937 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
3938 offset = svcctl_dissect_element_OpenSCManagerW_DatabaseName(tvb, offset, pinfo, tree, di, drep);
3939 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
3940 offset = svcctl_dissect_element_OpenSCManagerW_access_mask(tvb, offset, pinfo, tree, di, drep);
3941 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
3942 return offset;
3945 static int
3946 svcctl_dissect_element_OpenServiceW_scm_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3948 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_OpenServiceW_scm_handle_, NDR_POINTER_REF, "Pointer to Scm Handle (policy_handle)",hf_svcctl_svcctl_OpenServiceW_scm_handle);
3950 return offset;
3953 static int
3954 svcctl_dissect_element_OpenServiceW_scm_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3956 offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_OpenServiceW_scm_handle, 0);
3958 return offset;
3961 static int
3962 svcctl_dissect_element_OpenServiceW_ServiceName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3964 char *data;
3966 offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(uint16_t), hf_svcctl_svcctl_OpenServiceW_ServiceName, false, &data);
3967 proto_item_append_text(tree, ": %s", data);
3969 return offset;
3972 static int
3973 svcctl_dissect_element_OpenServiceW_access_mask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3975 offset = svcctl_dissect_bitmap_ServiceAccessMask(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_OpenServiceW_access_mask, 0);
3977 return offset;
3980 static int
3981 svcctl_dissect_element_OpenServiceW_service_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3983 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_OpenServiceW_service_handle_, NDR_POINTER_REF, "Pointer to Service Handle (policy_handle)",hf_svcctl_svcctl_OpenServiceW_service_handle);
3985 return offset;
3988 static int
3989 svcctl_dissect_element_OpenServiceW_service_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3991 offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_OpenServiceW_service_handle, 0);
3993 return offset;
3996 /* IDL: WERROR svcctl_OpenServiceW( */
3997 /* IDL: [in] [ref] policy_handle *scm_handle, */
3998 /* IDL: [charset(UTF16)] [in] uint16 ServiceName[*], */
3999 /* IDL: [in] svcctl_ServiceAccessMask access_mask, */
4000 /* IDL: [out] [ref] policy_handle *service_handle */
4001 /* IDL: ); */
4003 static int
4004 svcctl_dissect_OpenServiceW_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4006 uint32_t status;
4008 di->dcerpc_procedure_name="OpenServiceW";
4009 offset = svcctl_dissect_element_OpenServiceW_service_handle(tvb, offset, pinfo, tree, di, drep);
4010 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
4012 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_werror, &status);
4014 if (status != 0)
4015 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(status, &WERR_errors_ext, "Unknown DOS error 0x%08x"));
4017 return offset;
4020 static int
4021 svcctl_dissect_OpenServiceW_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4023 di->dcerpc_procedure_name="OpenServiceW";
4024 offset = svcctl_dissect_element_OpenServiceW_scm_handle(tvb, offset, pinfo, tree, di, drep);
4025 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
4026 offset = svcctl_dissect_element_OpenServiceW_ServiceName(tvb, offset, pinfo, tree, di, drep);
4027 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
4028 offset = svcctl_dissect_element_OpenServiceW_access_mask(tvb, offset, pinfo, tree, di, drep);
4029 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
4030 return offset;
4033 static int
4034 svcctl_dissect_element_QueryServiceConfigW_service_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4036 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_QueryServiceConfigW_service_handle_, NDR_POINTER_REF, "Pointer to Service Handle (policy_handle)",hf_svcctl_svcctl_QueryServiceConfigW_service_handle);
4038 return offset;
4041 static int
4042 svcctl_dissect_element_QueryServiceConfigW_service_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4044 offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_QueryServiceConfigW_service_handle, 0);
4046 return offset;
4049 static int
4050 svcctl_dissect_element_QueryServiceConfigW_service_config(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4052 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_QueryServiceConfigW_service_config_, NDR_POINTER_REF, "Pointer to Service Config (QUERY_SERVICE_CONFIG)",hf_svcctl_svcctl_QueryServiceConfigW_service_config);
4054 return offset;
4057 static int
4058 svcctl_dissect_element_QueryServiceConfigW_service_config_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4060 offset = svcctl_dissect_struct_QUERY_SERVICE_CONFIG(tvb,offset,pinfo,tree,di,drep,hf_svcctl_svcctl_QueryServiceConfigW_service_config,0);
4062 return offset;
4065 static int
4066 svcctl_dissect_element_QueryServiceConfigW_offered(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4068 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_QueryServiceConfigW_offered, 0);
4070 return offset;
4073 static int
4074 svcctl_dissect_element_QueryServiceConfigW_needed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4076 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_QueryServiceConfigW_needed_, NDR_POINTER_REF, "Pointer to Needed (uint32)",hf_svcctl_svcctl_QueryServiceConfigW_needed);
4078 return offset;
4081 static int
4082 svcctl_dissect_element_QueryServiceConfigW_needed_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4084 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_QueryServiceConfigW_needed, 0);
4086 return offset;
4089 /* IDL: WERROR svcctl_QueryServiceConfigW( */
4090 /* IDL: [in] [ref] policy_handle *service_handle, */
4091 /* IDL: [out] [ref] QUERY_SERVICE_CONFIG *service_config, */
4092 /* IDL: [in] [range(0,8192)] uint32 offered, */
4093 /* IDL: [out] [range(0,8192)] [ref] uint32 *needed */
4094 /* IDL: ); */
4096 static int
4097 svcctl_dissect_QueryServiceConfigW_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4099 uint32_t status;
4101 di->dcerpc_procedure_name="QueryServiceConfigW";
4102 offset = svcctl_dissect_element_QueryServiceConfigW_service_config(tvb, offset, pinfo, tree, di, drep);
4103 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
4105 offset = svcctl_dissect_element_QueryServiceConfigW_needed(tvb, offset, pinfo, tree, di, drep);
4106 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
4108 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_werror, &status);
4110 if (status != 0)
4111 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(status, &WERR_errors_ext, "Unknown DOS error 0x%08x"));
4113 return offset;
4116 static int
4117 svcctl_dissect_QueryServiceConfigW_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4119 di->dcerpc_procedure_name="QueryServiceConfigW";
4120 offset = svcctl_dissect_element_QueryServiceConfigW_service_handle(tvb, offset, pinfo, tree, di, drep);
4121 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
4122 offset = svcctl_dissect_element_QueryServiceConfigW_offered(tvb, offset, pinfo, tree, di, drep);
4123 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
4124 return offset;
4127 static int
4128 svcctl_dissect_element_QueryServiceLockStatusW_scm_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4130 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_QueryServiceLockStatusW_scm_handle_, NDR_POINTER_REF, "Pointer to Scm Handle (policy_handle)",hf_svcctl_svcctl_QueryServiceLockStatusW_scm_handle);
4132 return offset;
4135 static int
4136 svcctl_dissect_element_QueryServiceLockStatusW_scm_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4138 offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_QueryServiceLockStatusW_scm_handle, 0);
4140 return offset;
4143 static int
4144 svcctl_dissect_element_QueryServiceLockStatusW_lock_status(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4146 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_QueryServiceLockStatusW_lock_status_, NDR_POINTER_REF, "Pointer to Lock Status (SERVICE_LOCK_STATUS)",hf_svcctl_svcctl_QueryServiceLockStatusW_lock_status);
4148 return offset;
4151 static int
4152 svcctl_dissect_element_QueryServiceLockStatusW_lock_status_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4154 offset = svcctl_dissect_struct_SERVICE_LOCK_STATUS(tvb,offset,pinfo,tree,di,drep,hf_svcctl_svcctl_QueryServiceLockStatusW_lock_status,0);
4156 return offset;
4159 static int
4160 svcctl_dissect_element_QueryServiceLockStatusW_offered(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4162 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_QueryServiceLockStatusW_offered, 0);
4164 return offset;
4167 static int
4168 svcctl_dissect_element_QueryServiceLockStatusW_needed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4170 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_QueryServiceLockStatusW_needed_, NDR_POINTER_REF, "Pointer to Needed (uint32)",hf_svcctl_svcctl_QueryServiceLockStatusW_needed);
4172 return offset;
4175 static int
4176 svcctl_dissect_element_QueryServiceLockStatusW_needed_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4178 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_QueryServiceLockStatusW_needed, 0);
4180 return offset;
4183 /* IDL: WERROR svcctl_QueryServiceLockStatusW( */
4184 /* IDL: [in] [ref] policy_handle *scm_handle, */
4185 /* IDL: [out] [ref] SERVICE_LOCK_STATUS *lock_status, */
4186 /* IDL: [in] uint32 offered, */
4187 /* IDL: [out] [ref] uint32 *needed */
4188 /* IDL: ); */
4190 static int
4191 svcctl_dissect_QueryServiceLockStatusW_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4193 uint32_t status;
4195 di->dcerpc_procedure_name="QueryServiceLockStatusW";
4196 offset = svcctl_dissect_element_QueryServiceLockStatusW_lock_status(tvb, offset, pinfo, tree, di, drep);
4197 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
4199 offset = svcctl_dissect_element_QueryServiceLockStatusW_needed(tvb, offset, pinfo, tree, di, drep);
4200 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
4202 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_werror, &status);
4204 if (status != 0)
4205 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(status, &WERR_errors_ext, "Unknown DOS error 0x%08x"));
4207 return offset;
4210 static int
4211 svcctl_dissect_QueryServiceLockStatusW_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4213 di->dcerpc_procedure_name="QueryServiceLockStatusW";
4214 offset = svcctl_dissect_element_QueryServiceLockStatusW_scm_handle(tvb, offset, pinfo, tree, di, drep);
4215 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
4216 offset = svcctl_dissect_element_QueryServiceLockStatusW_offered(tvb, offset, pinfo, tree, di, drep);
4217 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
4218 return offset;
4221 static int
4222 svcctl_dissect_element_StartServiceW_service_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4224 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_StartServiceW_service_handle_, NDR_POINTER_REF, "Pointer to Service Handle (policy_handle)",hf_svcctl_svcctl_StartServiceW_service_handle);
4226 return offset;
4229 static int
4230 svcctl_dissect_element_StartServiceW_service_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4232 offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_StartServiceW_service_handle, 0);
4234 return offset;
4237 static int
4238 svcctl_dissect_element_StartServiceW_NumArgs(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4240 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_StartServiceW_NumArgs, 0);
4242 return offset;
4245 static int
4246 svcctl_dissect_element_StartServiceW_Arguments(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4248 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_StartServiceW_Arguments_, NDR_POINTER_UNIQUE, "Pointer to Arguments (svcctl_ArgumentString)",hf_svcctl_svcctl_StartServiceW_Arguments);
4250 return offset;
4253 static int
4254 svcctl_dissect_element_StartServiceW_Arguments_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4256 offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_StartServiceW_Arguments__);
4258 return offset;
4261 static int
4262 svcctl_dissect_element_StartServiceW_Arguments__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4264 offset = svcctl_dissect_struct_ArgumentString(tvb,offset,pinfo,tree,di,drep,hf_svcctl_svcctl_StartServiceW_Arguments,0);
4266 return offset;
4269 /* IDL: WERROR svcctl_StartServiceW( */
4270 /* IDL: [in] [ref] policy_handle *service_handle, */
4271 /* IDL: [in] [range(0,SC_MAX_ARGUMENTS)] uint32 NumArgs, */
4272 /* IDL: [in] [size_is(NumArgs)] [unique(1)] svcctl_ArgumentString *Arguments */
4273 /* IDL: ); */
4275 static int
4276 svcctl_dissect_StartServiceW_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4278 uint32_t status;
4280 di->dcerpc_procedure_name="StartServiceW";
4281 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_werror, &status);
4283 if (status != 0)
4284 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(status, &WERR_errors_ext, "Unknown DOS error 0x%08x"));
4286 return offset;
4289 static int
4290 svcctl_dissect_StartServiceW_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4292 di->dcerpc_procedure_name="StartServiceW";
4293 offset = svcctl_dissect_element_StartServiceW_service_handle(tvb, offset, pinfo, tree, di, drep);
4294 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
4295 offset = svcctl_dissect_element_StartServiceW_NumArgs(tvb, offset, pinfo, tree, di, drep);
4296 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
4297 offset = svcctl_dissect_element_StartServiceW_Arguments(tvb, offset, pinfo, tree, di, drep);
4298 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
4299 return offset;
4302 static int
4303 svcctl_dissect_element_GetServiceDisplayNameW_scm_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4305 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_GetServiceDisplayNameW_scm_handle_, NDR_POINTER_REF, "Pointer to Scm Handle (policy_handle)",hf_svcctl_svcctl_GetServiceDisplayNameW_scm_handle);
4307 return offset;
4310 static int
4311 svcctl_dissect_element_GetServiceDisplayNameW_scm_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4313 offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_GetServiceDisplayNameW_scm_handle, 0);
4315 return offset;
4318 static int
4319 svcctl_dissect_element_GetServiceDisplayNameW_service_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4321 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_GetServiceDisplayNameW_service_name_, NDR_POINTER_UNIQUE, "Pointer to Service Name (uint16)",hf_svcctl_svcctl_GetServiceDisplayNameW_service_name);
4323 return offset;
4326 static int
4327 svcctl_dissect_element_GetServiceDisplayNameW_service_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4329 char *data;
4331 offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(uint16_t), hf_svcctl_svcctl_GetServiceDisplayNameW_service_name, false, &data);
4332 proto_item_append_text(tree, ": %s", data);
4334 return offset;
4337 static int
4338 svcctl_dissect_element_GetServiceDisplayNameW_display_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4340 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_GetServiceDisplayNameW_display_name_, NDR_POINTER_REF, "Pointer to Display Name (uint16)",hf_svcctl_svcctl_GetServiceDisplayNameW_display_name);
4342 return offset;
4345 static int
4346 svcctl_dissect_element_GetServiceDisplayNameW_display_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4348 offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_GetServiceDisplayNameW_display_name__, NDR_POINTER_UNIQUE, "Pointer to Display Name (uint16)",hf_svcctl_svcctl_GetServiceDisplayNameW_display_name);
4350 return offset;
4353 static int
4354 svcctl_dissect_element_GetServiceDisplayNameW_display_name__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4356 char *data;
4358 offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(uint16_t), hf_svcctl_svcctl_GetServiceDisplayNameW_display_name, false, &data);
4359 proto_item_append_text(tree, ": %s", data);
4361 return offset;
4364 static int
4365 svcctl_dissect_element_GetServiceDisplayNameW_display_name_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4367 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_GetServiceDisplayNameW_display_name_length_, NDR_POINTER_UNIQUE, "Pointer to Display Name Length (uint32)",hf_svcctl_svcctl_GetServiceDisplayNameW_display_name_length);
4369 return offset;
4372 static int
4373 svcctl_dissect_element_GetServiceDisplayNameW_display_name_length_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4375 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_GetServiceDisplayNameW_display_name_length, 0);
4377 return offset;
4380 /* IDL: WERROR svcctl_GetServiceDisplayNameW( */
4381 /* IDL: [in] [ref] policy_handle *scm_handle, */
4382 /* IDL: [charset(UTF16)] [in] [unique(1)] uint16 *service_name, */
4383 /* IDL: [charset(UTF16)] [out] [ref] uint16 **display_name, */
4384 /* IDL: [in] [out] [unique(1)] uint32 *display_name_length */
4385 /* IDL: ); */
4387 static int
4388 svcctl_dissect_GetServiceDisplayNameW_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4390 uint32_t status;
4392 di->dcerpc_procedure_name="GetServiceDisplayNameW";
4393 offset = svcctl_dissect_element_GetServiceDisplayNameW_display_name(tvb, offset, pinfo, tree, di, drep);
4394 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
4396 offset = svcctl_dissect_element_GetServiceDisplayNameW_display_name_length(tvb, offset, pinfo, tree, di, drep);
4397 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
4399 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_werror, &status);
4401 if (status != 0)
4402 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(status, &WERR_errors_ext, "Unknown DOS error 0x%08x"));
4404 return offset;
4407 static int
4408 svcctl_dissect_GetServiceDisplayNameW_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4410 di->dcerpc_procedure_name="GetServiceDisplayNameW";
4411 offset = svcctl_dissect_element_GetServiceDisplayNameW_scm_handle(tvb, offset, pinfo, tree, di, drep);
4412 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
4413 offset = svcctl_dissect_element_GetServiceDisplayNameW_service_name(tvb, offset, pinfo, tree, di, drep);
4414 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
4415 offset = svcctl_dissect_element_GetServiceDisplayNameW_display_name_length(tvb, offset, pinfo, tree, di, drep);
4416 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
4417 return offset;
4420 static int
4421 svcctl_dissect_element_GetServiceKeyNameW_scm_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4423 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_GetServiceKeyNameW_scm_handle_, NDR_POINTER_REF, "Pointer to Scm Handle (policy_handle)",hf_svcctl_svcctl_GetServiceKeyNameW_scm_handle);
4425 return offset;
4428 static int
4429 svcctl_dissect_element_GetServiceKeyNameW_scm_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4431 offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_GetServiceKeyNameW_scm_handle, 0);
4433 return offset;
4436 static int
4437 svcctl_dissect_element_GetServiceKeyNameW_display_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4439 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_GetServiceKeyNameW_display_name_, NDR_POINTER_UNIQUE, "Pointer to Display Name (uint16)",hf_svcctl_svcctl_GetServiceKeyNameW_display_name);
4441 return offset;
4444 static int
4445 svcctl_dissect_element_GetServiceKeyNameW_display_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4447 char *data;
4449 offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(uint16_t), hf_svcctl_svcctl_GetServiceKeyNameW_display_name, false, &data);
4450 proto_item_append_text(tree, ": %s", data);
4452 return offset;
4455 static int
4456 svcctl_dissect_element_GetServiceKeyNameW_service_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4458 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_GetServiceKeyNameW_service_name_, NDR_POINTER_REF, "Pointer to Service Name (uint16)",hf_svcctl_svcctl_GetServiceKeyNameW_service_name);
4460 return offset;
4463 static int
4464 svcctl_dissect_element_GetServiceKeyNameW_service_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4466 offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_GetServiceKeyNameW_service_name__, NDR_POINTER_UNIQUE, "Pointer to Service Name (uint16)",hf_svcctl_svcctl_GetServiceKeyNameW_service_name);
4468 return offset;
4471 static int
4472 svcctl_dissect_element_GetServiceKeyNameW_service_name__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4474 char *data;
4476 offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(uint16_t), hf_svcctl_svcctl_GetServiceKeyNameW_service_name, false, &data);
4477 proto_item_append_text(tree, ": %s", data);
4479 return offset;
4482 static int
4483 svcctl_dissect_element_GetServiceKeyNameW_service_name_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4485 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_GetServiceKeyNameW_service_name_length_, NDR_POINTER_UNIQUE, "Pointer to Service Name Length (uint32)",hf_svcctl_svcctl_GetServiceKeyNameW_service_name_length);
4487 return offset;
4490 static int
4491 svcctl_dissect_element_GetServiceKeyNameW_service_name_length_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4493 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_GetServiceKeyNameW_service_name_length, 0);
4495 return offset;
4498 /* IDL: WERROR svcctl_GetServiceKeyNameW( */
4499 /* IDL: [in] [ref] policy_handle *scm_handle, */
4500 /* IDL: [charset(UTF16)] [in] [unique(1)] uint16 *display_name, */
4501 /* IDL: [charset(UTF16)] [out] [ref] uint16 **service_name, */
4502 /* IDL: [in] [out] [unique(1)] uint32 *service_name_length */
4503 /* IDL: ); */
4505 static int
4506 svcctl_dissect_GetServiceKeyNameW_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4508 uint32_t status;
4510 di->dcerpc_procedure_name="GetServiceKeyNameW";
4511 offset = svcctl_dissect_element_GetServiceKeyNameW_service_name(tvb, offset, pinfo, tree, di, drep);
4512 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
4514 offset = svcctl_dissect_element_GetServiceKeyNameW_service_name_length(tvb, offset, pinfo, tree, di, drep);
4515 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
4517 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_werror, &status);
4519 if (status != 0)
4520 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(status, &WERR_errors_ext, "Unknown DOS error 0x%08x"));
4522 return offset;
4525 static int
4526 svcctl_dissect_GetServiceKeyNameW_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4528 di->dcerpc_procedure_name="GetServiceKeyNameW";
4529 offset = svcctl_dissect_element_GetServiceKeyNameW_scm_handle(tvb, offset, pinfo, tree, di, drep);
4530 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
4531 offset = svcctl_dissect_element_GetServiceKeyNameW_display_name(tvb, offset, pinfo, tree, di, drep);
4532 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
4533 offset = svcctl_dissect_element_GetServiceKeyNameW_service_name_length(tvb, offset, pinfo, tree, di, drep);
4534 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
4535 return offset;
4538 static int
4539 svcctl_dissect_element_SCSetServiceBitsA_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4541 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_SCSetServiceBitsA_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_svcctl_svcctl_SCSetServiceBitsA_handle);
4543 return offset;
4546 static int
4547 svcctl_dissect_element_SCSetServiceBitsA_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4549 offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_SCSetServiceBitsA_handle, 0);
4551 return offset;
4554 static int
4555 svcctl_dissect_element_SCSetServiceBitsA_service_bits(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4557 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_SCSetServiceBitsA_service_bits, 0);
4559 return offset;
4562 static int
4563 svcctl_dissect_element_SCSetServiceBitsA_set_bits_on(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4565 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_SCSetServiceBitsA_set_bits_on, 0);
4567 return offset;
4570 static int
4571 svcctl_dissect_element_SCSetServiceBitsA_update_immediately(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4573 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_SCSetServiceBitsA_update_immediately, 0);
4575 return offset;
4578 static int
4579 svcctl_dissect_element_SCSetServiceBitsA_lpString(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4581 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_SCSetServiceBitsA_lpString_, NDR_POINTER_UNIQUE, "Pointer to LpString (uint16)",hf_svcctl_svcctl_SCSetServiceBitsA_lpString);
4583 return offset;
4586 static int
4587 svcctl_dissect_element_SCSetServiceBitsA_lpString_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4589 char *data;
4591 offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(uint16_t), hf_svcctl_svcctl_SCSetServiceBitsA_lpString, false, &data);
4592 proto_item_append_text(tree, ": %s", data);
4594 return offset;
4597 /* IDL: WERROR svcctl_SCSetServiceBitsA( */
4598 /* IDL: [in] [ref] policy_handle *handle, */
4599 /* IDL: [in] uint32 service_bits, */
4600 /* IDL: [in] uint32 set_bits_on, */
4601 /* IDL: [in] uint32 update_immediately, */
4602 /* IDL: [charset(UTF16)] [in] [unique(1)] uint16 *lpString */
4603 /* IDL: ); */
4605 static int
4606 svcctl_dissect_SCSetServiceBitsA_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4608 uint32_t status;
4610 di->dcerpc_procedure_name="SCSetServiceBitsA";
4611 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_werror, &status);
4613 if (status != 0)
4614 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(status, &WERR_errors_ext, "Unknown DOS error 0x%08x"));
4616 return offset;
4619 static int
4620 svcctl_dissect_SCSetServiceBitsA_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4622 di->dcerpc_procedure_name="SCSetServiceBitsA";
4623 offset = svcctl_dissect_element_SCSetServiceBitsA_handle(tvb, offset, pinfo, tree, di, drep);
4624 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
4625 offset = svcctl_dissect_element_SCSetServiceBitsA_service_bits(tvb, offset, pinfo, tree, di, drep);
4626 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
4627 offset = svcctl_dissect_element_SCSetServiceBitsA_set_bits_on(tvb, offset, pinfo, tree, di, drep);
4628 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
4629 offset = svcctl_dissect_element_SCSetServiceBitsA_update_immediately(tvb, offset, pinfo, tree, di, drep);
4630 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
4631 offset = svcctl_dissect_element_SCSetServiceBitsA_lpString(tvb, offset, pinfo, tree, di, drep);
4632 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
4633 return offset;
4636 static int
4637 svcctl_dissect_element_ChangeServiceConfigA_service_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4639 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_ChangeServiceConfigA_service_handle_, NDR_POINTER_REF, "Pointer to Service Handle (policy_handle)",hf_svcctl_svcctl_ChangeServiceConfigA_service_handle);
4641 return offset;
4644 static int
4645 svcctl_dissect_element_ChangeServiceConfigA_service_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4647 offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_ChangeServiceConfigA_service_handle, 0);
4649 return offset;
4652 static int
4653 svcctl_dissect_element_ChangeServiceConfigA_service_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4655 offset = svcctl_dissect_enum_ServiceType(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_ChangeServiceConfigA_service_type, 0);
4657 return offset;
4660 static int
4661 svcctl_dissect_element_ChangeServiceConfigA_start_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4663 offset = svcctl_dissect_enum_StartType(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_ChangeServiceConfigA_start_type, 0);
4665 return offset;
4668 static int
4669 svcctl_dissect_element_ChangeServiceConfigA_error_control(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4671 offset = svcctl_dissect_enum_ErrorControl(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_ChangeServiceConfigA_error_control, 0);
4673 return offset;
4676 static int
4677 svcctl_dissect_element_ChangeServiceConfigA_binary_path(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4679 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_ChangeServiceConfigA_binary_path_, NDR_POINTER_UNIQUE, "Pointer to Binary Path (string)",hf_svcctl_svcctl_ChangeServiceConfigA_binary_path);
4681 return offset;
4684 static int
4685 svcctl_dissect_element_ChangeServiceConfigA_binary_path_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4687 offset = dissect_null_term_string(tvb, offset, pinfo, tree, drep, hf_svcctl_svcctl_ChangeServiceConfigA_binary_path , 0);
4689 return offset;
4692 static int
4693 svcctl_dissect_element_ChangeServiceConfigA_load_order_group(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4695 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_ChangeServiceConfigA_load_order_group_, NDR_POINTER_UNIQUE, "Pointer to Load Order Group (string)",hf_svcctl_svcctl_ChangeServiceConfigA_load_order_group);
4697 return offset;
4700 static int
4701 svcctl_dissect_element_ChangeServiceConfigA_load_order_group_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4703 offset = dissect_null_term_string(tvb, offset, pinfo, tree, drep, hf_svcctl_svcctl_ChangeServiceConfigA_load_order_group , 0);
4705 return offset;
4708 static int
4709 svcctl_dissect_element_ChangeServiceConfigA_tag_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4711 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_ChangeServiceConfigA_tag_id_, NDR_POINTER_UNIQUE, "Pointer to Tag Id (uint32)",hf_svcctl_svcctl_ChangeServiceConfigA_tag_id);
4713 return offset;
4716 static int
4717 svcctl_dissect_element_ChangeServiceConfigA_tag_id_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4719 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_ChangeServiceConfigA_tag_id, 0);
4721 return offset;
4724 static int
4725 svcctl_dissect_element_ChangeServiceConfigA_dependencies(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4727 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_ChangeServiceConfigA_dependencies_, NDR_POINTER_UNIQUE, "Pointer to Dependencies (string)",hf_svcctl_svcctl_ChangeServiceConfigA_dependencies);
4729 return offset;
4732 static int
4733 svcctl_dissect_element_ChangeServiceConfigA_dependencies_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4735 offset = dissect_null_term_string(tvb, offset, pinfo, tree, drep, hf_svcctl_svcctl_ChangeServiceConfigA_dependencies , 0);
4737 return offset;
4740 static int
4741 svcctl_dissect_element_ChangeServiceConfigA_service_start_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4743 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_ChangeServiceConfigA_service_start_name_, NDR_POINTER_UNIQUE, "Pointer to Service Start Name (string)",hf_svcctl_svcctl_ChangeServiceConfigA_service_start_name);
4745 return offset;
4748 static int
4749 svcctl_dissect_element_ChangeServiceConfigA_service_start_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4751 offset = dissect_null_term_string(tvb, offset, pinfo, tree, drep, hf_svcctl_svcctl_ChangeServiceConfigA_service_start_name , 0);
4753 return offset;
4756 static int
4757 svcctl_dissect_element_ChangeServiceConfigA_password(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4759 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_ChangeServiceConfigA_password_, NDR_POINTER_UNIQUE, "Pointer to Password (string)",hf_svcctl_svcctl_ChangeServiceConfigA_password);
4761 return offset;
4764 static int
4765 svcctl_dissect_element_ChangeServiceConfigA_password_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4767 offset = dissect_null_term_string(tvb, offset, pinfo, tree, drep, hf_svcctl_svcctl_ChangeServiceConfigA_password , 0);
4769 return offset;
4772 static int
4773 svcctl_dissect_element_ChangeServiceConfigA_display_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4775 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_ChangeServiceConfigA_display_name_, NDR_POINTER_UNIQUE, "Pointer to Display Name (string)",hf_svcctl_svcctl_ChangeServiceConfigA_display_name);
4777 return offset;
4780 static int
4781 svcctl_dissect_element_ChangeServiceConfigA_display_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4783 offset = dissect_null_term_string(tvb, offset, pinfo, tree, drep, hf_svcctl_svcctl_ChangeServiceConfigA_display_name , 0);
4785 return offset;
4788 /* IDL: WERROR svcctl_ChangeServiceConfigA( */
4789 /* IDL: [in] [ref] policy_handle *service_handle, */
4790 /* IDL: [in] svcctl_ServiceType service_type, */
4791 /* IDL: [in] svcctl_StartType start_type, */
4792 /* IDL: [in] svcctl_ErrorControl error_control, */
4793 /* IDL: [flag(LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM)] [in] [unique(1)] string *binary_path, */
4794 /* IDL: [flag(LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM)] [in] [unique(1)] string *load_order_group, */
4795 /* IDL: [in] [out] [unique(1)] uint32 *tag_id, */
4796 /* IDL: [flag(LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM)] [in] [unique(1)] string *dependencies, */
4797 /* IDL: [flag(LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM)] [in] [unique(1)] string *service_start_name, */
4798 /* IDL: [flag(LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM)] [in] [unique(1)] string *password, */
4799 /* IDL: [flag(LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM)] [in] [unique(1)] string *display_name */
4800 /* IDL: ); */
4802 static int
4803 svcctl_dissect_ChangeServiceConfigA_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4805 uint32_t status;
4807 di->dcerpc_procedure_name="ChangeServiceConfigA";
4808 offset = svcctl_dissect_element_ChangeServiceConfigA_tag_id(tvb, offset, pinfo, tree, di, drep);
4809 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
4811 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_werror, &status);
4813 if (status != 0)
4814 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(status, &WERR_errors_ext, "Unknown DOS error 0x%08x"));
4816 return offset;
4819 static int
4820 svcctl_dissect_ChangeServiceConfigA_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4822 di->dcerpc_procedure_name="ChangeServiceConfigA";
4823 offset = svcctl_dissect_element_ChangeServiceConfigA_service_handle(tvb, offset, pinfo, tree, di, drep);
4824 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
4825 offset = svcctl_dissect_element_ChangeServiceConfigA_service_type(tvb, offset, pinfo, tree, di, drep);
4826 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
4827 offset = svcctl_dissect_element_ChangeServiceConfigA_start_type(tvb, offset, pinfo, tree, di, drep);
4828 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
4829 offset = svcctl_dissect_element_ChangeServiceConfigA_error_control(tvb, offset, pinfo, tree, di, drep);
4830 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
4831 offset = svcctl_dissect_element_ChangeServiceConfigA_binary_path(tvb, offset, pinfo, tree, di, drep);
4832 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
4833 offset = svcctl_dissect_element_ChangeServiceConfigA_load_order_group(tvb, offset, pinfo, tree, di, drep);
4834 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
4835 offset = svcctl_dissect_element_ChangeServiceConfigA_tag_id(tvb, offset, pinfo, tree, di, drep);
4836 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
4837 offset = svcctl_dissect_element_ChangeServiceConfigA_dependencies(tvb, offset, pinfo, tree, di, drep);
4838 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
4839 offset = svcctl_dissect_element_ChangeServiceConfigA_service_start_name(tvb, offset, pinfo, tree, di, drep);
4840 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
4841 offset = svcctl_dissect_element_ChangeServiceConfigA_password(tvb, offset, pinfo, tree, di, drep);
4842 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
4843 offset = svcctl_dissect_element_ChangeServiceConfigA_display_name(tvb, offset, pinfo, tree, di, drep);
4844 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
4845 return offset;
4848 static int
4849 svcctl_dissect_element_CreateServiceA_scm_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4851 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_CreateServiceA_scm_handle_, NDR_POINTER_REF, "Pointer to Scm Handle (policy_handle)",hf_svcctl_svcctl_CreateServiceA_scm_handle);
4853 return offset;
4856 static int
4857 svcctl_dissect_element_CreateServiceA_scm_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4859 offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_CreateServiceA_scm_handle, 0);
4861 return offset;
4864 static int
4865 svcctl_dissect_element_CreateServiceA_ServiceName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4867 char *data;
4869 offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(uint8_t), hf_svcctl_svcctl_CreateServiceA_ServiceName, false, &data);
4870 proto_item_append_text(tree, ": %s", data);
4872 return offset;
4875 static int
4876 svcctl_dissect_element_CreateServiceA_DisplayName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4878 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_CreateServiceA_DisplayName_, NDR_POINTER_UNIQUE, "Pointer to DisplayName (uint8)",hf_svcctl_svcctl_CreateServiceA_DisplayName);
4880 return offset;
4883 static int
4884 svcctl_dissect_element_CreateServiceA_DisplayName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4886 char *data;
4888 offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(uint8_t), hf_svcctl_svcctl_CreateServiceA_DisplayName, false, &data);
4889 proto_item_append_text(tree, ": %s", data);
4891 return offset;
4894 static int
4895 svcctl_dissect_element_CreateServiceA_desired_access(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4897 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_CreateServiceA_desired_access, 0);
4899 return offset;
4902 static int
4903 svcctl_dissect_element_CreateServiceA_service_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4905 offset = svcctl_dissect_enum_ServiceType(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_CreateServiceA_service_type, 0);
4907 return offset;
4910 static int
4911 svcctl_dissect_element_CreateServiceA_start_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4913 offset = svcctl_dissect_enum_StartType(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_CreateServiceA_start_type, 0);
4915 return offset;
4918 static int
4919 svcctl_dissect_element_CreateServiceA_error_control(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4921 offset = svcctl_dissect_enum_ErrorControl(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_CreateServiceA_error_control, 0);
4923 return offset;
4926 static int
4927 svcctl_dissect_element_CreateServiceA_binary_path(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4929 char *data;
4931 offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(uint8_t), hf_svcctl_svcctl_CreateServiceA_binary_path, false, &data);
4932 proto_item_append_text(tree, ": %s", data);
4934 return offset;
4937 static int
4938 svcctl_dissect_element_CreateServiceA_LoadOrderGroupKey(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4940 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_CreateServiceA_LoadOrderGroupKey_, NDR_POINTER_UNIQUE, "Pointer to LoadOrderGroupKey (uint8)",hf_svcctl_svcctl_CreateServiceA_LoadOrderGroupKey);
4942 return offset;
4945 static int
4946 svcctl_dissect_element_CreateServiceA_LoadOrderGroupKey_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4948 char *data;
4950 offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(uint8_t), hf_svcctl_svcctl_CreateServiceA_LoadOrderGroupKey, false, &data);
4951 proto_item_append_text(tree, ": %s", data);
4953 return offset;
4956 static int
4957 svcctl_dissect_element_CreateServiceA_tag_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4959 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_CreateServiceA_tag_id_, NDR_POINTER_UNIQUE, "Pointer to Tag Id (uint32)",hf_svcctl_svcctl_CreateServiceA_tag_id);
4961 return offset;
4964 static int
4965 svcctl_dissect_element_CreateServiceA_tag_id_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4967 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_CreateServiceA_tag_id, 0);
4969 return offset;
4972 static int
4973 svcctl_dissect_element_CreateServiceA_dependencies(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4975 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_CreateServiceA_dependencies_, NDR_POINTER_UNIQUE, "Pointer to Dependencies (string)",hf_svcctl_svcctl_CreateServiceA_dependencies);
4977 return offset;
4980 static int
4981 svcctl_dissect_element_CreateServiceA_dependencies_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4983 offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_CreateServiceA_dependencies__);
4985 return offset;
4988 static int
4989 svcctl_dissect_element_CreateServiceA_dependencies__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4991 offset = dissect_null_term_string(tvb, offset, pinfo, tree, drep, hf_svcctl_svcctl_CreateServiceA_dependencies , 0);
4993 return offset;
4996 static int
4997 svcctl_dissect_element_CreateServiceA_dependencies_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4999 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_CreateServiceA_dependencies_size, 0);
5001 return offset;
5004 static int
5005 svcctl_dissect_element_CreateServiceA_service_start_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5007 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_CreateServiceA_service_start_name_, NDR_POINTER_UNIQUE, "Pointer to Service Start Name (uint8)",hf_svcctl_svcctl_CreateServiceA_service_start_name);
5009 return offset;
5012 static int
5013 svcctl_dissect_element_CreateServiceA_service_start_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5015 char *data;
5017 offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(uint8_t), hf_svcctl_svcctl_CreateServiceA_service_start_name, false, &data);
5018 proto_item_append_text(tree, ": %s", data);
5020 return offset;
5023 static int
5024 svcctl_dissect_element_CreateServiceA_password(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5026 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_CreateServiceA_password_, NDR_POINTER_UNIQUE, "Pointer to Password (uint8)",hf_svcctl_svcctl_CreateServiceA_password);
5028 return offset;
5031 static int
5032 svcctl_dissect_element_CreateServiceA_password_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5034 offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_CreateServiceA_password__);
5036 return offset;
5039 static int
5040 svcctl_dissect_element_CreateServiceA_password__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5042 offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_CreateServiceA_password, 0);
5044 return offset;
5047 static int
5048 svcctl_dissect_element_CreateServiceA_password_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5050 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_CreateServiceA_password_size, 0);
5052 return offset;
5055 static int
5056 svcctl_dissect_element_CreateServiceA_service_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5058 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_CreateServiceA_service_handle_, NDR_POINTER_REF, "Pointer to Service Handle (policy_handle)",hf_svcctl_svcctl_CreateServiceA_service_handle);
5060 return offset;
5063 static int
5064 svcctl_dissect_element_CreateServiceA_service_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5066 offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_CreateServiceA_service_handle, 0);
5068 return offset;
5071 /* IDL: WERROR svcctl_CreateServiceA( */
5072 /* IDL: [in] [ref] policy_handle *scm_handle, */
5073 /* IDL: [charset(ASCII)] [in] uint8 ServiceName[*], */
5074 /* IDL: [charset(ASCII)] [in] [unique(1)] uint8 *DisplayName, */
5075 /* IDL: [in] uint32 desired_access, */
5076 /* IDL: [in] svcctl_ServiceType service_type, */
5077 /* IDL: [in] svcctl_StartType start_type, */
5078 /* IDL: [in] svcctl_ErrorControl error_control, */
5079 /* IDL: [charset(ASCII)] [in] uint8 binary_path[*], */
5080 /* IDL: [charset(ASCII)] [in] [unique(1)] uint8 *LoadOrderGroupKey, */
5081 /* IDL: [in] [out] [unique(1)] uint32 *tag_id, */
5082 /* IDL: [flag(LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM)] [in] [size_is(dependencies_size)] [unique(1)] string *dependencies, */
5083 /* IDL: [in] uint32 dependencies_size, */
5084 /* IDL: [charset(ASCII)] [in] [unique(1)] uint8 *service_start_name, */
5085 /* IDL: [in] [size_is(password_size)] [unique(1)] uint8 *password, */
5086 /* IDL: [in] uint32 password_size, */
5087 /* IDL: [out] [ref] policy_handle *service_handle */
5088 /* IDL: ); */
5090 static int
5091 svcctl_dissect_CreateServiceA_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5093 uint32_t status;
5095 di->dcerpc_procedure_name="CreateServiceA";
5096 offset = svcctl_dissect_element_CreateServiceA_tag_id(tvb, offset, pinfo, tree, di, drep);
5097 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
5099 offset = svcctl_dissect_element_CreateServiceA_service_handle(tvb, offset, pinfo, tree, di, drep);
5100 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
5102 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_werror, &status);
5104 if (status != 0)
5105 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(status, &WERR_errors_ext, "Unknown DOS error 0x%08x"));
5107 return offset;
5110 static int
5111 svcctl_dissect_CreateServiceA_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5113 di->dcerpc_procedure_name="CreateServiceA";
5114 offset = svcctl_dissect_element_CreateServiceA_scm_handle(tvb, offset, pinfo, tree, di, drep);
5115 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
5116 offset = svcctl_dissect_element_CreateServiceA_ServiceName(tvb, offset, pinfo, tree, di, drep);
5117 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
5118 offset = svcctl_dissect_element_CreateServiceA_DisplayName(tvb, offset, pinfo, tree, di, drep);
5119 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
5120 offset = svcctl_dissect_element_CreateServiceA_desired_access(tvb, offset, pinfo, tree, di, drep);
5121 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
5122 offset = svcctl_dissect_element_CreateServiceA_service_type(tvb, offset, pinfo, tree, di, drep);
5123 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
5124 offset = svcctl_dissect_element_CreateServiceA_start_type(tvb, offset, pinfo, tree, di, drep);
5125 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
5126 offset = svcctl_dissect_element_CreateServiceA_error_control(tvb, offset, pinfo, tree, di, drep);
5127 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
5128 offset = svcctl_dissect_element_CreateServiceA_binary_path(tvb, offset, pinfo, tree, di, drep);
5129 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
5130 offset = svcctl_dissect_element_CreateServiceA_LoadOrderGroupKey(tvb, offset, pinfo, tree, di, drep);
5131 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
5132 offset = svcctl_dissect_element_CreateServiceA_tag_id(tvb, offset, pinfo, tree, di, drep);
5133 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
5134 offset = svcctl_dissect_element_CreateServiceA_dependencies(tvb, offset, pinfo, tree, di, drep);
5135 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
5136 offset = svcctl_dissect_element_CreateServiceA_dependencies_size(tvb, offset, pinfo, tree, di, drep);
5137 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
5138 offset = svcctl_dissect_element_CreateServiceA_service_start_name(tvb, offset, pinfo, tree, di, drep);
5139 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
5140 offset = svcctl_dissect_element_CreateServiceA_password(tvb, offset, pinfo, tree, di, drep);
5141 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
5142 offset = svcctl_dissect_element_CreateServiceA_password_size(tvb, offset, pinfo, tree, di, drep);
5143 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
5144 return offset;
5147 static int
5148 svcctl_dissect_element_EnumDependentServicesA_service_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5150 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_EnumDependentServicesA_service_handle_, NDR_POINTER_REF, "Pointer to Service Handle (policy_handle)",hf_svcctl_svcctl_EnumDependentServicesA_service_handle);
5152 return offset;
5155 static int
5156 svcctl_dissect_element_EnumDependentServicesA_service_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5158 offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_EnumDependentServicesA_service_handle, 0);
5160 return offset;
5163 static int
5164 svcctl_dissect_element_EnumDependentServicesA_state(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5166 offset = svcctl_dissect_enum_ServiceState(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_EnumDependentServicesA_state, 0);
5168 return offset;
5171 static int
5172 svcctl_dissect_element_EnumDependentServicesA_service_status(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5174 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_EnumDependentServicesA_service_status_, NDR_POINTER_REF, "Pointer to Service Status (ENUM_SERVICE_STATUSA)",hf_svcctl_svcctl_EnumDependentServicesA_service_status);
5176 return offset;
5179 static int
5180 svcctl_dissect_element_EnumDependentServicesA_service_status_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5182 offset = svcctl_dissect_struct_ENUM_SERVICE_STATUSA(tvb,offset,pinfo,tree,di,drep,hf_svcctl_svcctl_EnumDependentServicesA_service_status,0);
5184 return offset;
5187 static int
5188 svcctl_dissect_element_EnumDependentServicesA_offered(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5190 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_EnumDependentServicesA_offered, 0);
5192 return offset;
5195 static int
5196 svcctl_dissect_element_EnumDependentServicesA_needed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5198 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_EnumDependentServicesA_needed_, NDR_POINTER_REF, "Pointer to Needed (uint32)",hf_svcctl_svcctl_EnumDependentServicesA_needed);
5200 return offset;
5203 static int
5204 svcctl_dissect_element_EnumDependentServicesA_needed_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5206 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_EnumDependentServicesA_needed, 0);
5208 return offset;
5211 static int
5212 svcctl_dissect_element_EnumDependentServicesA_services_returned(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5214 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_EnumDependentServicesA_services_returned_, NDR_POINTER_REF, "Pointer to Services Returned (uint32)",hf_svcctl_svcctl_EnumDependentServicesA_services_returned);
5216 return offset;
5219 static int
5220 svcctl_dissect_element_EnumDependentServicesA_services_returned_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5222 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_EnumDependentServicesA_services_returned, 0);
5224 return offset;
5227 /* IDL: WERROR svcctl_EnumDependentServicesA( */
5228 /* IDL: [in] [ref] policy_handle *service_handle, */
5229 /* IDL: [in] svcctl_ServiceState state, */
5230 /* IDL: [out] [ref] ENUM_SERVICE_STATUSA *service_status, */
5231 /* IDL: [in] uint32 offered, */
5232 /* IDL: [out] [ref] uint32 *needed, */
5233 /* IDL: [out] [ref] uint32 *services_returned */
5234 /* IDL: ); */
5236 static int
5237 svcctl_dissect_EnumDependentServicesA_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5239 uint32_t status;
5241 di->dcerpc_procedure_name="EnumDependentServicesA";
5242 offset = svcctl_dissect_element_EnumDependentServicesA_service_status(tvb, offset, pinfo, tree, di, drep);
5243 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
5245 offset = svcctl_dissect_element_EnumDependentServicesA_needed(tvb, offset, pinfo, tree, di, drep);
5246 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
5248 offset = svcctl_dissect_element_EnumDependentServicesA_services_returned(tvb, offset, pinfo, tree, di, drep);
5249 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
5251 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_werror, &status);
5253 if (status != 0)
5254 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(status, &WERR_errors_ext, "Unknown DOS error 0x%08x"));
5256 return offset;
5259 static int
5260 svcctl_dissect_EnumDependentServicesA_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5262 di->dcerpc_procedure_name="EnumDependentServicesA";
5263 offset = svcctl_dissect_element_EnumDependentServicesA_service_handle(tvb, offset, pinfo, tree, di, drep);
5264 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
5265 offset = svcctl_dissect_element_EnumDependentServicesA_state(tvb, offset, pinfo, tree, di, drep);
5266 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
5267 offset = svcctl_dissect_element_EnumDependentServicesA_offered(tvb, offset, pinfo, tree, di, drep);
5268 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
5269 return offset;
5272 static int
5273 svcctl_dissect_element_EnumServicesStatusA_scm_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5275 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_EnumServicesStatusA_scm_handle_, NDR_POINTER_REF, "Pointer to Scm Handle (policy_handle)",hf_svcctl_svcctl_EnumServicesStatusA_scm_handle);
5277 return offset;
5280 static int
5281 svcctl_dissect_element_EnumServicesStatusA_scm_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5283 offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_EnumServicesStatusA_scm_handle, 0);
5285 return offset;
5288 static int
5289 svcctl_dissect_element_EnumServicesStatusA_service_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5291 offset = svcctl_dissect_enum_ServiceType(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_EnumServicesStatusA_service_type, 0);
5293 return offset;
5296 static int
5297 svcctl_dissect_element_EnumServicesStatusA_service_state(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5299 offset = svcctl_dissect_enum_ServiceState(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_EnumServicesStatusA_service_state, 0);
5301 return offset;
5304 static int
5305 svcctl_dissect_element_EnumServicesStatusA_offered(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5307 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_EnumServicesStatusA_offered, 0);
5309 return offset;
5312 static int
5313 svcctl_dissect_element_EnumServicesStatusA_service(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5315 offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_EnumServicesStatusA_service_);
5317 return offset;
5320 static int
5321 svcctl_dissect_element_EnumServicesStatusA_service_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5323 offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_EnumServicesStatusA_service, 0);
5325 return offset;
5328 static int
5329 svcctl_dissect_element_EnumServicesStatusA_needed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5331 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_EnumServicesStatusA_needed_, NDR_POINTER_REF, "Pointer to Needed (uint32)",hf_svcctl_svcctl_EnumServicesStatusA_needed);
5333 return offset;
5336 static int
5337 svcctl_dissect_element_EnumServicesStatusA_needed_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5339 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_EnumServicesStatusA_needed, 0);
5341 return offset;
5344 static int
5345 svcctl_dissect_element_EnumServicesStatusA_services_returned(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5347 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_EnumServicesStatusA_services_returned_, NDR_POINTER_REF, "Pointer to Services Returned (uint32)",hf_svcctl_svcctl_EnumServicesStatusA_services_returned);
5349 return offset;
5352 static int
5353 svcctl_dissect_element_EnumServicesStatusA_services_returned_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5355 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_EnumServicesStatusA_services_returned, 0);
5357 return offset;
5360 static int
5361 svcctl_dissect_element_EnumServicesStatusA_resume_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5363 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_EnumServicesStatusA_resume_handle_, NDR_POINTER_UNIQUE, "Pointer to Resume Handle (uint32)",hf_svcctl_svcctl_EnumServicesStatusA_resume_handle);
5365 return offset;
5368 static int
5369 svcctl_dissect_element_EnumServicesStatusA_resume_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5371 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_EnumServicesStatusA_resume_handle, 0);
5373 return offset;
5376 /* IDL: WERROR svcctl_EnumServicesStatusA( */
5377 /* IDL: [in] [ref] policy_handle *scm_handle, */
5378 /* IDL: [in] svcctl_ServiceType service_type, */
5379 /* IDL: [in] svcctl_ServiceState service_state, */
5380 /* IDL: [in] uint32 offered, */
5381 /* IDL: [out] [size_is(offered)] uint8 service[*], */
5382 /* IDL: [out] [ref] uint32 *needed, */
5383 /* IDL: [out] [ref] uint32 *services_returned, */
5384 /* IDL: [in] [out] [unique(1)] uint32 *resume_handle */
5385 /* IDL: ); */
5387 static int
5388 svcctl_dissect_EnumServicesStatusA_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5390 uint32_t status;
5392 di->dcerpc_procedure_name="EnumServicesStatusA";
5393 offset = svcctl_dissect_element_EnumServicesStatusA_service(tvb, offset, pinfo, tree, di, drep);
5394 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
5396 offset = svcctl_dissect_element_EnumServicesStatusA_needed(tvb, offset, pinfo, tree, di, drep);
5397 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
5399 offset = svcctl_dissect_element_EnumServicesStatusA_services_returned(tvb, offset, pinfo, tree, di, drep);
5400 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
5402 offset = svcctl_dissect_element_EnumServicesStatusA_resume_handle(tvb, offset, pinfo, tree, di, drep);
5403 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
5405 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_werror, &status);
5407 if (status != 0)
5408 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(status, &WERR_errors_ext, "Unknown DOS error 0x%08x"));
5410 return offset;
5413 static int
5414 svcctl_dissect_EnumServicesStatusA_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5416 di->dcerpc_procedure_name="EnumServicesStatusA";
5417 offset = svcctl_dissect_element_EnumServicesStatusA_scm_handle(tvb, offset, pinfo, tree, di, drep);
5418 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
5419 offset = svcctl_dissect_element_EnumServicesStatusA_service_type(tvb, offset, pinfo, tree, di, drep);
5420 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
5421 offset = svcctl_dissect_element_EnumServicesStatusA_service_state(tvb, offset, pinfo, tree, di, drep);
5422 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
5423 offset = svcctl_dissect_element_EnumServicesStatusA_offered(tvb, offset, pinfo, tree, di, drep);
5424 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
5425 offset = svcctl_dissect_element_EnumServicesStatusA_resume_handle(tvb, offset, pinfo, tree, di, drep);
5426 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
5427 return offset;
5430 static int
5431 svcctl_dissect_element_OpenSCManagerA_MachineName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5433 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_OpenSCManagerA_MachineName_, NDR_POINTER_UNIQUE, "Pointer to MachineName (uint8)",hf_svcctl_svcctl_OpenSCManagerA_MachineName);
5435 return offset;
5438 static int
5439 svcctl_dissect_element_OpenSCManagerA_MachineName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5441 char *data;
5443 offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(uint8_t), hf_svcctl_svcctl_OpenSCManagerA_MachineName, false, &data);
5444 proto_item_append_text(tree, ": %s", data);
5446 return offset;
5449 static int
5450 svcctl_dissect_element_OpenSCManagerA_DatabaseName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5452 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_OpenSCManagerA_DatabaseName_, NDR_POINTER_UNIQUE, "Pointer to DatabaseName (uint8)",hf_svcctl_svcctl_OpenSCManagerA_DatabaseName);
5454 return offset;
5457 static int
5458 svcctl_dissect_element_OpenSCManagerA_DatabaseName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5460 char *data;
5462 offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(uint8_t), hf_svcctl_svcctl_OpenSCManagerA_DatabaseName, false, &data);
5463 proto_item_append_text(tree, ": %s", data);
5465 return offset;
5468 static int
5469 svcctl_dissect_element_OpenSCManagerA_access_mask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5471 offset = svcctl_dissect_bitmap_MgrAccessMask(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_OpenSCManagerA_access_mask, 0);
5473 return offset;
5476 static int
5477 svcctl_dissect_element_OpenSCManagerA_scm_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5479 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_OpenSCManagerA_scm_handle_, NDR_POINTER_REF, "Pointer to Scm Handle (policy_handle)",hf_svcctl_svcctl_OpenSCManagerA_scm_handle);
5481 return offset;
5484 static int
5485 svcctl_dissect_element_OpenSCManagerA_scm_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5487 offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_OpenSCManagerA_scm_handle, 0);
5489 return offset;
5492 /* IDL: WERROR svcctl_OpenSCManagerA( */
5493 /* IDL: [charset(ASCII)] [in] [unique(1)] uint8 *MachineName, */
5494 /* IDL: [charset(ASCII)] [in] [unique(1)] uint8 *DatabaseName, */
5495 /* IDL: [in] svcctl_MgrAccessMask access_mask, */
5496 /* IDL: [out] [ref] policy_handle *scm_handle */
5497 /* IDL: ); */
5499 static int
5500 svcctl_dissect_OpenSCManagerA_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5502 uint32_t status;
5504 di->dcerpc_procedure_name="OpenSCManagerA";
5505 offset = svcctl_dissect_element_OpenSCManagerA_scm_handle(tvb, offset, pinfo, tree, di, drep);
5506 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
5508 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_werror, &status);
5510 if (status != 0)
5511 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(status, &WERR_errors_ext, "Unknown DOS error 0x%08x"));
5513 return offset;
5516 static int
5517 svcctl_dissect_OpenSCManagerA_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5519 di->dcerpc_procedure_name="OpenSCManagerA";
5520 offset = svcctl_dissect_element_OpenSCManagerA_MachineName(tvb, offset, pinfo, tree, di, drep);
5521 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
5522 offset = svcctl_dissect_element_OpenSCManagerA_DatabaseName(tvb, offset, pinfo, tree, di, drep);
5523 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
5524 offset = svcctl_dissect_element_OpenSCManagerA_access_mask(tvb, offset, pinfo, tree, di, drep);
5525 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
5526 return offset;
5529 static int
5530 svcctl_dissect_element_OpenServiceA_scm_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5532 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_OpenServiceA_scm_handle_, NDR_POINTER_REF, "Pointer to Scm Handle (policy_handle)",hf_svcctl_svcctl_OpenServiceA_scm_handle);
5534 return offset;
5537 static int
5538 svcctl_dissect_element_OpenServiceA_scm_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5540 offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_OpenServiceA_scm_handle, 0);
5542 return offset;
5545 static int
5546 svcctl_dissect_element_OpenServiceA_ServiceName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5548 char *data;
5550 offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(uint8_t), hf_svcctl_svcctl_OpenServiceA_ServiceName, false, &data);
5551 proto_item_append_text(tree, ": %s", data);
5553 return offset;
5556 static int
5557 svcctl_dissect_element_OpenServiceA_access_mask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5559 offset = svcctl_dissect_bitmap_MgrAccessMask(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_OpenServiceA_access_mask, 0);
5561 return offset;
5564 static int
5565 svcctl_dissect_element_OpenServiceA_service_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5567 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_OpenServiceA_service_handle_, NDR_POINTER_REF, "Pointer to Service Handle (policy_handle)",hf_svcctl_svcctl_OpenServiceA_service_handle);
5569 return offset;
5572 static int
5573 svcctl_dissect_element_OpenServiceA_service_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5575 offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_OpenServiceA_service_handle, 0);
5577 return offset;
5580 /* IDL: WERROR svcctl_OpenServiceA( */
5581 /* IDL: [in] [ref] policy_handle *scm_handle, */
5582 /* IDL: [charset(ASCII)] [in] uint8 ServiceName[*], */
5583 /* IDL: [in] svcctl_MgrAccessMask access_mask, */
5584 /* IDL: [out] [ref] policy_handle *service_handle */
5585 /* IDL: ); */
5587 static int
5588 svcctl_dissect_OpenServiceA_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5590 uint32_t status;
5592 di->dcerpc_procedure_name="OpenServiceA";
5593 offset = svcctl_dissect_element_OpenServiceA_service_handle(tvb, offset, pinfo, tree, di, drep);
5594 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
5596 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_werror, &status);
5598 if (status != 0)
5599 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(status, &WERR_errors_ext, "Unknown DOS error 0x%08x"));
5601 return offset;
5604 static int
5605 svcctl_dissect_OpenServiceA_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5607 di->dcerpc_procedure_name="OpenServiceA";
5608 offset = svcctl_dissect_element_OpenServiceA_scm_handle(tvb, offset, pinfo, tree, di, drep);
5609 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
5610 offset = svcctl_dissect_element_OpenServiceA_ServiceName(tvb, offset, pinfo, tree, di, drep);
5611 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
5612 offset = svcctl_dissect_element_OpenServiceA_access_mask(tvb, offset, pinfo, tree, di, drep);
5613 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
5614 return offset;
5617 static int
5618 svcctl_dissect_element_QueryServiceConfigA_service_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5620 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_QueryServiceConfigA_service_handle_, NDR_POINTER_REF, "Pointer to Service Handle (policy_handle)",hf_svcctl_svcctl_QueryServiceConfigA_service_handle);
5622 return offset;
5625 static int
5626 svcctl_dissect_element_QueryServiceConfigA_service_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5628 offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_QueryServiceConfigA_service_handle, 0);
5630 return offset;
5633 static int
5634 svcctl_dissect_element_QueryServiceConfigA_query(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5636 offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_QueryServiceConfigA_query_);
5638 return offset;
5641 static int
5642 svcctl_dissect_element_QueryServiceConfigA_query_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5644 offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_QueryServiceConfigA_query, 0);
5646 return offset;
5649 static int
5650 svcctl_dissect_element_QueryServiceConfigA_offered(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5652 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_QueryServiceConfigA_offered, 0);
5654 return offset;
5657 static int
5658 svcctl_dissect_element_QueryServiceConfigA_needed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5660 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_QueryServiceConfigA_needed_, NDR_POINTER_REF, "Pointer to Needed (uint32)",hf_svcctl_svcctl_QueryServiceConfigA_needed);
5662 return offset;
5665 static int
5666 svcctl_dissect_element_QueryServiceConfigA_needed_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5668 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_QueryServiceConfigA_needed, 0);
5670 return offset;
5673 /* IDL: WERROR svcctl_QueryServiceConfigA( */
5674 /* IDL: [in] [ref] policy_handle *service_handle, */
5675 /* IDL: [out] [size_is(cbBufSize)] uint8 query[*], */
5676 /* IDL: [in] uint32 offered, */
5677 /* IDL: [out] [ref] uint32 *needed */
5678 /* IDL: ); */
5680 static int
5681 svcctl_dissect_QueryServiceConfigA_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5683 uint32_t status;
5685 di->dcerpc_procedure_name="QueryServiceConfigA";
5686 offset = svcctl_dissect_element_QueryServiceConfigA_query(tvb, offset, pinfo, tree, di, drep);
5687 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
5689 offset = svcctl_dissect_element_QueryServiceConfigA_needed(tvb, offset, pinfo, tree, di, drep);
5690 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
5692 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_werror, &status);
5694 if (status != 0)
5695 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(status, &WERR_errors_ext, "Unknown DOS error 0x%08x"));
5697 return offset;
5700 static int
5701 svcctl_dissect_QueryServiceConfigA_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5703 di->dcerpc_procedure_name="QueryServiceConfigA";
5704 offset = svcctl_dissect_element_QueryServiceConfigA_service_handle(tvb, offset, pinfo, tree, di, drep);
5705 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
5706 offset = svcctl_dissect_element_QueryServiceConfigA_offered(tvb, offset, pinfo, tree, di, drep);
5707 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
5708 return offset;
5711 static int
5712 svcctl_dissect_element_QueryServiceLockStatusA_scm_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5714 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_QueryServiceLockStatusA_scm_handle_, NDR_POINTER_REF, "Pointer to Scm Handle (policy_handle)",hf_svcctl_svcctl_QueryServiceLockStatusA_scm_handle);
5716 return offset;
5719 static int
5720 svcctl_dissect_element_QueryServiceLockStatusA_scm_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5722 offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_QueryServiceLockStatusA_scm_handle, 0);
5724 return offset;
5727 static int
5728 svcctl_dissect_element_QueryServiceLockStatusA_lock_status(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5730 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_QueryServiceLockStatusA_lock_status_, NDR_POINTER_REF, "Pointer to Lock Status (SERVICE_LOCK_STATUS)",hf_svcctl_svcctl_QueryServiceLockStatusA_lock_status);
5732 return offset;
5735 static int
5736 svcctl_dissect_element_QueryServiceLockStatusA_lock_status_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5738 offset = svcctl_dissect_struct_SERVICE_LOCK_STATUS(tvb,offset,pinfo,tree,di,drep,hf_svcctl_svcctl_QueryServiceLockStatusA_lock_status,0);
5740 return offset;
5743 static int
5744 svcctl_dissect_element_QueryServiceLockStatusA_offered(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5746 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_QueryServiceLockStatusA_offered, 0);
5748 return offset;
5751 static int
5752 svcctl_dissect_element_QueryServiceLockStatusA_needed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5754 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_QueryServiceLockStatusA_needed_, NDR_POINTER_REF, "Pointer to Needed (uint32)",hf_svcctl_svcctl_QueryServiceLockStatusA_needed);
5756 return offset;
5759 static int
5760 svcctl_dissect_element_QueryServiceLockStatusA_needed_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5762 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_QueryServiceLockStatusA_needed, 0);
5764 return offset;
5767 /* IDL: WERROR svcctl_QueryServiceLockStatusA( */
5768 /* IDL: [in] [ref] policy_handle *scm_handle, */
5769 /* IDL: [out] [ref] SERVICE_LOCK_STATUS *lock_status, */
5770 /* IDL: [in] uint32 offered, */
5771 /* IDL: [out] [ref] uint32 *needed */
5772 /* IDL: ); */
5774 static int
5775 svcctl_dissect_QueryServiceLockStatusA_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5777 uint32_t status;
5779 di->dcerpc_procedure_name="QueryServiceLockStatusA";
5780 offset = svcctl_dissect_element_QueryServiceLockStatusA_lock_status(tvb, offset, pinfo, tree, di, drep);
5781 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
5783 offset = svcctl_dissect_element_QueryServiceLockStatusA_needed(tvb, offset, pinfo, tree, di, drep);
5784 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
5786 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_werror, &status);
5788 if (status != 0)
5789 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(status, &WERR_errors_ext, "Unknown DOS error 0x%08x"));
5791 return offset;
5794 static int
5795 svcctl_dissect_QueryServiceLockStatusA_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5797 di->dcerpc_procedure_name="QueryServiceLockStatusA";
5798 offset = svcctl_dissect_element_QueryServiceLockStatusA_scm_handle(tvb, offset, pinfo, tree, di, drep);
5799 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
5800 offset = svcctl_dissect_element_QueryServiceLockStatusA_offered(tvb, offset, pinfo, tree, di, drep);
5801 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
5802 return offset;
5805 static int
5806 svcctl_dissect_element_StartServiceA_service_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5808 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_StartServiceA_service_handle_, NDR_POINTER_REF, "Pointer to Service Handle (policy_handle)",hf_svcctl_svcctl_StartServiceA_service_handle);
5810 return offset;
5813 static int
5814 svcctl_dissect_element_StartServiceA_service_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5816 offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_StartServiceA_service_handle, 0);
5818 return offset;
5821 static int
5822 svcctl_dissect_element_StartServiceA_NumArgs(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5824 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_StartServiceA_NumArgs, 0);
5826 return offset;
5829 static int
5830 svcctl_dissect_element_StartServiceA_Arguments(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5832 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_StartServiceA_Arguments_, NDR_POINTER_UNIQUE, "Pointer to Arguments (svcctl_ArgumentStringA)",hf_svcctl_svcctl_StartServiceA_Arguments);
5834 return offset;
5837 static int
5838 svcctl_dissect_element_StartServiceA_Arguments_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5840 offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_StartServiceA_Arguments__);
5842 return offset;
5845 static int
5846 svcctl_dissect_element_StartServiceA_Arguments__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5848 offset = svcctl_dissect_struct_ArgumentStringA(tvb,offset,pinfo,tree,di,drep,hf_svcctl_svcctl_StartServiceA_Arguments,0);
5850 return offset;
5853 /* IDL: WERROR svcctl_StartServiceA( */
5854 /* IDL: [in] [ref] policy_handle *service_handle, */
5855 /* IDL: [in] uint32 NumArgs, */
5856 /* IDL: [in] [size_is(NumArgs)] [unique(1)] svcctl_ArgumentStringA *Arguments */
5857 /* IDL: ); */
5859 static int
5860 svcctl_dissect_StartServiceA_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5862 uint32_t status;
5864 di->dcerpc_procedure_name="StartServiceA";
5865 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_werror, &status);
5867 if (status != 0)
5868 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(status, &WERR_errors_ext, "Unknown DOS error 0x%08x"));
5870 return offset;
5873 static int
5874 svcctl_dissect_StartServiceA_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5876 di->dcerpc_procedure_name="StartServiceA";
5877 offset = svcctl_dissect_element_StartServiceA_service_handle(tvb, offset, pinfo, tree, di, drep);
5878 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
5879 offset = svcctl_dissect_element_StartServiceA_NumArgs(tvb, offset, pinfo, tree, di, drep);
5880 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
5881 offset = svcctl_dissect_element_StartServiceA_Arguments(tvb, offset, pinfo, tree, di, drep);
5882 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
5883 return offset;
5886 static int
5887 svcctl_dissect_element_GetServiceDisplayNameA_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5889 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_GetServiceDisplayNameA_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_svcctl_svcctl_GetServiceDisplayNameA_handle);
5891 return offset;
5894 static int
5895 svcctl_dissect_element_GetServiceDisplayNameA_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5897 offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_GetServiceDisplayNameA_handle, 0);
5899 return offset;
5902 static int
5903 svcctl_dissect_element_GetServiceDisplayNameA_service_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5905 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_GetServiceDisplayNameA_service_name_, NDR_POINTER_UNIQUE, "Pointer to Service Name (string)",hf_svcctl_svcctl_GetServiceDisplayNameA_service_name);
5907 return offset;
5910 static int
5911 svcctl_dissect_element_GetServiceDisplayNameA_service_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5913 offset = dissect_null_term_string(tvb, offset, pinfo, tree, drep, hf_svcctl_svcctl_GetServiceDisplayNameA_service_name , 0);
5915 return offset;
5918 static int
5919 svcctl_dissect_element_GetServiceDisplayNameA_display_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5921 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_GetServiceDisplayNameA_display_name_, NDR_POINTER_REF, "Pointer to Display Name (uint8)",hf_svcctl_svcctl_GetServiceDisplayNameA_display_name);
5923 return offset;
5926 static int
5927 svcctl_dissect_element_GetServiceDisplayNameA_display_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5929 offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_GetServiceDisplayNameA_display_name__, NDR_POINTER_UNIQUE, "Pointer to Display Name (uint8)",hf_svcctl_svcctl_GetServiceDisplayNameA_display_name);
5931 return offset;
5934 static int
5935 svcctl_dissect_element_GetServiceDisplayNameA_display_name__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5937 char *data;
5939 offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(uint8_t), hf_svcctl_svcctl_GetServiceDisplayNameA_display_name, false, &data);
5940 proto_item_append_text(tree, ": %s", data);
5942 return offset;
5945 static int
5946 svcctl_dissect_element_GetServiceDisplayNameA_display_name_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5948 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_GetServiceDisplayNameA_display_name_length_, NDR_POINTER_UNIQUE, "Pointer to Display Name Length (uint32)",hf_svcctl_svcctl_GetServiceDisplayNameA_display_name_length);
5950 return offset;
5953 static int
5954 svcctl_dissect_element_GetServiceDisplayNameA_display_name_length_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5956 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_GetServiceDisplayNameA_display_name_length, 0);
5958 return offset;
5961 /* IDL: WERROR svcctl_GetServiceDisplayNameA( */
5962 /* IDL: [in] [ref] policy_handle *handle, */
5963 /* IDL: [flag(LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM)] [in] [unique(1)] string *service_name, */
5964 /* IDL: [charset(ASCII)] [out] [ref] uint8 **display_name, */
5965 /* IDL: [in] [out] [unique(1)] uint32 *display_name_length */
5966 /* IDL: ); */
5968 static int
5969 svcctl_dissect_GetServiceDisplayNameA_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5971 uint32_t status;
5973 di->dcerpc_procedure_name="GetServiceDisplayNameA";
5974 offset = svcctl_dissect_element_GetServiceDisplayNameA_display_name(tvb, offset, pinfo, tree, di, drep);
5975 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
5977 offset = svcctl_dissect_element_GetServiceDisplayNameA_display_name_length(tvb, offset, pinfo, tree, di, drep);
5978 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
5980 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_werror, &status);
5982 if (status != 0)
5983 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(status, &WERR_errors_ext, "Unknown DOS error 0x%08x"));
5985 return offset;
5988 static int
5989 svcctl_dissect_GetServiceDisplayNameA_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5991 di->dcerpc_procedure_name="GetServiceDisplayNameA";
5992 offset = svcctl_dissect_element_GetServiceDisplayNameA_handle(tvb, offset, pinfo, tree, di, drep);
5993 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
5994 offset = svcctl_dissect_element_GetServiceDisplayNameA_service_name(tvb, offset, pinfo, tree, di, drep);
5995 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
5996 offset = svcctl_dissect_element_GetServiceDisplayNameA_display_name_length(tvb, offset, pinfo, tree, di, drep);
5997 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
5998 return offset;
6001 static int
6002 svcctl_dissect_element_GetServiceKeyNameA_scm_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6004 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_GetServiceKeyNameA_scm_handle_, NDR_POINTER_REF, "Pointer to Scm Handle (policy_handle)",hf_svcctl_svcctl_GetServiceKeyNameA_scm_handle);
6006 return offset;
6009 static int
6010 svcctl_dissect_element_GetServiceKeyNameA_scm_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6012 offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_GetServiceKeyNameA_scm_handle, 0);
6014 return offset;
6017 static int
6018 svcctl_dissect_element_GetServiceKeyNameA_service_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6020 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_GetServiceKeyNameA_service_name_, NDR_POINTER_UNIQUE, "Pointer to Service Name (string)",hf_svcctl_svcctl_GetServiceKeyNameA_service_name);
6022 return offset;
6025 static int
6026 svcctl_dissect_element_GetServiceKeyNameA_service_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6028 offset = dissect_null_term_string(tvb, offset, pinfo, tree, drep, hf_svcctl_svcctl_GetServiceKeyNameA_service_name , 0);
6030 return offset;
6033 static int
6034 svcctl_dissect_element_GetServiceKeyNameA_key_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6036 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_GetServiceKeyNameA_key_name_, NDR_POINTER_REF, "Pointer to Key Name (uint8)",hf_svcctl_svcctl_GetServiceKeyNameA_key_name);
6038 return offset;
6041 static int
6042 svcctl_dissect_element_GetServiceKeyNameA_key_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6044 offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_GetServiceKeyNameA_key_name__, NDR_POINTER_UNIQUE, "Pointer to Key Name (uint8)",hf_svcctl_svcctl_GetServiceKeyNameA_key_name);
6046 return offset;
6049 static int
6050 svcctl_dissect_element_GetServiceKeyNameA_key_name__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6052 char *data;
6054 offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(uint8_t), hf_svcctl_svcctl_GetServiceKeyNameA_key_name, false, &data);
6055 proto_item_append_text(tree, ": %s", data);
6057 return offset;
6060 static int
6061 svcctl_dissect_element_GetServiceKeyNameA_display_name_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6063 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_GetServiceKeyNameA_display_name_length_, NDR_POINTER_UNIQUE, "Pointer to Display Name Length (uint32)",hf_svcctl_svcctl_GetServiceKeyNameA_display_name_length);
6065 return offset;
6068 static int
6069 svcctl_dissect_element_GetServiceKeyNameA_display_name_length_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6071 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_GetServiceKeyNameA_display_name_length, 0);
6073 return offset;
6076 /* IDL: WERROR svcctl_GetServiceKeyNameA( */
6077 /* IDL: [in] [ref] policy_handle *scm_handle, */
6078 /* IDL: [flag(LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM)] [in] [unique(1)] string *service_name, */
6079 /* IDL: [charset(ASCII)] [out] [ref] uint8 **key_name, */
6080 /* IDL: [in] [out] [unique(1)] uint32 *display_name_length */
6081 /* IDL: ); */
6083 static int
6084 svcctl_dissect_GetServiceKeyNameA_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6086 uint32_t status;
6088 di->dcerpc_procedure_name="GetServiceKeyNameA";
6089 offset = svcctl_dissect_element_GetServiceKeyNameA_key_name(tvb, offset, pinfo, tree, di, drep);
6090 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
6092 offset = svcctl_dissect_element_GetServiceKeyNameA_display_name_length(tvb, offset, pinfo, tree, di, drep);
6093 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
6095 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_werror, &status);
6097 if (status != 0)
6098 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(status, &WERR_errors_ext, "Unknown DOS error 0x%08x"));
6100 return offset;
6103 static int
6104 svcctl_dissect_GetServiceKeyNameA_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6106 di->dcerpc_procedure_name="GetServiceKeyNameA";
6107 offset = svcctl_dissect_element_GetServiceKeyNameA_scm_handle(tvb, offset, pinfo, tree, di, drep);
6108 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
6109 offset = svcctl_dissect_element_GetServiceKeyNameA_service_name(tvb, offset, pinfo, tree, di, drep);
6110 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
6111 offset = svcctl_dissect_element_GetServiceKeyNameA_display_name_length(tvb, offset, pinfo, tree, di, drep);
6112 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
6113 return offset;
6116 static int
6117 svcctl_dissect_element_GetCurrentGroupeStateW_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6119 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_GetCurrentGroupeStateW_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_svcctl_svcctl_GetCurrentGroupeStateW_handle);
6121 return offset;
6124 static int
6125 svcctl_dissect_element_GetCurrentGroupeStateW_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6127 offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_GetCurrentGroupeStateW_handle, 0);
6129 return offset;
6132 static int
6133 svcctl_dissect_element_GetCurrentGroupeStateW_lpLoadOrderGroup(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6135 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_GetCurrentGroupeStateW_lpLoadOrderGroup_, NDR_POINTER_UNIQUE, "Pointer to LpLoadOrderGroup (uint16)",hf_svcctl_svcctl_GetCurrentGroupeStateW_lpLoadOrderGroup);
6137 return offset;
6140 static int
6141 svcctl_dissect_element_GetCurrentGroupeStateW_lpLoadOrderGroup_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6143 char *data;
6145 offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(uint16_t), hf_svcctl_svcctl_GetCurrentGroupeStateW_lpLoadOrderGroup, false, &data);
6146 proto_item_append_text(tree, ": %s", data);
6148 return offset;
6151 static int
6152 svcctl_dissect_element_GetCurrentGroupeStateW_state(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6154 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_GetCurrentGroupeStateW_state_, NDR_POINTER_REF, "Pointer to State (uint32)",hf_svcctl_svcctl_GetCurrentGroupeStateW_state);
6156 return offset;
6159 static int
6160 svcctl_dissect_element_GetCurrentGroupeStateW_state_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6162 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_GetCurrentGroupeStateW_state, 0);
6164 return offset;
6167 /* IDL: WERROR svcctl_GetCurrentGroupeStateW( */
6168 /* IDL: [in] [ref] policy_handle *handle, */
6169 /* IDL: [charset(UTF16)] [in] [unique(1)] uint16 *lpLoadOrderGroup, */
6170 /* IDL: [out] [ref] uint32 *state */
6171 /* IDL: ); */
6173 static int
6174 svcctl_dissect_GetCurrentGroupeStateW_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6176 uint32_t status;
6178 di->dcerpc_procedure_name="GetCurrentGroupeStateW";
6179 offset = svcctl_dissect_element_GetCurrentGroupeStateW_state(tvb, offset, pinfo, tree, di, drep);
6180 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
6182 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_werror, &status);
6184 if (status != 0)
6185 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(status, &WERR_errors_ext, "Unknown DOS error 0x%08x"));
6187 return offset;
6190 static int
6191 svcctl_dissect_GetCurrentGroupeStateW_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6193 di->dcerpc_procedure_name="GetCurrentGroupeStateW";
6194 offset = svcctl_dissect_element_GetCurrentGroupeStateW_handle(tvb, offset, pinfo, tree, di, drep);
6195 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
6196 offset = svcctl_dissect_element_GetCurrentGroupeStateW_lpLoadOrderGroup(tvb, offset, pinfo, tree, di, drep);
6197 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
6198 return offset;
6201 static int
6202 svcctl_dissect_element_EnumServiceGroupW_scm_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6204 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_EnumServiceGroupW_scm_handle_, NDR_POINTER_REF, "Pointer to Scm Handle (policy_handle)",hf_svcctl_svcctl_EnumServiceGroupW_scm_handle);
6206 return offset;
6209 static int
6210 svcctl_dissect_element_EnumServiceGroupW_scm_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6212 offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_EnumServiceGroupW_scm_handle, 0);
6214 return offset;
6217 static int
6218 svcctl_dissect_element_EnumServiceGroupW_service_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6220 offset = svcctl_dissect_enum_ServiceType(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_EnumServiceGroupW_service_type, 0);
6222 return offset;
6225 static int
6226 svcctl_dissect_element_EnumServiceGroupW_service_state(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6228 offset = svcctl_dissect_enum_ServiceState(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_EnumServiceGroupW_service_state, 0);
6230 return offset;
6233 static int
6234 svcctl_dissect_element_EnumServiceGroupW_lpBuffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6236 offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_EnumServiceGroupW_lpBuffer_);
6238 return offset;
6241 static int
6242 svcctl_dissect_element_EnumServiceGroupW_lpBuffer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6244 offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_EnumServiceGroupW_lpBuffer, 0);
6246 return offset;
6249 static int
6250 svcctl_dissect_element_EnumServiceGroupW_cbBufSize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6252 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_EnumServiceGroupW_cbBufSize, 0);
6254 return offset;
6257 static int
6258 svcctl_dissect_element_EnumServiceGroupW_pcbBytesNeeded(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6260 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_EnumServiceGroupW_pcbBytesNeeded_, NDR_POINTER_REF, "Pointer to PcbBytesNeeded (uint32)",hf_svcctl_svcctl_EnumServiceGroupW_pcbBytesNeeded);
6262 return offset;
6265 static int
6266 svcctl_dissect_element_EnumServiceGroupW_pcbBytesNeeded_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6268 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_EnumServiceGroupW_pcbBytesNeeded, 0);
6270 return offset;
6273 static int
6274 svcctl_dissect_element_EnumServiceGroupW_lpServicesReturned(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6276 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_EnumServiceGroupW_lpServicesReturned_, NDR_POINTER_REF, "Pointer to LpServicesReturned (uint32)",hf_svcctl_svcctl_EnumServiceGroupW_lpServicesReturned);
6278 return offset;
6281 static int
6282 svcctl_dissect_element_EnumServiceGroupW_lpServicesReturned_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6284 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_EnumServiceGroupW_lpServicesReturned, 0);
6286 return offset;
6289 static int
6290 svcctl_dissect_element_EnumServiceGroupW_ResumeIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6292 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_EnumServiceGroupW_ResumeIndex_, NDR_POINTER_UNIQUE, "Pointer to ResumeIndex (uint32)",hf_svcctl_svcctl_EnumServiceGroupW_ResumeIndex);
6294 return offset;
6297 static int
6298 svcctl_dissect_element_EnumServiceGroupW_ResumeIndex_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6300 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_EnumServiceGroupW_ResumeIndex, 0);
6302 return offset;
6305 static int
6306 svcctl_dissect_element_EnumServiceGroupW_pszGroupName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6308 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_EnumServiceGroupW_pszGroupName_, NDR_POINTER_UNIQUE, "Pointer to PszGroupName (uint16)",hf_svcctl_svcctl_EnumServiceGroupW_pszGroupName);
6310 return offset;
6313 static int
6314 svcctl_dissect_element_EnumServiceGroupW_pszGroupName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6316 char *data;
6318 offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(uint16_t), hf_svcctl_svcctl_EnumServiceGroupW_pszGroupName, false, &data);
6319 proto_item_append_text(tree, ": %s", data);
6321 return offset;
6324 /* IDL: WERROR svcctl_EnumServiceGroupW( */
6325 /* IDL: [in] [ref] policy_handle *scm_handle, */
6326 /* IDL: [in] svcctl_ServiceType service_type, */
6327 /* IDL: [in] svcctl_ServiceState service_state, */
6328 /* IDL: [out] [size_is(cbBufSize)] uint8 lpBuffer[*], */
6329 /* IDL: [in] [range(0,1024*256)] uint32 cbBufSize, */
6330 /* IDL: [out] [range(0,1024*256)] [ref] uint32 *pcbBytesNeeded, */
6331 /* IDL: [out] [range(0,1024*256)] [ref] uint32 *lpServicesReturned, */
6332 /* IDL: [in] [out] [unique(1)] uint32 *ResumeIndex, */
6333 /* IDL: [charset(UTF16)] [in] [range(0,SC_MAX_NAME_LENGTH)] [unique(1)] uint16 *pszGroupName */
6334 /* IDL: ); */
6336 static int
6337 svcctl_dissect_EnumServiceGroupW_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6339 uint32_t status;
6341 di->dcerpc_procedure_name="EnumServiceGroupW";
6342 offset = svcctl_dissect_element_EnumServiceGroupW_lpBuffer(tvb, offset, pinfo, tree, di, drep);
6343 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
6345 offset = svcctl_dissect_element_EnumServiceGroupW_pcbBytesNeeded(tvb, offset, pinfo, tree, di, drep);
6346 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
6348 offset = svcctl_dissect_element_EnumServiceGroupW_lpServicesReturned(tvb, offset, pinfo, tree, di, drep);
6349 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
6351 offset = svcctl_dissect_element_EnumServiceGroupW_ResumeIndex(tvb, offset, pinfo, tree, di, drep);
6352 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
6354 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_werror, &status);
6356 if (status != 0)
6357 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(status, &WERR_errors_ext, "Unknown DOS error 0x%08x"));
6359 return offset;
6362 static int
6363 svcctl_dissect_EnumServiceGroupW_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6365 di->dcerpc_procedure_name="EnumServiceGroupW";
6366 offset = svcctl_dissect_element_EnumServiceGroupW_scm_handle(tvb, offset, pinfo, tree, di, drep);
6367 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
6368 offset = svcctl_dissect_element_EnumServiceGroupW_service_type(tvb, offset, pinfo, tree, di, drep);
6369 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
6370 offset = svcctl_dissect_element_EnumServiceGroupW_service_state(tvb, offset, pinfo, tree, di, drep);
6371 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
6372 offset = svcctl_dissect_element_EnumServiceGroupW_cbBufSize(tvb, offset, pinfo, tree, di, drep);
6373 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
6374 offset = svcctl_dissect_element_EnumServiceGroupW_ResumeIndex(tvb, offset, pinfo, tree, di, drep);
6375 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
6376 offset = svcctl_dissect_element_EnumServiceGroupW_pszGroupName(tvb, offset, pinfo, tree, di, drep);
6377 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
6378 return offset;
6381 static int
6382 svcctl_dissect_element_ChangeServiceConfig2A_service_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6384 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_ChangeServiceConfig2A_service_handle_, NDR_POINTER_REF, "Pointer to Service Handle (policy_handle)",hf_svcctl_svcctl_ChangeServiceConfig2A_service_handle);
6386 return offset;
6389 static int
6390 svcctl_dissect_element_ChangeServiceConfig2A_service_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6392 offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_ChangeServiceConfig2A_service_handle, 0);
6394 return offset;
6397 static int
6398 svcctl_dissect_element_ChangeServiceConfig2A_info_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6400 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_ChangeServiceConfig2A_info_level, 0);
6402 return offset;
6405 static int
6406 svcctl_dissect_element_ChangeServiceConfig2A_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6408 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_ChangeServiceConfig2A_info_, NDR_POINTER_UNIQUE, "Pointer to Info (uint8)",hf_svcctl_svcctl_ChangeServiceConfig2A_info);
6410 return offset;
6413 static int
6414 svcctl_dissect_element_ChangeServiceConfig2A_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6416 offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_ChangeServiceConfig2A_info, 0);
6418 return offset;
6421 /* IDL: WERROR svcctl_ChangeServiceConfig2A( */
6422 /* IDL: [in] [ref] policy_handle *service_handle, */
6423 /* IDL: [in] uint32 info_level, */
6424 /* IDL: [in] [unique(1)] uint8 *info */
6425 /* IDL: ); */
6427 static int
6428 svcctl_dissect_ChangeServiceConfig2A_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6430 uint32_t status;
6432 di->dcerpc_procedure_name="ChangeServiceConfig2A";
6433 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_werror, &status);
6435 if (status != 0)
6436 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(status, &WERR_errors_ext, "Unknown DOS error 0x%08x"));
6438 return offset;
6441 static int
6442 svcctl_dissect_ChangeServiceConfig2A_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6444 di->dcerpc_procedure_name="ChangeServiceConfig2A";
6445 offset = svcctl_dissect_element_ChangeServiceConfig2A_service_handle(tvb, offset, pinfo, tree, di, drep);
6446 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
6447 offset = svcctl_dissect_element_ChangeServiceConfig2A_info_level(tvb, offset, pinfo, tree, di, drep);
6448 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
6449 offset = svcctl_dissect_element_ChangeServiceConfig2A_info(tvb, offset, pinfo, tree, di, drep);
6450 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
6451 return offset;
6454 static int
6455 svcctl_dissect_element_ChangeServiceConfig2W_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6457 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_ChangeServiceConfig2W_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_svcctl_svcctl_ChangeServiceConfig2W_handle);
6459 return offset;
6462 static int
6463 svcctl_dissect_element_ChangeServiceConfig2W_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6465 offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_ChangeServiceConfig2W_handle, 0);
6467 return offset;
6470 static int
6471 svcctl_dissect_element_ChangeServiceConfig2W_info_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6473 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_ChangeServiceConfig2W_info_level, 0);
6475 return offset;
6478 static int
6479 svcctl_dissect_element_ChangeServiceConfig2W_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6481 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_ChangeServiceConfig2W_info_, NDR_POINTER_UNIQUE, "Pointer to Info (uint8)",hf_svcctl_svcctl_ChangeServiceConfig2W_info);
6483 return offset;
6486 static int
6487 svcctl_dissect_element_ChangeServiceConfig2W_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6489 offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_ChangeServiceConfig2W_info, 0);
6491 return offset;
6494 /* IDL: WERROR svcctl_ChangeServiceConfig2W( */
6495 /* IDL: [in] [ref] policy_handle *handle, */
6496 /* IDL: [in] uint32 info_level, */
6497 /* IDL: [in] [unique(1)] uint8 *info */
6498 /* IDL: ); */
6500 static int
6501 svcctl_dissect_ChangeServiceConfig2W_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6503 uint32_t status;
6505 di->dcerpc_procedure_name="ChangeServiceConfig2W";
6506 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_werror, &status);
6508 if (status != 0)
6509 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(status, &WERR_errors_ext, "Unknown DOS error 0x%08x"));
6511 return offset;
6514 static int
6515 svcctl_dissect_ChangeServiceConfig2W_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6517 di->dcerpc_procedure_name="ChangeServiceConfig2W";
6518 offset = svcctl_dissect_element_ChangeServiceConfig2W_handle(tvb, offset, pinfo, tree, di, drep);
6519 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
6520 offset = svcctl_dissect_element_ChangeServiceConfig2W_info_level(tvb, offset, pinfo, tree, di, drep);
6521 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
6522 offset = svcctl_dissect_element_ChangeServiceConfig2W_info(tvb, offset, pinfo, tree, di, drep);
6523 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
6524 return offset;
6527 static int
6528 svcctl_dissect_element_QueryServiceConfig2A_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6530 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_QueryServiceConfig2A_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_svcctl_svcctl_QueryServiceConfig2A_handle);
6532 return offset;
6535 static int
6536 svcctl_dissect_element_QueryServiceConfig2A_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6538 offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_QueryServiceConfig2A_handle, 0);
6540 return offset;
6543 static int
6544 svcctl_dissect_element_QueryServiceConfig2A_info_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6546 offset = svcctl_dissect_enum_ConfigLevel(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_QueryServiceConfig2A_info_level, 0);
6548 return offset;
6551 static int
6552 svcctl_dissect_element_QueryServiceConfig2A_buffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6554 offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_QueryServiceConfig2A_buffer_);
6556 return offset;
6559 static int
6560 svcctl_dissect_element_QueryServiceConfig2A_buffer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6562 offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_QueryServiceConfig2A_buffer, 0);
6564 return offset;
6567 static int
6568 svcctl_dissect_element_QueryServiceConfig2A_offered(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6570 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_QueryServiceConfig2A_offered, 0);
6572 return offset;
6575 static int
6576 svcctl_dissect_element_QueryServiceConfig2A_needed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6578 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_QueryServiceConfig2A_needed_, NDR_POINTER_REF, "Pointer to Needed (uint32)",hf_svcctl_svcctl_QueryServiceConfig2A_needed);
6580 return offset;
6583 static int
6584 svcctl_dissect_element_QueryServiceConfig2A_needed_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6586 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_QueryServiceConfig2A_needed, 0);
6588 return offset;
6591 /* IDL: WERROR svcctl_QueryServiceConfig2A( */
6592 /* IDL: [in] [ref] policy_handle *handle, */
6593 /* IDL: [in] svcctl_ConfigLevel info_level, */
6594 /* IDL: [out] [size_is(offered)] uint8 buffer[*], */
6595 /* IDL: [in] uint32 offered, */
6596 /* IDL: [out] [ref] uint32 *needed */
6597 /* IDL: ); */
6599 static int
6600 svcctl_dissect_QueryServiceConfig2A_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6602 uint32_t status;
6604 di->dcerpc_procedure_name="QueryServiceConfig2A";
6605 offset = svcctl_dissect_element_QueryServiceConfig2A_buffer(tvb, offset, pinfo, tree, di, drep);
6606 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
6608 offset = svcctl_dissect_element_QueryServiceConfig2A_needed(tvb, offset, pinfo, tree, di, drep);
6609 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
6611 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_werror, &status);
6613 if (status != 0)
6614 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(status, &WERR_errors_ext, "Unknown DOS error 0x%08x"));
6616 return offset;
6619 static int
6620 svcctl_dissect_QueryServiceConfig2A_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6622 di->dcerpc_procedure_name="QueryServiceConfig2A";
6623 offset = svcctl_dissect_element_QueryServiceConfig2A_handle(tvb, offset, pinfo, tree, di, drep);
6624 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
6625 offset = svcctl_dissect_element_QueryServiceConfig2A_info_level(tvb, offset, pinfo, tree, di, drep);
6626 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
6627 offset = svcctl_dissect_element_QueryServiceConfig2A_offered(tvb, offset, pinfo, tree, di, drep);
6628 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
6629 return offset;
6632 static int
6633 svcctl_dissect_element_QueryServiceConfig2W_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6635 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_QueryServiceConfig2W_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_svcctl_svcctl_QueryServiceConfig2W_handle);
6637 return offset;
6640 static int
6641 svcctl_dissect_element_QueryServiceConfig2W_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6643 offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_QueryServiceConfig2W_handle, 0);
6645 return offset;
6648 static int
6649 svcctl_dissect_element_QueryServiceConfig2W_info_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6651 offset = svcctl_dissect_enum_ConfigLevel(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_QueryServiceConfig2W_info_level, 0);
6653 return offset;
6656 static int
6657 svcctl_dissect_element_QueryServiceConfig2W_buffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6659 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_QueryServiceConfig2W_buffer_, NDR_POINTER_REF, "Pointer to Buffer (uint8)",hf_svcctl_svcctl_QueryServiceConfig2W_buffer);
6661 return offset;
6664 static int
6665 svcctl_dissect_element_QueryServiceConfig2W_buffer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6667 offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_QueryServiceConfig2W_buffer__);
6669 return offset;
6672 static int
6673 svcctl_dissect_element_QueryServiceConfig2W_buffer__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6675 offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_QueryServiceConfig2W_buffer, 0);
6677 return offset;
6680 static int
6681 svcctl_dissect_element_QueryServiceConfig2W_offered(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6683 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_QueryServiceConfig2W_offered, 0);
6685 return offset;
6688 static int
6689 svcctl_dissect_element_QueryServiceConfig2W_needed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6691 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_QueryServiceConfig2W_needed_, NDR_POINTER_REF, "Pointer to Needed (uint32)",hf_svcctl_svcctl_QueryServiceConfig2W_needed);
6693 return offset;
6696 static int
6697 svcctl_dissect_element_QueryServiceConfig2W_needed_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6699 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_QueryServiceConfig2W_needed, 0);
6701 return offset;
6704 /* IDL: WERROR svcctl_QueryServiceConfig2W( */
6705 /* IDL: [in] [ref] policy_handle *handle, */
6706 /* IDL: [in] svcctl_ConfigLevel info_level, */
6707 /* IDL: [out] [ref] [size_is(offered)] uint8 *buffer, */
6708 /* IDL: [in] [range(0,8192)] uint32 offered, */
6709 /* IDL: [out] [range(0,8192)] [ref] uint32 *needed */
6710 /* IDL: ); */
6712 static int
6713 svcctl_dissect_QueryServiceConfig2W_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6715 uint32_t status;
6717 di->dcerpc_procedure_name="QueryServiceConfig2W";
6718 offset = svcctl_dissect_element_QueryServiceConfig2W_buffer(tvb, offset, pinfo, tree, di, drep);
6719 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
6721 offset = svcctl_dissect_element_QueryServiceConfig2W_needed(tvb, offset, pinfo, tree, di, drep);
6722 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
6724 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_werror, &status);
6726 if (status != 0)
6727 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(status, &WERR_errors_ext, "Unknown DOS error 0x%08x"));
6729 return offset;
6732 static int
6733 svcctl_dissect_QueryServiceConfig2W_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6735 di->dcerpc_procedure_name="QueryServiceConfig2W";
6736 offset = svcctl_dissect_element_QueryServiceConfig2W_handle(tvb, offset, pinfo, tree, di, drep);
6737 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
6738 offset = svcctl_dissect_element_QueryServiceConfig2W_info_level(tvb, offset, pinfo, tree, di, drep);
6739 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
6740 offset = svcctl_dissect_element_QueryServiceConfig2W_offered(tvb, offset, pinfo, tree, di, drep);
6741 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
6742 return offset;
6745 static int
6746 svcctl_dissect_element_QueryServiceStatusEx_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6748 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_QueryServiceStatusEx_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_svcctl_svcctl_QueryServiceStatusEx_handle);
6750 return offset;
6753 static int
6754 svcctl_dissect_element_QueryServiceStatusEx_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6756 offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_QueryServiceStatusEx_handle, 0);
6758 return offset;
6761 static int
6762 svcctl_dissect_element_QueryServiceStatusEx_info_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6764 offset = svcctl_dissect_enum_StatusLevel(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_QueryServiceStatusEx_info_level, 0);
6766 return offset;
6769 static int
6770 svcctl_dissect_element_QueryServiceStatusEx_buffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6772 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_QueryServiceStatusEx_buffer_, NDR_POINTER_REF, "Pointer to Buffer (uint8)",hf_svcctl_svcctl_QueryServiceStatusEx_buffer);
6774 return offset;
6777 static int
6778 svcctl_dissect_element_QueryServiceStatusEx_buffer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6780 offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_QueryServiceStatusEx_buffer__);
6782 return offset;
6785 static int
6786 svcctl_dissect_element_QueryServiceStatusEx_buffer__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6788 offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_QueryServiceStatusEx_buffer, 0);
6790 return offset;
6793 static int
6794 svcctl_dissect_element_QueryServiceStatusEx_offered(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6796 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_QueryServiceStatusEx_offered, 0);
6798 return offset;
6801 static int
6802 svcctl_dissect_element_QueryServiceStatusEx_needed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6804 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_QueryServiceStatusEx_needed_, NDR_POINTER_REF, "Pointer to Needed (uint32)",hf_svcctl_svcctl_QueryServiceStatusEx_needed);
6806 return offset;
6809 static int
6810 svcctl_dissect_element_QueryServiceStatusEx_needed_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6812 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_QueryServiceStatusEx_needed, 0);
6814 return offset;
6817 /* IDL: WERROR svcctl_QueryServiceStatusEx( */
6818 /* IDL: [in] [ref] policy_handle *handle, */
6819 /* IDL: [in] svcctl_StatusLevel info_level, */
6820 /* IDL: [out] [ref] [size_is(offered)] uint8 *buffer, */
6821 /* IDL: [in] [range(0,8192)] uint32 offered, */
6822 /* IDL: [out] [range(0,8192)] [ref] uint32 *needed */
6823 /* IDL: ); */
6825 static int
6826 svcctl_dissect_QueryServiceStatusEx_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6828 uint32_t status;
6830 di->dcerpc_procedure_name="QueryServiceStatusEx";
6831 offset = svcctl_dissect_element_QueryServiceStatusEx_buffer(tvb, offset, pinfo, tree, di, drep);
6832 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
6834 offset = svcctl_dissect_element_QueryServiceStatusEx_needed(tvb, offset, pinfo, tree, di, drep);
6835 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
6837 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_werror, &status);
6839 if (status != 0)
6840 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(status, &WERR_errors_ext, "Unknown DOS error 0x%08x"));
6842 return offset;
6845 static int
6846 svcctl_dissect_QueryServiceStatusEx_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6848 di->dcerpc_procedure_name="QueryServiceStatusEx";
6849 offset = svcctl_dissect_element_QueryServiceStatusEx_handle(tvb, offset, pinfo, tree, di, drep);
6850 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
6851 offset = svcctl_dissect_element_QueryServiceStatusEx_info_level(tvb, offset, pinfo, tree, di, drep);
6852 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
6853 offset = svcctl_dissect_element_QueryServiceStatusEx_offered(tvb, offset, pinfo, tree, di, drep);
6854 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
6855 return offset;
6858 static int
6859 svcctl_dissect_element_EnumServicesStatusExA_scm_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6861 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_EnumServicesStatusExA_scm_handle_, NDR_POINTER_REF, "Pointer to Scm Handle (policy_handle)",hf_svcctl_EnumServicesStatusExA_scm_handle);
6863 return offset;
6866 static int
6867 svcctl_dissect_element_EnumServicesStatusExA_scm_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6869 offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_svcctl_EnumServicesStatusExA_scm_handle, 0);
6871 return offset;
6874 static int
6875 svcctl_dissect_element_EnumServicesStatusExA_info_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6877 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_EnumServicesStatusExA_info_level, 0);
6879 return offset;
6882 static int
6883 svcctl_dissect_element_EnumServicesStatusExA_service_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6885 offset = svcctl_dissect_enum_ServiceType(tvb, offset, pinfo, tree, di, drep, hf_svcctl_EnumServicesStatusExA_service_type, 0);
6887 return offset;
6890 static int
6891 svcctl_dissect_element_EnumServicesStatusExA_state(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6893 offset = svcctl_dissect_enum_ServiceState(tvb, offset, pinfo, tree, di, drep, hf_svcctl_EnumServicesStatusExA_state, 0);
6895 return offset;
6898 static int
6899 svcctl_dissect_element_EnumServicesStatusExA_services(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6901 offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_EnumServicesStatusExA_services_);
6903 return offset;
6906 static int
6907 svcctl_dissect_element_EnumServicesStatusExA_services_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6909 offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_svcctl_EnumServicesStatusExA_services, 0);
6911 return offset;
6914 static int
6915 svcctl_dissect_element_EnumServicesStatusExA_offered(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6917 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_EnumServicesStatusExA_offered, 0);
6919 return offset;
6922 static int
6923 svcctl_dissect_element_EnumServicesStatusExA_needed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6925 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_EnumServicesStatusExA_needed_, NDR_POINTER_REF, "Pointer to Needed (uint32)",hf_svcctl_EnumServicesStatusExA_needed);
6927 return offset;
6930 static int
6931 svcctl_dissect_element_EnumServicesStatusExA_needed_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6933 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_EnumServicesStatusExA_needed, 0);
6935 return offset;
6938 static int
6939 svcctl_dissect_element_EnumServicesStatusExA_service_returned(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6941 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_EnumServicesStatusExA_service_returned_, NDR_POINTER_REF, "Pointer to Service Returned (uint32)",hf_svcctl_EnumServicesStatusExA_service_returned);
6943 return offset;
6946 static int
6947 svcctl_dissect_element_EnumServicesStatusExA_service_returned_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6949 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_EnumServicesStatusExA_service_returned, 0);
6951 return offset;
6954 static int
6955 svcctl_dissect_element_EnumServicesStatusExA_resume_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6957 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_EnumServicesStatusExA_resume_handle_, NDR_POINTER_UNIQUE, "Pointer to Resume Handle (uint32)",hf_svcctl_EnumServicesStatusExA_resume_handle);
6959 return offset;
6962 static int
6963 svcctl_dissect_element_EnumServicesStatusExA_resume_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6965 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_EnumServicesStatusExA_resume_handle, 0);
6967 return offset;
6970 static int
6971 svcctl_dissect_element_EnumServicesStatusExA_group_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6973 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_EnumServicesStatusExA_group_name_, NDR_POINTER_REF, "Pointer to Group Name (uint16)",hf_svcctl_EnumServicesStatusExA_group_name);
6975 return offset;
6978 static int
6979 svcctl_dissect_element_EnumServicesStatusExA_group_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6981 offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_EnumServicesStatusExA_group_name__, NDR_POINTER_UNIQUE, "Pointer to Group Name (uint16)",hf_svcctl_EnumServicesStatusExA_group_name);
6983 return offset;
6986 static int
6987 svcctl_dissect_element_EnumServicesStatusExA_group_name__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6989 char *data;
6991 offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(uint16_t), hf_svcctl_EnumServicesStatusExA_group_name, false, &data);
6992 proto_item_append_text(tree, ": %s", data);
6994 return offset;
6997 /* IDL: WERROR EnumServicesStatusExA( */
6998 /* IDL: [in] [ref] policy_handle *scm_handle, */
6999 /* IDL: [in] uint32 info_level, */
7000 /* IDL: [in] svcctl_ServiceType service_type, */
7001 /* IDL: [in] svcctl_ServiceState state, */
7002 /* IDL: [out] [size_is(offered)] uint8 services[*], */
7003 /* IDL: [in] uint32 offered, */
7004 /* IDL: [out] [ref] uint32 *needed, */
7005 /* IDL: [out] [ref] uint32 *service_returned, */
7006 /* IDL: [in] [out] [unique(1)] uint32 *resume_handle, */
7007 /* IDL: [charset(UTF16)] [out] [ref] uint16 **group_name */
7008 /* IDL: ); */
7010 static int
7011 svcctl_dissect_EnumServicesStatusExA_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
7013 uint32_t status;
7015 di->dcerpc_procedure_name="EnumServicesStatusExA";
7016 offset = svcctl_dissect_element_EnumServicesStatusExA_services(tvb, offset, pinfo, tree, di, drep);
7017 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
7019 offset = svcctl_dissect_element_EnumServicesStatusExA_needed(tvb, offset, pinfo, tree, di, drep);
7020 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
7022 offset = svcctl_dissect_element_EnumServicesStatusExA_service_returned(tvb, offset, pinfo, tree, di, drep);
7023 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
7025 offset = svcctl_dissect_element_EnumServicesStatusExA_resume_handle(tvb, offset, pinfo, tree, di, drep);
7026 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
7028 offset = svcctl_dissect_element_EnumServicesStatusExA_group_name(tvb, offset, pinfo, tree, di, drep);
7029 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
7031 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_werror, &status);
7033 if (status != 0)
7034 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(status, &WERR_errors_ext, "Unknown DOS error 0x%08x"));
7036 return offset;
7039 static int
7040 svcctl_dissect_EnumServicesStatusExA_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
7042 di->dcerpc_procedure_name="EnumServicesStatusExA";
7043 offset = svcctl_dissect_element_EnumServicesStatusExA_scm_handle(tvb, offset, pinfo, tree, di, drep);
7044 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
7045 offset = svcctl_dissect_element_EnumServicesStatusExA_info_level(tvb, offset, pinfo, tree, di, drep);
7046 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
7047 offset = svcctl_dissect_element_EnumServicesStatusExA_service_type(tvb, offset, pinfo, tree, di, drep);
7048 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
7049 offset = svcctl_dissect_element_EnumServicesStatusExA_state(tvb, offset, pinfo, tree, di, drep);
7050 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
7051 offset = svcctl_dissect_element_EnumServicesStatusExA_offered(tvb, offset, pinfo, tree, di, drep);
7052 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
7053 offset = svcctl_dissect_element_EnumServicesStatusExA_resume_handle(tvb, offset, pinfo, tree, di, drep);
7054 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
7055 return offset;
7058 static int
7059 svcctl_dissect_element_EnumServicesStatusExW_scmanager(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
7061 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_EnumServicesStatusExW_scmanager_, NDR_POINTER_REF, "Pointer to Scmanager (policy_handle)",hf_svcctl_EnumServicesStatusExW_scmanager);
7063 return offset;
7066 static int
7067 svcctl_dissect_element_EnumServicesStatusExW_scmanager_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
7069 offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_svcctl_EnumServicesStatusExW_scmanager, 0);
7071 return offset;
7074 static int
7075 svcctl_dissect_element_EnumServicesStatusExW_info_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
7077 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_EnumServicesStatusExW_info_level, 0);
7079 return offset;
7082 static int
7083 svcctl_dissect_element_EnumServicesStatusExW_service_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
7085 offset = svcctl_dissect_enum_ServiceType(tvb, offset, pinfo, tree, di, drep, hf_svcctl_EnumServicesStatusExW_service_type, 0);
7087 return offset;
7090 static int
7091 svcctl_dissect_element_EnumServicesStatusExW_state(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
7093 offset = svcctl_dissect_enum_ServiceState(tvb, offset, pinfo, tree, di, drep, hf_svcctl_EnumServicesStatusExW_state, 0);
7095 return offset;
7098 static int
7099 svcctl_dissect_element_EnumServicesStatusExW_services(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
7101 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_EnumServicesStatusExW_services_, NDR_POINTER_REF, "Pointer to Services (uint8)",hf_svcctl_EnumServicesStatusExW_services);
7103 return offset;
7106 static int
7107 svcctl_dissect_element_EnumServicesStatusExW_services_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
7109 offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_EnumServicesStatusExW_services__);
7111 return offset;
7114 static int
7115 svcctl_dissect_element_EnumServicesStatusExW_services__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
7117 offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_svcctl_EnumServicesStatusExW_services, 0);
7119 return offset;
7122 static int
7123 svcctl_dissect_element_EnumServicesStatusExW_offered(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
7125 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_EnumServicesStatusExW_offered, 0);
7127 return offset;
7130 static int
7131 svcctl_dissect_element_EnumServicesStatusExW_needed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
7133 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_EnumServicesStatusExW_needed_, NDR_POINTER_REF, "Pointer to Needed (uint32)",hf_svcctl_EnumServicesStatusExW_needed);
7135 return offset;
7138 static int
7139 svcctl_dissect_element_EnumServicesStatusExW_needed_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
7141 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_EnumServicesStatusExW_needed, 0);
7143 return offset;
7146 static int
7147 svcctl_dissect_element_EnumServicesStatusExW_service_returned(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
7149 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_EnumServicesStatusExW_service_returned_, NDR_POINTER_REF, "Pointer to Service Returned (uint32)",hf_svcctl_EnumServicesStatusExW_service_returned);
7151 return offset;
7154 static int
7155 svcctl_dissect_element_EnumServicesStatusExW_service_returned_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
7157 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_EnumServicesStatusExW_service_returned, 0);
7159 return offset;
7162 static int
7163 svcctl_dissect_element_EnumServicesStatusExW_resume_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
7165 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_EnumServicesStatusExW_resume_handle_, NDR_POINTER_UNIQUE, "Pointer to Resume Handle (uint32)",hf_svcctl_EnumServicesStatusExW_resume_handle);
7167 return offset;
7170 static int
7171 svcctl_dissect_element_EnumServicesStatusExW_resume_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
7173 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_EnumServicesStatusExW_resume_handle, 0);
7175 return offset;
7178 static int
7179 svcctl_dissect_element_EnumServicesStatusExW_group_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
7181 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_EnumServicesStatusExW_group_name_, NDR_POINTER_UNIQUE, "Pointer to Group Name (uint16)",hf_svcctl_EnumServicesStatusExW_group_name);
7183 return offset;
7186 static int
7187 svcctl_dissect_element_EnumServicesStatusExW_group_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
7189 char *data;
7191 offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(uint16_t), hf_svcctl_EnumServicesStatusExW_group_name, false, &data);
7192 proto_item_append_text(tree, ": %s", data);
7194 return offset;
7197 /* IDL: WERROR EnumServicesStatusExW( */
7198 /* IDL: [in] [ref] policy_handle *scmanager, */
7199 /* IDL: [in] uint32 info_level, */
7200 /* IDL: [in] svcctl_ServiceType service_type, */
7201 /* IDL: [in] svcctl_ServiceState state, */
7202 /* IDL: [out] [ref] [size_is(offered)] uint8 *services, */
7203 /* IDL: [in] [range(0,0x40000)] uint32 offered, */
7204 /* IDL: [out] [range(0,0x40000)] [ref] uint32 *needed, */
7205 /* IDL: [out] [range(0,0x40000)] [ref] uint32 *service_returned, */
7206 /* IDL: [in] [out] [range(0,0x40000)] [unique(1)] uint32 *resume_handle, */
7207 /* IDL: [charset(UTF16)] [in] [unique(1)] uint16 *group_name */
7208 /* IDL: ); */
7210 static int
7211 svcctl_dissect_EnumServicesStatusExW_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
7213 uint32_t status;
7215 di->dcerpc_procedure_name="EnumServicesStatusExW";
7216 offset = svcctl_dissect_element_EnumServicesStatusExW_services(tvb, offset, pinfo, tree, di, drep);
7217 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
7219 offset = svcctl_dissect_element_EnumServicesStatusExW_needed(tvb, offset, pinfo, tree, di, drep);
7220 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
7222 offset = svcctl_dissect_element_EnumServicesStatusExW_service_returned(tvb, offset, pinfo, tree, di, drep);
7223 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
7225 offset = svcctl_dissect_element_EnumServicesStatusExW_resume_handle(tvb, offset, pinfo, tree, di, drep);
7226 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
7228 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_werror, &status);
7230 if (status != 0)
7231 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(status, &WERR_errors_ext, "Unknown DOS error 0x%08x"));
7233 return offset;
7236 static int
7237 svcctl_dissect_EnumServicesStatusExW_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
7239 di->dcerpc_procedure_name="EnumServicesStatusExW";
7240 offset = svcctl_dissect_element_EnumServicesStatusExW_scmanager(tvb, offset, pinfo, tree, di, drep);
7241 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
7242 offset = svcctl_dissect_element_EnumServicesStatusExW_info_level(tvb, offset, pinfo, tree, di, drep);
7243 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
7244 offset = svcctl_dissect_element_EnumServicesStatusExW_service_type(tvb, offset, pinfo, tree, di, drep);
7245 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
7246 offset = svcctl_dissect_element_EnumServicesStatusExW_state(tvb, offset, pinfo, tree, di, drep);
7247 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
7248 offset = svcctl_dissect_element_EnumServicesStatusExW_offered(tvb, offset, pinfo, tree, di, drep);
7249 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
7250 offset = svcctl_dissect_element_EnumServicesStatusExW_resume_handle(tvb, offset, pinfo, tree, di, drep);
7251 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
7252 offset = svcctl_dissect_element_EnumServicesStatusExW_group_name(tvb, offset, pinfo, tree, di, drep);
7253 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
7254 return offset;
7257 /* IDL: WERROR svcctl_ScBroadcastServiceControlMessage( */
7258 /* IDL: */
7259 /* IDL: ); */
7261 static int
7262 svcctl_dissect_ScBroadcastServiceControlMessage_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
7264 uint32_t status;
7266 di->dcerpc_procedure_name="ScBroadcastServiceControlMessage";
7267 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_werror, &status);
7269 if (status != 0)
7270 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(status, &WERR_errors_ext, "Unknown DOS error 0x%08x"));
7272 return offset;
7275 static int
7276 svcctl_dissect_ScBroadcastServiceControlMessage_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
7278 di->dcerpc_procedure_name="ScBroadcastServiceControlMessage";
7279 return offset;
7282 static int
7283 svcctl_dissect_element_CreateServiceWOW64A_scm_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
7285 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_CreateServiceWOW64A_scm_handle_, NDR_POINTER_REF, "Pointer to Scm Handle (policy_handle)",hf_svcctl_svcctl_CreateServiceWOW64A_scm_handle);
7287 return offset;
7290 static int
7291 svcctl_dissect_element_CreateServiceWOW64A_scm_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
7293 offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_CreateServiceWOW64A_scm_handle, 0);
7295 return offset;
7298 static int
7299 svcctl_dissect_element_CreateServiceWOW64A_ServiceName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
7301 char *data;
7303 offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(uint8_t), hf_svcctl_svcctl_CreateServiceWOW64A_ServiceName, false, &data);
7304 proto_item_append_text(tree, ": %s", data);
7306 return offset;
7309 static int
7310 svcctl_dissect_element_CreateServiceWOW64A_DisplayName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
7312 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_CreateServiceWOW64A_DisplayName_, NDR_POINTER_UNIQUE, "Pointer to DisplayName (uint8)",hf_svcctl_svcctl_CreateServiceWOW64A_DisplayName);
7314 return offset;
7317 static int
7318 svcctl_dissect_element_CreateServiceWOW64A_DisplayName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
7320 char *data;
7322 offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(uint8_t), hf_svcctl_svcctl_CreateServiceWOW64A_DisplayName, false, &data);
7323 proto_item_append_text(tree, ": %s", data);
7325 return offset;
7328 static int
7329 svcctl_dissect_element_CreateServiceWOW64A_desired_access(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
7331 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_CreateServiceWOW64A_desired_access, 0);
7333 return offset;
7336 static int
7337 svcctl_dissect_element_CreateServiceWOW64A_service_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
7339 offset = svcctl_dissect_enum_ServiceType(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_CreateServiceWOW64A_service_type, 0);
7341 return offset;
7344 static int
7345 svcctl_dissect_element_CreateServiceWOW64A_start_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
7347 offset = svcctl_dissect_enum_StartType(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_CreateServiceWOW64A_start_type, 0);
7349 return offset;
7352 static int
7353 svcctl_dissect_element_CreateServiceWOW64A_error_control(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
7355 offset = svcctl_dissect_enum_ErrorControl(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_CreateServiceWOW64A_error_control, 0);
7357 return offset;
7360 static int
7361 svcctl_dissect_element_CreateServiceWOW64A_binary_path(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
7363 char *data;
7365 offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(uint8_t), hf_svcctl_svcctl_CreateServiceWOW64A_binary_path, false, &data);
7366 proto_item_append_text(tree, ": %s", data);
7368 return offset;
7371 static int
7372 svcctl_dissect_element_CreateServiceWOW64A_LoadOrderGroupKey(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
7374 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_CreateServiceWOW64A_LoadOrderGroupKey_, NDR_POINTER_UNIQUE, "Pointer to LoadOrderGroupKey (uint8)",hf_svcctl_svcctl_CreateServiceWOW64A_LoadOrderGroupKey);
7376 return offset;
7379 static int
7380 svcctl_dissect_element_CreateServiceWOW64A_LoadOrderGroupKey_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
7382 char *data;
7384 offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(uint8_t), hf_svcctl_svcctl_CreateServiceWOW64A_LoadOrderGroupKey, false, &data);
7385 proto_item_append_text(tree, ": %s", data);
7387 return offset;
7390 static int
7391 svcctl_dissect_element_CreateServiceWOW64A_tag_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
7393 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_CreateServiceWOW64A_tag_id_, NDR_POINTER_UNIQUE, "Pointer to Tag Id (uint32)",hf_svcctl_svcctl_CreateServiceWOW64A_tag_id);
7395 return offset;
7398 static int
7399 svcctl_dissect_element_CreateServiceWOW64A_tag_id_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
7401 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_CreateServiceWOW64A_tag_id, 0);
7403 return offset;
7406 static int
7407 svcctl_dissect_element_CreateServiceWOW64A_dependencies(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
7409 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_CreateServiceWOW64A_dependencies_, NDR_POINTER_UNIQUE, "Pointer to Dependencies (string)",hf_svcctl_svcctl_CreateServiceWOW64A_dependencies);
7411 return offset;
7414 static int
7415 svcctl_dissect_element_CreateServiceWOW64A_dependencies_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
7417 offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_CreateServiceWOW64A_dependencies__);
7419 return offset;
7422 static int
7423 svcctl_dissect_element_CreateServiceWOW64A_dependencies__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
7425 offset = dissect_null_term_string(tvb, offset, pinfo, tree, drep, hf_svcctl_svcctl_CreateServiceWOW64A_dependencies , 0);
7427 return offset;
7430 static int
7431 svcctl_dissect_element_CreateServiceWOW64A_dependencies_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
7433 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_CreateServiceWOW64A_dependencies_size, 0);
7435 return offset;
7438 static int
7439 svcctl_dissect_element_CreateServiceWOW64A_service_start_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
7441 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_CreateServiceWOW64A_service_start_name_, NDR_POINTER_UNIQUE, "Pointer to Service Start Name (uint8)",hf_svcctl_svcctl_CreateServiceWOW64A_service_start_name);
7443 return offset;
7446 static int
7447 svcctl_dissect_element_CreateServiceWOW64A_service_start_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
7449 char *data;
7451 offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(uint8_t), hf_svcctl_svcctl_CreateServiceWOW64A_service_start_name, false, &data);
7452 proto_item_append_text(tree, ": %s", data);
7454 return offset;
7457 static int
7458 svcctl_dissect_element_CreateServiceWOW64A_password(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
7460 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_CreateServiceWOW64A_password_, NDR_POINTER_UNIQUE, "Pointer to Password (uint8)",hf_svcctl_svcctl_CreateServiceWOW64A_password);
7462 return offset;
7465 static int
7466 svcctl_dissect_element_CreateServiceWOW64A_password_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
7468 offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_CreateServiceWOW64A_password__);
7470 return offset;
7473 static int
7474 svcctl_dissect_element_CreateServiceWOW64A_password__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
7476 offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_CreateServiceWOW64A_password, 0);
7478 return offset;
7481 static int
7482 svcctl_dissect_element_CreateServiceWOW64A_password_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
7484 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_CreateServiceWOW64A_password_size, 0);
7486 return offset;
7489 static int
7490 svcctl_dissect_element_CreateServiceWOW64A_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
7492 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_CreateServiceWOW64A_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_svcctl_svcctl_CreateServiceWOW64A_handle);
7494 return offset;
7497 static int
7498 svcctl_dissect_element_CreateServiceWOW64A_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
7500 offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_CreateServiceWOW64A_handle, 0);
7502 return offset;
7505 /* IDL: WERROR svcctl_CreateServiceWOW64A( */
7506 /* IDL: [in] [ref] policy_handle *scm_handle, */
7507 /* IDL: [charset(ASCII)] [in] uint8 ServiceName[*], */
7508 /* IDL: [charset(ASCII)] [in] [unique(1)] uint8 *DisplayName, */
7509 /* IDL: [in] uint32 desired_access, */
7510 /* IDL: [in] svcctl_ServiceType service_type, */
7511 /* IDL: [in] svcctl_StartType start_type, */
7512 /* IDL: [in] svcctl_ErrorControl error_control, */
7513 /* IDL: [charset(ASCII)] [in] uint8 binary_path[*], */
7514 /* IDL: [charset(ASCII)] [in] [unique(1)] uint8 *LoadOrderGroupKey, */
7515 /* IDL: [in] [out] [unique(1)] uint32 *tag_id, */
7516 /* IDL: [flag(LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM)] [in] [size_is(dependencies_size)] [unique(1)] string *dependencies, */
7517 /* IDL: [in] uint32 dependencies_size, */
7518 /* IDL: [charset(ASCII)] [in] [unique(1)] uint8 *service_start_name, */
7519 /* IDL: [in] [size_is(password_size)] [unique(1)] uint8 *password, */
7520 /* IDL: [in] uint32 password_size, */
7521 /* IDL: [out] [ref] policy_handle *handle */
7522 /* IDL: ); */
7524 static int
7525 svcctl_dissect_CreateServiceWOW64A_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
7527 uint32_t status;
7529 di->dcerpc_procedure_name="CreateServiceWOW64A";
7530 offset = svcctl_dissect_element_CreateServiceWOW64A_tag_id(tvb, offset, pinfo, tree, di, drep);
7531 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
7533 offset = svcctl_dissect_element_CreateServiceWOW64A_handle(tvb, offset, pinfo, tree, di, drep);
7534 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
7536 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_werror, &status);
7538 if (status != 0)
7539 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(status, &WERR_errors_ext, "Unknown DOS error 0x%08x"));
7541 return offset;
7544 static int
7545 svcctl_dissect_CreateServiceWOW64A_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
7547 di->dcerpc_procedure_name="CreateServiceWOW64A";
7548 offset = svcctl_dissect_element_CreateServiceWOW64A_scm_handle(tvb, offset, pinfo, tree, di, drep);
7549 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
7550 offset = svcctl_dissect_element_CreateServiceWOW64A_ServiceName(tvb, offset, pinfo, tree, di, drep);
7551 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
7552 offset = svcctl_dissect_element_CreateServiceWOW64A_DisplayName(tvb, offset, pinfo, tree, di, drep);
7553 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
7554 offset = svcctl_dissect_element_CreateServiceWOW64A_desired_access(tvb, offset, pinfo, tree, di, drep);
7555 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
7556 offset = svcctl_dissect_element_CreateServiceWOW64A_service_type(tvb, offset, pinfo, tree, di, drep);
7557 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
7558 offset = svcctl_dissect_element_CreateServiceWOW64A_start_type(tvb, offset, pinfo, tree, di, drep);
7559 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
7560 offset = svcctl_dissect_element_CreateServiceWOW64A_error_control(tvb, offset, pinfo, tree, di, drep);
7561 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
7562 offset = svcctl_dissect_element_CreateServiceWOW64A_binary_path(tvb, offset, pinfo, tree, di, drep);
7563 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
7564 offset = svcctl_dissect_element_CreateServiceWOW64A_LoadOrderGroupKey(tvb, offset, pinfo, tree, di, drep);
7565 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
7566 offset = svcctl_dissect_element_CreateServiceWOW64A_tag_id(tvb, offset, pinfo, tree, di, drep);
7567 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
7568 offset = svcctl_dissect_element_CreateServiceWOW64A_dependencies(tvb, offset, pinfo, tree, di, drep);
7569 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
7570 offset = svcctl_dissect_element_CreateServiceWOW64A_dependencies_size(tvb, offset, pinfo, tree, di, drep);
7571 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
7572 offset = svcctl_dissect_element_CreateServiceWOW64A_service_start_name(tvb, offset, pinfo, tree, di, drep);
7573 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
7574 offset = svcctl_dissect_element_CreateServiceWOW64A_password(tvb, offset, pinfo, tree, di, drep);
7575 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
7576 offset = svcctl_dissect_element_CreateServiceWOW64A_password_size(tvb, offset, pinfo, tree, di, drep);
7577 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
7578 return offset;
7581 static int
7582 svcctl_dissect_element_CreateServiceWOW64W_scm_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
7584 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_CreateServiceWOW64W_scm_handle_, NDR_POINTER_REF, "Pointer to Scm Handle (policy_handle)",hf_svcctl_svcctl_CreateServiceWOW64W_scm_handle);
7586 return offset;
7589 static int
7590 svcctl_dissect_element_CreateServiceWOW64W_scm_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
7592 offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_CreateServiceWOW64W_scm_handle, 0);
7594 return offset;
7597 static int
7598 svcctl_dissect_element_CreateServiceWOW64W_ServiceName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
7600 char *data;
7602 offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(uint16_t), hf_svcctl_svcctl_CreateServiceWOW64W_ServiceName, false, &data);
7603 proto_item_append_text(tree, ": %s", data);
7605 return offset;
7608 static int
7609 svcctl_dissect_element_CreateServiceWOW64W_DisplayName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
7611 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_CreateServiceWOW64W_DisplayName_, NDR_POINTER_UNIQUE, "Pointer to DisplayName (uint16)",hf_svcctl_svcctl_CreateServiceWOW64W_DisplayName);
7613 return offset;
7616 static int
7617 svcctl_dissect_element_CreateServiceWOW64W_DisplayName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
7619 char *data;
7621 offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(uint16_t), hf_svcctl_svcctl_CreateServiceWOW64W_DisplayName, false, &data);
7622 proto_item_append_text(tree, ": %s", data);
7624 return offset;
7627 static int
7628 svcctl_dissect_element_CreateServiceWOW64W_desired_access(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
7630 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_CreateServiceWOW64W_desired_access, 0);
7632 return offset;
7635 static int
7636 svcctl_dissect_element_CreateServiceWOW64W_service_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
7638 offset = svcctl_dissect_enum_ServiceType(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_CreateServiceWOW64W_service_type, 0);
7640 return offset;
7643 static int
7644 svcctl_dissect_element_CreateServiceWOW64W_start_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
7646 offset = svcctl_dissect_enum_StartType(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_CreateServiceWOW64W_start_type, 0);
7648 return offset;
7651 static int
7652 svcctl_dissect_element_CreateServiceWOW64W_error_control(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
7654 offset = svcctl_dissect_enum_ErrorControl(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_CreateServiceWOW64W_error_control, 0);
7656 return offset;
7659 static int
7660 svcctl_dissect_element_CreateServiceWOW64W_binary_path(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
7662 char *data;
7664 offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(uint16_t), hf_svcctl_svcctl_CreateServiceWOW64W_binary_path, false, &data);
7665 proto_item_append_text(tree, ": %s", data);
7667 return offset;
7670 static int
7671 svcctl_dissect_element_CreateServiceWOW64W_LoadOrderGroupKey(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
7673 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_CreateServiceWOW64W_LoadOrderGroupKey_, NDR_POINTER_UNIQUE, "Pointer to LoadOrderGroupKey (uint16)",hf_svcctl_svcctl_CreateServiceWOW64W_LoadOrderGroupKey);
7675 return offset;
7678 static int
7679 svcctl_dissect_element_CreateServiceWOW64W_LoadOrderGroupKey_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
7681 char *data;
7683 offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(uint16_t), hf_svcctl_svcctl_CreateServiceWOW64W_LoadOrderGroupKey, false, &data);
7684 proto_item_append_text(tree, ": %s", data);
7686 return offset;
7689 static int
7690 svcctl_dissect_element_CreateServiceWOW64W_tag_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
7692 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_CreateServiceWOW64W_tag_id_, NDR_POINTER_UNIQUE, "Pointer to Tag Id (uint32)",hf_svcctl_svcctl_CreateServiceWOW64W_tag_id);
7694 return offset;
7697 static int
7698 svcctl_dissect_element_CreateServiceWOW64W_tag_id_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
7700 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_CreateServiceWOW64W_tag_id, 0);
7702 return offset;
7705 static int
7706 svcctl_dissect_element_CreateServiceWOW64W_dependencies(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
7708 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_CreateServiceWOW64W_dependencies_, NDR_POINTER_UNIQUE, "Pointer to Dependencies (uint8)",hf_svcctl_svcctl_CreateServiceWOW64W_dependencies);
7710 return offset;
7713 static int
7714 svcctl_dissect_element_CreateServiceWOW64W_dependencies_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
7716 offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_CreateServiceWOW64W_dependencies__);
7718 return offset;
7721 static int
7722 svcctl_dissect_element_CreateServiceWOW64W_dependencies__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
7724 offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_CreateServiceWOW64W_dependencies, 0);
7726 return offset;
7729 static int
7730 svcctl_dissect_element_CreateServiceWOW64W_dependencies_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
7732 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_CreateServiceWOW64W_dependencies_size, 0);
7734 return offset;
7737 static int
7738 svcctl_dissect_element_CreateServiceWOW64W_service_start_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
7740 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_CreateServiceWOW64W_service_start_name_, NDR_POINTER_UNIQUE, "Pointer to Service Start Name (uint16)",hf_svcctl_svcctl_CreateServiceWOW64W_service_start_name);
7742 return offset;
7745 static int
7746 svcctl_dissect_element_CreateServiceWOW64W_service_start_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
7748 char *data;
7750 offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(uint16_t), hf_svcctl_svcctl_CreateServiceWOW64W_service_start_name, false, &data);
7751 proto_item_append_text(tree, ": %s", data);
7753 return offset;
7756 static int
7757 svcctl_dissect_element_CreateServiceWOW64W_password(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
7759 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_CreateServiceWOW64W_password_, NDR_POINTER_UNIQUE, "Pointer to Password (uint8)",hf_svcctl_svcctl_CreateServiceWOW64W_password);
7761 return offset;
7764 static int
7765 svcctl_dissect_element_CreateServiceWOW64W_password_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
7767 offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_CreateServiceWOW64W_password__);
7769 return offset;
7772 static int
7773 svcctl_dissect_element_CreateServiceWOW64W_password__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
7775 offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_CreateServiceWOW64W_password, 0);
7777 return offset;
7780 static int
7781 svcctl_dissect_element_CreateServiceWOW64W_password_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
7783 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_CreateServiceWOW64W_password_size, 0);
7785 return offset;
7788 static int
7789 svcctl_dissect_element_CreateServiceWOW64W_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
7791 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_CreateServiceWOW64W_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_svcctl_svcctl_CreateServiceWOW64W_handle);
7793 return offset;
7796 static int
7797 svcctl_dissect_element_CreateServiceWOW64W_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
7799 offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_CreateServiceWOW64W_handle, 0);
7801 return offset;
7804 /* IDL: WERROR svcctl_CreateServiceWOW64W( */
7805 /* IDL: [in] [ref] policy_handle *scm_handle, */
7806 /* IDL: [charset(UTF16)] [in] uint16 ServiceName[*], */
7807 /* IDL: [charset(UTF16)] [in] [unique(1)] uint16 *DisplayName, */
7808 /* IDL: [in] uint32 desired_access, */
7809 /* IDL: [in] svcctl_ServiceType service_type, */
7810 /* IDL: [in] svcctl_StartType start_type, */
7811 /* IDL: [in] svcctl_ErrorControl error_control, */
7812 /* IDL: [charset(UTF16)] [in] uint16 binary_path[*], */
7813 /* IDL: [charset(UTF16)] [in] [unique(1)] uint16 *LoadOrderGroupKey, */
7814 /* IDL: [in] [out] [unique(1)] uint32 *tag_id, */
7815 /* IDL: [in] [size_is(dependencies_size)] [unique(1)] uint8 *dependencies, */
7816 /* IDL: [in] uint32 dependencies_size, */
7817 /* IDL: [charset(UTF16)] [in] [unique(1)] uint16 *service_start_name, */
7818 /* IDL: [in] [size_is(password_size)] [unique(1)] uint8 *password, */
7819 /* IDL: [in] uint32 password_size, */
7820 /* IDL: [out] [ref] policy_handle *handle */
7821 /* IDL: ); */
7823 static int
7824 svcctl_dissect_CreateServiceWOW64W_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
7826 uint32_t status;
7828 di->dcerpc_procedure_name="CreateServiceWOW64W";
7829 offset = svcctl_dissect_element_CreateServiceWOW64W_tag_id(tvb, offset, pinfo, tree, di, drep);
7830 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
7832 offset = svcctl_dissect_element_CreateServiceWOW64W_handle(tvb, offset, pinfo, tree, di, drep);
7833 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
7835 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_werror, &status);
7837 if (status != 0)
7838 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(status, &WERR_errors_ext, "Unknown DOS error 0x%08x"));
7840 return offset;
7843 static int
7844 svcctl_dissect_CreateServiceWOW64W_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
7846 di->dcerpc_procedure_name="CreateServiceWOW64W";
7847 offset = svcctl_dissect_element_CreateServiceWOW64W_scm_handle(tvb, offset, pinfo, tree, di, drep);
7848 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
7849 offset = svcctl_dissect_element_CreateServiceWOW64W_ServiceName(tvb, offset, pinfo, tree, di, drep);
7850 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
7851 offset = svcctl_dissect_element_CreateServiceWOW64W_DisplayName(tvb, offset, pinfo, tree, di, drep);
7852 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
7853 offset = svcctl_dissect_element_CreateServiceWOW64W_desired_access(tvb, offset, pinfo, tree, di, drep);
7854 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
7855 offset = svcctl_dissect_element_CreateServiceWOW64W_service_type(tvb, offset, pinfo, tree, di, drep);
7856 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
7857 offset = svcctl_dissect_element_CreateServiceWOW64W_start_type(tvb, offset, pinfo, tree, di, drep);
7858 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
7859 offset = svcctl_dissect_element_CreateServiceWOW64W_error_control(tvb, offset, pinfo, tree, di, drep);
7860 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
7861 offset = svcctl_dissect_element_CreateServiceWOW64W_binary_path(tvb, offset, pinfo, tree, di, drep);
7862 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
7863 offset = svcctl_dissect_element_CreateServiceWOW64W_LoadOrderGroupKey(tvb, offset, pinfo, tree, di, drep);
7864 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
7865 offset = svcctl_dissect_element_CreateServiceWOW64W_tag_id(tvb, offset, pinfo, tree, di, drep);
7866 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
7867 offset = svcctl_dissect_element_CreateServiceWOW64W_dependencies(tvb, offset, pinfo, tree, di, drep);
7868 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
7869 offset = svcctl_dissect_element_CreateServiceWOW64W_dependencies_size(tvb, offset, pinfo, tree, di, drep);
7870 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
7871 offset = svcctl_dissect_element_CreateServiceWOW64W_service_start_name(tvb, offset, pinfo, tree, di, drep);
7872 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
7873 offset = svcctl_dissect_element_CreateServiceWOW64W_password(tvb, offset, pinfo, tree, di, drep);
7874 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
7875 offset = svcctl_dissect_element_CreateServiceWOW64W_password_size(tvb, offset, pinfo, tree, di, drep);
7876 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
7877 return offset;
7880 /* IDL: WERROR svcctl_ScQueryServiceTagInfo( */
7881 /* IDL: */
7882 /* IDL: ); */
7884 static int
7885 svcctl_dissect_ScQueryServiceTagInfo_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
7887 uint32_t status;
7889 di->dcerpc_procedure_name="ScQueryServiceTagInfo";
7890 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_werror, &status);
7892 if (status != 0)
7893 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(status, &WERR_errors_ext, "Unknown DOS error 0x%08x"));
7895 return offset;
7898 static int
7899 svcctl_dissect_ScQueryServiceTagInfo_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
7901 di->dcerpc_procedure_name="ScQueryServiceTagInfo";
7902 return offset;
7905 /* IDL: WERROR svcctl_NotifyServiceStatusChange( */
7906 /* IDL: */
7907 /* IDL: ); */
7909 static int
7910 svcctl_dissect_NotifyServiceStatusChange_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
7912 uint32_t status;
7914 di->dcerpc_procedure_name="NotifyServiceStatusChange";
7915 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_werror, &status);
7917 if (status != 0)
7918 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(status, &WERR_errors_ext, "Unknown DOS error 0x%08x"));
7920 return offset;
7923 static int
7924 svcctl_dissect_NotifyServiceStatusChange_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
7926 di->dcerpc_procedure_name="NotifyServiceStatusChange";
7927 return offset;
7930 /* IDL: WERROR svcctl_GetNotifyResults( */
7931 /* IDL: */
7932 /* IDL: ); */
7934 static int
7935 svcctl_dissect_GetNotifyResults_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
7937 uint32_t status;
7939 di->dcerpc_procedure_name="GetNotifyResults";
7940 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_werror, &status);
7942 if (status != 0)
7943 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(status, &WERR_errors_ext, "Unknown DOS error 0x%08x"));
7945 return offset;
7948 static int
7949 svcctl_dissect_GetNotifyResults_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
7951 di->dcerpc_procedure_name="GetNotifyResults";
7952 return offset;
7955 /* IDL: WERROR svcctl_CloseNotifyHandle( */
7956 /* IDL: */
7957 /* IDL: ); */
7959 static int
7960 svcctl_dissect_CloseNotifyHandle_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
7962 uint32_t status;
7964 di->dcerpc_procedure_name="CloseNotifyHandle";
7965 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_werror, &status);
7967 if (status != 0)
7968 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(status, &WERR_errors_ext, "Unknown DOS error 0x%08x"));
7970 return offset;
7973 static int
7974 svcctl_dissect_CloseNotifyHandle_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
7976 di->dcerpc_procedure_name="CloseNotifyHandle";
7977 return offset;
7980 /* IDL: WERROR svcctl_ControlServiceExA( */
7981 /* IDL: */
7982 /* IDL: ); */
7984 static int
7985 svcctl_dissect_ControlServiceExA_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
7987 uint32_t status;
7989 di->dcerpc_procedure_name="ControlServiceExA";
7990 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_werror, &status);
7992 if (status != 0)
7993 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(status, &WERR_errors_ext, "Unknown DOS error 0x%08x"));
7995 return offset;
7998 static int
7999 svcctl_dissect_ControlServiceExA_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
8001 di->dcerpc_procedure_name="ControlServiceExA";
8002 return offset;
8005 /* IDL: WERROR svcctl_ControlServiceExW( */
8006 /* IDL: */
8007 /* IDL: ); */
8009 static int
8010 svcctl_dissect_ControlServiceExW_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
8012 uint32_t status;
8014 di->dcerpc_procedure_name="ControlServiceExW";
8015 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_werror, &status);
8017 if (status != 0)
8018 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(status, &WERR_errors_ext, "Unknown DOS error 0x%08x"));
8020 return offset;
8023 static int
8024 svcctl_dissect_ControlServiceExW_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
8026 di->dcerpc_procedure_name="ControlServiceExW";
8027 return offset;
8030 /* IDL: WERROR svcctl_ScSendPnPMessage( */
8031 /* IDL: */
8032 /* IDL: ); */
8034 static int
8035 svcctl_dissect_ScSendPnPMessage_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
8037 uint32_t status;
8039 di->dcerpc_procedure_name="ScSendPnPMessage";
8040 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_werror, &status);
8042 if (status != 0)
8043 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(status, &WERR_errors_ext, "Unknown DOS error 0x%08x"));
8045 return offset;
8048 static int
8049 svcctl_dissect_ScSendPnPMessage_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
8051 di->dcerpc_procedure_name="ScSendPnPMessage";
8052 return offset;
8055 /* IDL: WERROR svcctl_ScValidatePnPService( */
8056 /* IDL: */
8057 /* IDL: ); */
8059 static int
8060 svcctl_dissect_ScValidatePnPService_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
8062 uint32_t status;
8064 di->dcerpc_procedure_name="ScValidatePnPService";
8065 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_werror, &status);
8067 if (status != 0)
8068 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(status, &WERR_errors_ext, "Unknown DOS error 0x%08x"));
8070 return offset;
8073 static int
8074 svcctl_dissect_ScValidatePnPService_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
8076 di->dcerpc_procedure_name="ScValidatePnPService";
8077 return offset;
8080 /* IDL: WERROR svcctl_ScOpenServiceStatusHandle( */
8081 /* IDL: */
8082 /* IDL: ); */
8084 static int
8085 svcctl_dissect_ScOpenServiceStatusHandle_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
8087 uint32_t status;
8089 di->dcerpc_procedure_name="ScOpenServiceStatusHandle";
8090 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_werror, &status);
8092 if (status != 0)
8093 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(status, &WERR_errors_ext, "Unknown DOS error 0x%08x"));
8095 return offset;
8098 static int
8099 svcctl_dissect_ScOpenServiceStatusHandle_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
8101 di->dcerpc_procedure_name="ScOpenServiceStatusHandle";
8102 return offset;
8105 /* IDL: WERROR svcctl_ScQueryServiceConfig( */
8106 /* IDL: */
8107 /* IDL: ); */
8109 static int
8110 svcctl_dissect_ScQueryServiceConfig_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
8112 uint32_t status;
8114 di->dcerpc_procedure_name="ScQueryServiceConfig";
8115 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_werror, &status);
8117 if (status != 0)
8118 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(status, &WERR_errors_ext, "Unknown DOS error 0x%08x"));
8120 return offset;
8123 static int
8124 svcctl_dissect_ScQueryServiceConfig_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
8126 di->dcerpc_procedure_name="ScQueryServiceConfig";
8127 return offset;
8130 static int
8131 svcctl_dissect_element_QueryServiceConfigEx_service_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
8133 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_QueryServiceConfigEx_service_handle_, NDR_POINTER_REF, "Pointer to Service Handle (policy_handle)",hf_svcctl_svcctl_QueryServiceConfigEx_service_handle);
8135 return offset;
8138 static int
8139 svcctl_dissect_element_QueryServiceConfigEx_service_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
8141 offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_QueryServiceConfigEx_service_handle, 0);
8143 return offset;
8146 static int
8147 svcctl_dissect_element_QueryServiceConfigEx_info_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
8149 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_QueryServiceConfigEx_info_level, 0);
8151 return offset;
8154 /* IDL: WERROR svcctl_QueryServiceConfigEx( */
8155 /* IDL: [in] [ref] policy_handle *service_handle, */
8156 /* IDL: [in] uint32 info_level */
8157 /* IDL: ); */
8159 static int
8160 svcctl_dissect_QueryServiceConfigEx_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
8162 uint32_t status;
8164 di->dcerpc_procedure_name="QueryServiceConfigEx";
8165 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_werror, &status);
8167 if (status != 0)
8168 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(status, &WERR_errors_ext, "Unknown DOS error 0x%08x"));
8170 return offset;
8173 static int
8174 svcctl_dissect_QueryServiceConfigEx_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
8176 di->dcerpc_procedure_name="QueryServiceConfigEx";
8177 offset = svcctl_dissect_element_QueryServiceConfigEx_service_handle(tvb, offset, pinfo, tree, di, drep);
8178 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
8179 offset = svcctl_dissect_element_QueryServiceConfigEx_info_level(tvb, offset, pinfo, tree, di, drep);
8180 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
8181 return offset;
8184 /* IDL: WERROR svcctl_ScRegisterPreshutdownRestart( */
8185 /* IDL: */
8186 /* IDL: ); */
8188 static int
8189 svcctl_dissect_ScRegisterPreshutdownRestart_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
8191 uint32_t status;
8193 di->dcerpc_procedure_name="ScRegisterPreshutdownRestart";
8194 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_werror, &status);
8196 if (status != 0)
8197 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(status, &WERR_errors_ext, "Unknown DOS error 0x%08x"));
8199 return offset;
8202 static int
8203 svcctl_dissect_ScRegisterPreshutdownRestart_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
8205 di->dcerpc_procedure_name="ScRegisterPreshutdownRestart";
8206 return offset;
8209 /* IDL: WERROR svcctl_ScReparseServiceDatabase( */
8210 /* IDL: */
8211 /* IDL: ); */
8213 static int
8214 svcctl_dissect_ScReparseServiceDatabase_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
8216 uint32_t status;
8218 di->dcerpc_procedure_name="ScReparseServiceDatabase";
8219 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_werror, &status);
8221 if (status != 0)
8222 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(status, &WERR_errors_ext, "Unknown DOS error 0x%08x"));
8224 return offset;
8227 static int
8228 svcctl_dissect_ScReparseServiceDatabase_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
8230 di->dcerpc_procedure_name="ScReparseServiceDatabase";
8231 return offset;
8234 /* IDL: WERROR svcctl_QueryUserServiceName( */
8235 /* IDL: */
8236 /* IDL: ); */
8238 static int
8239 svcctl_dissect_QueryUserServiceName_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
8241 uint32_t status;
8243 di->dcerpc_procedure_name="QueryUserServiceName";
8244 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_werror, &status);
8246 if (status != 0)
8247 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(status, &WERR_errors_ext, "Unknown DOS error 0x%08x"));
8249 return offset;
8252 static int
8253 svcctl_dissect_QueryUserServiceName_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
8255 di->dcerpc_procedure_name="QueryUserServiceName";
8256 return offset;
8259 static int
8260 svcctl_dissect_element_CreateWowService_scm_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
8262 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_CreateWowService_scm_handle_, NDR_POINTER_REF, "Pointer to Scm Handle (policy_handle)",hf_svcctl_svcctl_CreateWowService_scm_handle);
8264 return offset;
8267 static int
8268 svcctl_dissect_element_CreateWowService_scm_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
8270 offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_CreateWowService_scm_handle, 0);
8272 return offset;
8275 static int
8276 svcctl_dissect_element_CreateWowService_ServiceName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
8278 char *data;
8280 offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(uint16_t), hf_svcctl_svcctl_CreateWowService_ServiceName, false, &data);
8281 proto_item_append_text(tree, ": %s", data);
8283 return offset;
8286 static int
8287 svcctl_dissect_element_CreateWowService_DisplayName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
8289 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_CreateWowService_DisplayName_, NDR_POINTER_UNIQUE, "Pointer to DisplayName (uint16)",hf_svcctl_svcctl_CreateWowService_DisplayName);
8291 return offset;
8294 static int
8295 svcctl_dissect_element_CreateWowService_DisplayName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
8297 char *data;
8299 offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(uint16_t), hf_svcctl_svcctl_CreateWowService_DisplayName, false, &data);
8300 proto_item_append_text(tree, ": %s", data);
8302 return offset;
8305 static int
8306 svcctl_dissect_element_CreateWowService_desired_access(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
8308 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_CreateWowService_desired_access, 0);
8310 return offset;
8313 static int
8314 svcctl_dissect_element_CreateWowService_service_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
8316 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_CreateWowService_service_type, 0);
8318 return offset;
8321 static int
8322 svcctl_dissect_element_CreateWowService_start_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
8324 offset = svcctl_dissect_enum_StartType(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_CreateWowService_start_type, 0);
8326 return offset;
8329 static int
8330 svcctl_dissect_element_CreateWowService_error_control(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
8332 offset = svcctl_dissect_enum_ErrorControl(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_CreateWowService_error_control, 0);
8334 return offset;
8337 static int
8338 svcctl_dissect_element_CreateWowService_binary_path(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
8340 char *data;
8342 offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(uint16_t), hf_svcctl_svcctl_CreateWowService_binary_path, false, &data);
8343 proto_item_append_text(tree, ": %s", data);
8345 return offset;
8348 static int
8349 svcctl_dissect_element_CreateWowService_LoadOrderGroupKey(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
8351 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_CreateWowService_LoadOrderGroupKey_, NDR_POINTER_UNIQUE, "Pointer to LoadOrderGroupKey (uint16)",hf_svcctl_svcctl_CreateWowService_LoadOrderGroupKey);
8353 return offset;
8356 static int
8357 svcctl_dissect_element_CreateWowService_LoadOrderGroupKey_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
8359 char *data;
8361 offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(uint16_t), hf_svcctl_svcctl_CreateWowService_LoadOrderGroupKey, false, &data);
8362 proto_item_append_text(tree, ": %s", data);
8364 return offset;
8367 static int
8368 svcctl_dissect_element_CreateWowService_tag_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
8370 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_CreateWowService_tag_id_, NDR_POINTER_UNIQUE, "Pointer to Tag Id (uint32)",hf_svcctl_svcctl_CreateWowService_tag_id);
8372 return offset;
8375 static int
8376 svcctl_dissect_element_CreateWowService_tag_id_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
8378 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_CreateWowService_tag_id, 0);
8380 return offset;
8383 static int
8384 svcctl_dissect_element_CreateWowService_dependencies(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
8386 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_CreateWowService_dependencies_, NDR_POINTER_UNIQUE, "Pointer to Dependencies (uint8)",hf_svcctl_svcctl_CreateWowService_dependencies);
8388 return offset;
8391 static int
8392 svcctl_dissect_element_CreateWowService_dependencies_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
8394 offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_CreateWowService_dependencies__);
8396 return offset;
8399 static int
8400 svcctl_dissect_element_CreateWowService_dependencies__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
8402 offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_CreateWowService_dependencies, 0);
8404 return offset;
8407 static int
8408 svcctl_dissect_element_CreateWowService_dependencies_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
8410 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_CreateWowService_dependencies_size, 0);
8412 return offset;
8415 static int
8416 svcctl_dissect_element_CreateWowService_service_start_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
8418 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_CreateWowService_service_start_name_, NDR_POINTER_UNIQUE, "Pointer to Service Start Name (uint16)",hf_svcctl_svcctl_CreateWowService_service_start_name);
8420 return offset;
8423 static int
8424 svcctl_dissect_element_CreateWowService_service_start_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
8426 char *data;
8428 offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(uint16_t), hf_svcctl_svcctl_CreateWowService_service_start_name, false, &data);
8429 proto_item_append_text(tree, ": %s", data);
8431 return offset;
8434 static int
8435 svcctl_dissect_element_CreateWowService_password(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
8437 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_CreateWowService_password_, NDR_POINTER_UNIQUE, "Pointer to Password (uint8)",hf_svcctl_svcctl_CreateWowService_password);
8439 return offset;
8442 static int
8443 svcctl_dissect_element_CreateWowService_password_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
8445 offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_CreateWowService_password__);
8447 return offset;
8450 static int
8451 svcctl_dissect_element_CreateWowService_password__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
8453 offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_CreateWowService_password, 0);
8455 return offset;
8458 static int
8459 svcctl_dissect_element_CreateWowService_password_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
8461 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_CreateWowService_password_size, 0);
8463 return offset;
8466 static int
8467 svcctl_dissect_element_CreateWowService_service_wow_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
8469 offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_CreateWowService_service_wow_type, 0);
8471 return offset;
8474 static int
8475 svcctl_dissect_element_CreateWowService_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
8477 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_CreateWowService_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_svcctl_svcctl_CreateWowService_handle);
8479 return offset;
8482 static int
8483 svcctl_dissect_element_CreateWowService_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
8485 offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_CreateWowService_handle, 0);
8487 return offset;
8490 /* IDL: WERROR svcctl_CreateWowService( */
8491 /* IDL: [in] [ref] policy_handle *scm_handle, */
8492 /* IDL: [charset(UTF16)] [in] uint16 ServiceName[*], */
8493 /* IDL: [charset(UTF16)] [in] [unique(1)] uint16 *DisplayName, */
8494 /* IDL: [in] uint32 desired_access, */
8495 /* IDL: [in] uint32 service_type, */
8496 /* IDL: [in] svcctl_StartType start_type, */
8497 /* IDL: [in] svcctl_ErrorControl error_control, */
8498 /* IDL: [charset(UTF16)] [in] uint16 binary_path[*], */
8499 /* IDL: [charset(UTF16)] [in] [unique(1)] uint16 *LoadOrderGroupKey, */
8500 /* IDL: [in] [out] [unique(1)] uint32 *tag_id, */
8501 /* IDL: [in] [size_is(dependencies_size)] [unique(1)] uint8 *dependencies, */
8502 /* IDL: [in] uint32 dependencies_size, */
8503 /* IDL: [charset(UTF16)] [in] [unique(1)] uint16 *service_start_name, */
8504 /* IDL: [in] [size_is(password_size)] [unique(1)] uint8 *password, */
8505 /* IDL: [in] uint32 password_size, */
8506 /* IDL: [in] uint16 service_wow_type, */
8507 /* IDL: [out] [ref] policy_handle *handle */
8508 /* IDL: ); */
8510 static int
8511 svcctl_dissect_CreateWowService_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
8513 uint32_t status;
8515 di->dcerpc_procedure_name="CreateWowService";
8516 offset = svcctl_dissect_element_CreateWowService_tag_id(tvb, offset, pinfo, tree, di, drep);
8517 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
8519 offset = svcctl_dissect_element_CreateWowService_handle(tvb, offset, pinfo, tree, di, drep);
8520 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
8522 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_werror, &status);
8524 if (status != 0)
8525 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(status, &WERR_errors_ext, "Unknown DOS error 0x%08x"));
8527 return offset;
8530 static int
8531 svcctl_dissect_CreateWowService_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
8533 di->dcerpc_procedure_name="CreateWowService";
8534 offset = svcctl_dissect_element_CreateWowService_scm_handle(tvb, offset, pinfo, tree, di, drep);
8535 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
8536 offset = svcctl_dissect_element_CreateWowService_ServiceName(tvb, offset, pinfo, tree, di, drep);
8537 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
8538 offset = svcctl_dissect_element_CreateWowService_DisplayName(tvb, offset, pinfo, tree, di, drep);
8539 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
8540 offset = svcctl_dissect_element_CreateWowService_desired_access(tvb, offset, pinfo, tree, di, drep);
8541 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
8542 offset = svcctl_dissect_element_CreateWowService_service_type(tvb, offset, pinfo, tree, di, drep);
8543 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
8544 offset = svcctl_dissect_element_CreateWowService_start_type(tvb, offset, pinfo, tree, di, drep);
8545 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
8546 offset = svcctl_dissect_element_CreateWowService_error_control(tvb, offset, pinfo, tree, di, drep);
8547 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
8548 offset = svcctl_dissect_element_CreateWowService_binary_path(tvb, offset, pinfo, tree, di, drep);
8549 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
8550 offset = svcctl_dissect_element_CreateWowService_LoadOrderGroupKey(tvb, offset, pinfo, tree, di, drep);
8551 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
8552 offset = svcctl_dissect_element_CreateWowService_tag_id(tvb, offset, pinfo, tree, di, drep);
8553 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
8554 offset = svcctl_dissect_element_CreateWowService_dependencies(tvb, offset, pinfo, tree, di, drep);
8555 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
8556 offset = svcctl_dissect_element_CreateWowService_dependencies_size(tvb, offset, pinfo, tree, di, drep);
8557 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
8558 offset = svcctl_dissect_element_CreateWowService_service_start_name(tvb, offset, pinfo, tree, di, drep);
8559 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
8560 offset = svcctl_dissect_element_CreateWowService_password(tvb, offset, pinfo, tree, di, drep);
8561 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
8562 offset = svcctl_dissect_element_CreateWowService_password_size(tvb, offset, pinfo, tree, di, drep);
8563 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
8564 offset = svcctl_dissect_element_CreateWowService_service_wow_type(tvb, offset, pinfo, tree, di, drep);
8565 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
8566 return offset;
8569 /* IDL: WERROR svcctl_GetServiceRegistryStateKey( */
8570 /* IDL: */
8571 /* IDL: ); */
8573 static int
8574 svcctl_dissect_GetServiceRegistryStateKey_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
8576 uint32_t status;
8578 di->dcerpc_procedure_name="GetServiceRegistryStateKey";
8579 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_werror, &status);
8581 if (status != 0)
8582 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(status, &WERR_errors_ext, "Unknown DOS error 0x%08x"));
8584 return offset;
8587 static int
8588 svcctl_dissect_GetServiceRegistryStateKey_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
8590 di->dcerpc_procedure_name="GetServiceRegistryStateKey";
8591 return offset;
8594 /* IDL: WERROR svcctl_GetServiceDirectory( */
8595 /* IDL: */
8596 /* IDL: ); */
8598 static int
8599 svcctl_dissect_GetServiceDirectory_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
8601 uint32_t status;
8603 di->dcerpc_procedure_name="GetServiceDirectory";
8604 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_werror, &status);
8606 if (status != 0)
8607 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(status, &WERR_errors_ext, "Unknown DOS error 0x%08x"));
8609 return offset;
8612 static int
8613 svcctl_dissect_GetServiceDirectory_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
8615 di->dcerpc_procedure_name="GetServiceDirectory";
8616 return offset;
8619 /* IDL: WERROR svcctl_GetServiceProcessToken( */
8620 /* IDL: */
8621 /* IDL: ); */
8623 static int
8624 svcctl_dissect_GetServiceProcessToken_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
8626 uint32_t status;
8628 di->dcerpc_procedure_name="GetServiceProcessToken";
8629 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_werror, &status);
8631 if (status != 0)
8632 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(status, &WERR_errors_ext, "Unknown DOS error 0x%08x"));
8634 return offset;
8637 static int
8638 svcctl_dissect_GetServiceProcessToken_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
8640 di->dcerpc_procedure_name="GetServiceProcessToken";
8641 return offset;
8644 static int
8645 svcctl_dissect_element_OpenSCManager2_database_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
8647 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_OpenSCManager2_database_name_, NDR_POINTER_UNIQUE, "Pointer to Database Name (uint16)",hf_svcctl_svcctl_OpenSCManager2_database_name);
8649 return offset;
8652 static int
8653 svcctl_dissect_element_OpenSCManager2_database_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
8655 char *data;
8657 offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(uint16_t), hf_svcctl_svcctl_OpenSCManager2_database_name, false, &data);
8658 proto_item_append_text(tree, ": %s", data);
8660 return offset;
8663 static int
8664 svcctl_dissect_element_OpenSCManager2_desired_access(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
8666 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_OpenSCManager2_desired_access, 0);
8668 return offset;
8671 static int
8672 svcctl_dissect_element_OpenSCManager2_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
8674 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_OpenSCManager2_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_svcctl_svcctl_OpenSCManager2_handle);
8676 return offset;
8679 static int
8680 svcctl_dissect_element_OpenSCManager2_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
8682 offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_OpenSCManager2_handle, 0);
8684 return offset;
8687 /* IDL: WERROR svcctl_OpenSCManager2( */
8688 /* IDL: [charset(UTF16)] [in] [unique(1)] uint16 *database_name, */
8689 /* IDL: [in] uint32 desired_access, */
8690 /* IDL: [out] [ref] policy_handle *handle */
8691 /* IDL: ); */
8693 static int
8694 svcctl_dissect_OpenSCManager2_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
8696 uint32_t status;
8698 di->dcerpc_procedure_name="OpenSCManager2";
8699 offset = svcctl_dissect_element_OpenSCManager2_handle(tvb, offset, pinfo, tree, di, drep);
8700 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
8702 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_werror, &status);
8704 if (status != 0)
8705 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(status, &WERR_errors_ext, "Unknown DOS error 0x%08x"));
8707 return offset;
8710 static int
8711 svcctl_dissect_OpenSCManager2_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
8713 di->dcerpc_procedure_name="OpenSCManager2";
8714 offset = svcctl_dissect_element_OpenSCManager2_database_name(tvb, offset, pinfo, tree, di, drep);
8715 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
8716 offset = svcctl_dissect_element_OpenSCManager2_desired_access(tvb, offset, pinfo, tree, di, drep);
8717 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
8718 return offset;
8721 /* IDL: WERROR svcctl_GetSharedServiceRegistryStateKey( */
8722 /* IDL: */
8723 /* IDL: ); */
8725 static int
8726 svcctl_dissect_GetSharedServiceRegistryStateKey_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
8728 uint32_t status;
8730 di->dcerpc_procedure_name="GetSharedServiceRegistryStateKey";
8731 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_werror, &status);
8733 if (status != 0)
8734 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(status, &WERR_errors_ext, "Unknown DOS error 0x%08x"));
8736 return offset;
8739 static int
8740 svcctl_dissect_GetSharedServiceRegistryStateKey_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
8742 di->dcerpc_procedure_name="GetSharedServiceRegistryStateKey";
8743 return offset;
8746 /* IDL: WERROR svcctl_GetSharedServiceDirectory( */
8747 /* IDL: */
8748 /* IDL: ); */
8750 static int
8751 svcctl_dissect_GetSharedServiceDirectory_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
8753 uint32_t status;
8755 di->dcerpc_procedure_name="GetSharedServiceDirectory";
8756 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_werror, &status);
8758 if (status != 0)
8759 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(status, &WERR_errors_ext, "Unknown DOS error 0x%08x"));
8761 return offset;
8764 static int
8765 svcctl_dissect_GetSharedServiceDirectory_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
8767 di->dcerpc_procedure_name="GetSharedServiceDirectory";
8768 return offset;
8772 static const dcerpc_sub_dissector svcctl_dissectors[] = {
8773 { 0, "CloseServiceHandle",
8774 svcctl_dissect_CloseServiceHandle_request, svcctl_dissect_CloseServiceHandle_response},
8775 { 1, "ControlService",
8776 svcctl_dissect_ControlService_request, svcctl_dissect_ControlService_response},
8777 { 2, "DeleteService",
8778 svcctl_dissect_DeleteService_request, svcctl_dissect_DeleteService_response},
8779 { 3, "LockServiceDatabase",
8780 svcctl_dissect_LockServiceDatabase_request, svcctl_dissect_LockServiceDatabase_response},
8781 { 4, "QueryServiceObjectSecurity",
8782 svcctl_dissect_QueryServiceObjectSecurity_request, svcctl_dissect_QueryServiceObjectSecurity_response},
8783 { 5, "SetServiceObjectSecurity",
8784 svcctl_dissect_SetServiceObjectSecurity_request, svcctl_dissect_SetServiceObjectSecurity_response},
8785 { 6, "QueryServiceStatus",
8786 svcctl_dissect_QueryServiceStatus_request, svcctl_dissect_QueryServiceStatus_response},
8787 { 7, "SetServiceStatus",
8788 svcctl_dissect_SetServiceStatus_request, svcctl_dissect_SetServiceStatus_response},
8789 { 8, "UnlockServiceDatabase",
8790 svcctl_dissect_UnlockServiceDatabase_request, svcctl_dissect_UnlockServiceDatabase_response},
8791 { 9, "NotifyBootConfigStatus",
8792 svcctl_dissect_NotifyBootConfigStatus_request, svcctl_dissect_NotifyBootConfigStatus_response},
8793 { 10, "SCSetServiceBitsW",
8794 svcctl_dissect_SCSetServiceBitsW_request, svcctl_dissect_SCSetServiceBitsW_response},
8795 { 11, "ChangeServiceConfigW",
8796 svcctl_dissect_ChangeServiceConfigW_request, svcctl_dissect_ChangeServiceConfigW_response},
8797 { 12, "CreateServiceW",
8798 svcctl_dissect_CreateServiceW_request, svcctl_dissect_CreateServiceW_response},
8799 { 13, "EnumDependentServicesW",
8800 svcctl_dissect_EnumDependentServicesW_request, svcctl_dissect_EnumDependentServicesW_response},
8801 { 14, "EnumServicesStatusW",
8802 svcctl_dissect_EnumServicesStatusW_request, svcctl_dissect_EnumServicesStatusW_response},
8803 { 15, "OpenSCManagerW",
8804 svcctl_dissect_OpenSCManagerW_request, svcctl_dissect_OpenSCManagerW_response},
8805 { 16, "OpenServiceW",
8806 svcctl_dissect_OpenServiceW_request, svcctl_dissect_OpenServiceW_response},
8807 { 17, "QueryServiceConfigW",
8808 svcctl_dissect_QueryServiceConfigW_request, svcctl_dissect_QueryServiceConfigW_response},
8809 { 18, "QueryServiceLockStatusW",
8810 svcctl_dissect_QueryServiceLockStatusW_request, svcctl_dissect_QueryServiceLockStatusW_response},
8811 { 19, "StartServiceW",
8812 svcctl_dissect_StartServiceW_request, svcctl_dissect_StartServiceW_response},
8813 { 20, "GetServiceDisplayNameW",
8814 svcctl_dissect_GetServiceDisplayNameW_request, svcctl_dissect_GetServiceDisplayNameW_response},
8815 { 21, "GetServiceKeyNameW",
8816 svcctl_dissect_GetServiceKeyNameW_request, svcctl_dissect_GetServiceKeyNameW_response},
8817 { 22, "SCSetServiceBitsA",
8818 svcctl_dissect_SCSetServiceBitsA_request, svcctl_dissect_SCSetServiceBitsA_response},
8819 { 23, "ChangeServiceConfigA",
8820 svcctl_dissect_ChangeServiceConfigA_request, svcctl_dissect_ChangeServiceConfigA_response},
8821 { 24, "CreateServiceA",
8822 svcctl_dissect_CreateServiceA_request, svcctl_dissect_CreateServiceA_response},
8823 { 25, "EnumDependentServicesA",
8824 svcctl_dissect_EnumDependentServicesA_request, svcctl_dissect_EnumDependentServicesA_response},
8825 { 26, "EnumServicesStatusA",
8826 svcctl_dissect_EnumServicesStatusA_request, svcctl_dissect_EnumServicesStatusA_response},
8827 { 27, "OpenSCManagerA",
8828 svcctl_dissect_OpenSCManagerA_request, svcctl_dissect_OpenSCManagerA_response},
8829 { 28, "OpenServiceA",
8830 svcctl_dissect_OpenServiceA_request, svcctl_dissect_OpenServiceA_response},
8831 { 29, "QueryServiceConfigA",
8832 svcctl_dissect_QueryServiceConfigA_request, svcctl_dissect_QueryServiceConfigA_response},
8833 { 30, "QueryServiceLockStatusA",
8834 svcctl_dissect_QueryServiceLockStatusA_request, svcctl_dissect_QueryServiceLockStatusA_response},
8835 { 31, "StartServiceA",
8836 svcctl_dissect_StartServiceA_request, svcctl_dissect_StartServiceA_response},
8837 { 32, "GetServiceDisplayNameA",
8838 svcctl_dissect_GetServiceDisplayNameA_request, svcctl_dissect_GetServiceDisplayNameA_response},
8839 { 33, "GetServiceKeyNameA",
8840 svcctl_dissect_GetServiceKeyNameA_request, svcctl_dissect_GetServiceKeyNameA_response},
8841 { 34, "GetCurrentGroupeStateW",
8842 svcctl_dissect_GetCurrentGroupeStateW_request, svcctl_dissect_GetCurrentGroupeStateW_response},
8843 { 35, "EnumServiceGroupW",
8844 svcctl_dissect_EnumServiceGroupW_request, svcctl_dissect_EnumServiceGroupW_response},
8845 { 36, "ChangeServiceConfig2A",
8846 svcctl_dissect_ChangeServiceConfig2A_request, svcctl_dissect_ChangeServiceConfig2A_response},
8847 { 37, "ChangeServiceConfig2W",
8848 svcctl_dissect_ChangeServiceConfig2W_request, svcctl_dissect_ChangeServiceConfig2W_response},
8849 { 38, "QueryServiceConfig2A",
8850 svcctl_dissect_QueryServiceConfig2A_request, svcctl_dissect_QueryServiceConfig2A_response},
8851 { 39, "QueryServiceConfig2W",
8852 svcctl_dissect_QueryServiceConfig2W_request, svcctl_dissect_QueryServiceConfig2W_response},
8853 { 40, "QueryServiceStatusEx",
8854 svcctl_dissect_QueryServiceStatusEx_request, svcctl_dissect_QueryServiceStatusEx_response},
8855 { 41, "EnumServicesStatusExA",
8856 svcctl_dissect_EnumServicesStatusExA_request, svcctl_dissect_EnumServicesStatusExA_response},
8857 { 42, "EnumServicesStatusExW",
8858 svcctl_dissect_EnumServicesStatusExW_request, svcctl_dissect_EnumServicesStatusExW_response},
8859 { 43, "ScBroadcastServiceControlMessage",
8860 svcctl_dissect_ScBroadcastServiceControlMessage_request, svcctl_dissect_ScBroadcastServiceControlMessage_response},
8861 { 44, "CreateServiceWOW64A",
8862 svcctl_dissect_CreateServiceWOW64A_request, svcctl_dissect_CreateServiceWOW64A_response},
8863 { 45, "CreateServiceWOW64W",
8864 svcctl_dissect_CreateServiceWOW64W_request, svcctl_dissect_CreateServiceWOW64W_response},
8865 { 46, "ScQueryServiceTagInfo",
8866 svcctl_dissect_ScQueryServiceTagInfo_request, svcctl_dissect_ScQueryServiceTagInfo_response},
8867 { 47, "NotifyServiceStatusChange",
8868 svcctl_dissect_NotifyServiceStatusChange_request, svcctl_dissect_NotifyServiceStatusChange_response},
8869 { 48, "GetNotifyResults",
8870 svcctl_dissect_GetNotifyResults_request, svcctl_dissect_GetNotifyResults_response},
8871 { 49, "CloseNotifyHandle",
8872 svcctl_dissect_CloseNotifyHandle_request, svcctl_dissect_CloseNotifyHandle_response},
8873 { 50, "ControlServiceExA",
8874 svcctl_dissect_ControlServiceExA_request, svcctl_dissect_ControlServiceExA_response},
8875 { 51, "ControlServiceExW",
8876 svcctl_dissect_ControlServiceExW_request, svcctl_dissect_ControlServiceExW_response},
8877 { 52, "ScSendPnPMessage",
8878 svcctl_dissect_ScSendPnPMessage_request, svcctl_dissect_ScSendPnPMessage_response},
8879 { 53, "ScValidatePnPService",
8880 svcctl_dissect_ScValidatePnPService_request, svcctl_dissect_ScValidatePnPService_response},
8881 { 54, "ScOpenServiceStatusHandle",
8882 svcctl_dissect_ScOpenServiceStatusHandle_request, svcctl_dissect_ScOpenServiceStatusHandle_response},
8883 { 55, "ScQueryServiceConfig",
8884 svcctl_dissect_ScQueryServiceConfig_request, svcctl_dissect_ScQueryServiceConfig_response},
8885 { 56, "QueryServiceConfigEx",
8886 svcctl_dissect_QueryServiceConfigEx_request, svcctl_dissect_QueryServiceConfigEx_response},
8887 { 57, "ScRegisterPreshutdownRestart",
8888 svcctl_dissect_ScRegisterPreshutdownRestart_request, svcctl_dissect_ScRegisterPreshutdownRestart_response},
8889 { 58, "ScReparseServiceDatabase",
8890 svcctl_dissect_ScReparseServiceDatabase_request, svcctl_dissect_ScReparseServiceDatabase_response},
8891 { 59, "QueryUserServiceName",
8892 svcctl_dissect_QueryUserServiceName_request, svcctl_dissect_QueryUserServiceName_response},
8893 { 60, "CreateWowService",
8894 svcctl_dissect_CreateWowService_request, svcctl_dissect_CreateWowService_response},
8895 { 61, "GetServiceRegistryStateKey",
8896 svcctl_dissect_GetServiceRegistryStateKey_request, svcctl_dissect_GetServiceRegistryStateKey_response},
8897 { 62, "GetServiceDirectory",
8898 svcctl_dissect_GetServiceDirectory_request, svcctl_dissect_GetServiceDirectory_response},
8899 { 63, "GetServiceProcessToken",
8900 svcctl_dissect_GetServiceProcessToken_request, svcctl_dissect_GetServiceProcessToken_response},
8901 { 64, "OpenSCManager2",
8902 svcctl_dissect_OpenSCManager2_request, svcctl_dissect_OpenSCManager2_response},
8903 { 65, "GetSharedServiceRegistryStateKey",
8904 svcctl_dissect_GetSharedServiceRegistryStateKey_request, svcctl_dissect_GetSharedServiceRegistryStateKey_response},
8905 { 66, "GetSharedServiceDirectory",
8906 svcctl_dissect_GetSharedServiceDirectory_request, svcctl_dissect_GetSharedServiceDirectory_response},
8907 { 0, NULL, NULL, NULL }
8910 void proto_register_dcerpc_svcctl(void)
8912 static hf_register_info hf[] = {
8913 { &hf_svcctl_ENUM_SERVICE_STATUSA_display_name,
8914 { "Display Name", "svcctl.ENUM_SERVICE_STATUSA.display_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
8915 { &hf_svcctl_ENUM_SERVICE_STATUSA_service_name,
8916 { "Service Name", "svcctl.ENUM_SERVICE_STATUSA.service_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
8917 { &hf_svcctl_ENUM_SERVICE_STATUSA_status,
8918 { "Status", "svcctl.ENUM_SERVICE_STATUSA.status", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
8919 { &hf_svcctl_ENUM_SERVICE_STATUSW_display_name,
8920 { "Display Name", "svcctl.ENUM_SERVICE_STATUSW.display_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
8921 { &hf_svcctl_ENUM_SERVICE_STATUSW_service_name,
8922 { "Service Name", "svcctl.ENUM_SERVICE_STATUSW.service_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
8923 { &hf_svcctl_ENUM_SERVICE_STATUSW_status,
8924 { "Status", "svcctl.ENUM_SERVICE_STATUSW.status", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
8925 { &hf_svcctl_EnumServicesStatusExA_group_name,
8926 { "Group Name", "svcctl.EnumServicesStatusExA.group_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
8927 { &hf_svcctl_EnumServicesStatusExA_info_level,
8928 { "Info Level", "svcctl.EnumServicesStatusExA.info_level", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
8929 { &hf_svcctl_EnumServicesStatusExA_needed,
8930 { "Needed", "svcctl.EnumServicesStatusExA.needed", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
8931 { &hf_svcctl_EnumServicesStatusExA_offered,
8932 { "Offered", "svcctl.EnumServicesStatusExA.offered", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
8933 { &hf_svcctl_EnumServicesStatusExA_resume_handle,
8934 { "Resume Handle", "svcctl.EnumServicesStatusExA.resume_handle", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
8935 { &hf_svcctl_EnumServicesStatusExA_scm_handle,
8936 { "Scm Handle", "svcctl.EnumServicesStatusExA.scm_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
8937 { &hf_svcctl_EnumServicesStatusExA_service_returned,
8938 { "Service Returned", "svcctl.EnumServicesStatusExA.service_returned", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
8939 { &hf_svcctl_EnumServicesStatusExA_service_type,
8940 { "Service Type", "svcctl.EnumServicesStatusExA.service_type", FT_UINT32, BASE_DEC, VALS(svcctl_svcctl_ServiceType_vals), 0, NULL, HFILL }},
8941 { &hf_svcctl_EnumServicesStatusExA_services,
8942 { "Services", "svcctl.EnumServicesStatusExA.services", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
8943 { &hf_svcctl_EnumServicesStatusExA_state,
8944 { "State", "svcctl.EnumServicesStatusExA.state", FT_UINT32, BASE_DEC, VALS(svcctl_svcctl_ServiceState_vals), 0, NULL, HFILL }},
8945 { &hf_svcctl_EnumServicesStatusExW_group_name,
8946 { "Group Name", "svcctl.EnumServicesStatusExW.group_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
8947 { &hf_svcctl_EnumServicesStatusExW_info_level,
8948 { "Info Level", "svcctl.EnumServicesStatusExW.info_level", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
8949 { &hf_svcctl_EnumServicesStatusExW_needed,
8950 { "Needed", "svcctl.EnumServicesStatusExW.needed", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
8951 { &hf_svcctl_EnumServicesStatusExW_offered,
8952 { "Offered", "svcctl.EnumServicesStatusExW.offered", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
8953 { &hf_svcctl_EnumServicesStatusExW_resume_handle,
8954 { "Resume Handle", "svcctl.EnumServicesStatusExW.resume_handle", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
8955 { &hf_svcctl_EnumServicesStatusExW_scmanager,
8956 { "Scmanager", "svcctl.EnumServicesStatusExW.scmanager", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
8957 { &hf_svcctl_EnumServicesStatusExW_service_returned,
8958 { "Service Returned", "svcctl.EnumServicesStatusExW.service_returned", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
8959 { &hf_svcctl_EnumServicesStatusExW_service_type,
8960 { "Service Type", "svcctl.EnumServicesStatusExW.service_type", FT_UINT32, BASE_DEC, VALS(svcctl_svcctl_ServiceType_vals), 0, NULL, HFILL }},
8961 { &hf_svcctl_EnumServicesStatusExW_services,
8962 { "Services", "svcctl.EnumServicesStatusExW.services", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
8963 { &hf_svcctl_EnumServicesStatusExW_state,
8964 { "State", "svcctl.EnumServicesStatusExW.state", FT_UINT32, BASE_DEC, VALS(svcctl_svcctl_ServiceState_vals), 0, NULL, HFILL }},
8965 { &hf_svcctl_QUERY_SERVICE_CONFIG_dependencies,
8966 { "Dependencies", "svcctl.QUERY_SERVICE_CONFIG.dependencies", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
8967 { &hf_svcctl_QUERY_SERVICE_CONFIG_displayname,
8968 { "Displayname", "svcctl.QUERY_SERVICE_CONFIG.displayname", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
8969 { &hf_svcctl_QUERY_SERVICE_CONFIG_error_control,
8970 { "Error Control", "svcctl.QUERY_SERVICE_CONFIG.error_control", FT_UINT32, BASE_DEC, VALS(svcctl_svcctl_ErrorControl_vals), 0, NULL, HFILL }},
8971 { &hf_svcctl_QUERY_SERVICE_CONFIG_executablepath,
8972 { "Executablepath", "svcctl.QUERY_SERVICE_CONFIG.executablepath", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
8973 { &hf_svcctl_QUERY_SERVICE_CONFIG_loadordergroup,
8974 { "Loadordergroup", "svcctl.QUERY_SERVICE_CONFIG.loadordergroup", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
8975 { &hf_svcctl_QUERY_SERVICE_CONFIG_service_type,
8976 { "Service Type", "svcctl.QUERY_SERVICE_CONFIG.service_type", FT_UINT32, BASE_DEC, VALS(svcctl_svcctl_ServiceType_vals), 0, NULL, HFILL }},
8977 { &hf_svcctl_QUERY_SERVICE_CONFIG_start_type,
8978 { "Start Type", "svcctl.QUERY_SERVICE_CONFIG.start_type", FT_UINT32, BASE_DEC, VALS(svcctl_svcctl_StartType_vals), 0, NULL, HFILL }},
8979 { &hf_svcctl_QUERY_SERVICE_CONFIG_startname,
8980 { "Startname", "svcctl.QUERY_SERVICE_CONFIG.startname", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
8981 { &hf_svcctl_QUERY_SERVICE_CONFIG_tag_id,
8982 { "Tag Id", "svcctl.QUERY_SERVICE_CONFIG.tag_id", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
8983 { &hf_svcctl_SERVICE_LOCK_STATUS_is_locked,
8984 { "Is Locked", "svcctl.SERVICE_LOCK_STATUS.is_locked", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
8985 { &hf_svcctl_SERVICE_LOCK_STATUS_lock_duration,
8986 { "Lock Duration", "svcctl.SERVICE_LOCK_STATUS.lock_duration", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
8987 { &hf_svcctl_SERVICE_LOCK_STATUS_lock_owner,
8988 { "Lock Owner", "svcctl.SERVICE_LOCK_STATUS.lock_owner", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
8989 { &hf_svcctl_SERVICE_STATUS_PROCESS_check_point,
8990 { "Check Point", "svcctl.SERVICE_STATUS_PROCESS.check_point", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
8991 { &hf_svcctl_SERVICE_STATUS_PROCESS_controls_accepted,
8992 { "Controls Accepted", "svcctl.SERVICE_STATUS_PROCESS.controls_accepted", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
8993 { &hf_svcctl_SERVICE_STATUS_PROCESS_process_id,
8994 { "Process Id", "svcctl.SERVICE_STATUS_PROCESS.process_id", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
8995 { &hf_svcctl_SERVICE_STATUS_PROCESS_service_exit_code,
8996 { "Service Exit Code", "svcctl.SERVICE_STATUS_PROCESS.service_exit_code", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
8997 { &hf_svcctl_SERVICE_STATUS_PROCESS_service_flags,
8998 { "Service Flags", "svcctl.SERVICE_STATUS_PROCESS.service_flags", FT_UINT32, BASE_DEC, VALS(svcctl_svcctl_ServiceFlags_vals), 0, NULL, HFILL }},
8999 { &hf_svcctl_SERVICE_STATUS_PROCESS_state,
9000 { "State", "svcctl.SERVICE_STATUS_PROCESS.state", FT_UINT32, BASE_DEC, VALS(svcctl_svcctl_ServiceStatus_vals), 0, NULL, HFILL }},
9001 { &hf_svcctl_SERVICE_STATUS_PROCESS_type,
9002 { "Type", "svcctl.SERVICE_STATUS_PROCESS.type", FT_UINT32, BASE_DEC, VALS(svcctl_svcctl_ServiceType_vals), 0, NULL, HFILL }},
9003 { &hf_svcctl_SERVICE_STATUS_PROCESS_wait_hint,
9004 { "Wait Hint", "svcctl.SERVICE_STATUS_PROCESS.wait_hint", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
9005 { &hf_svcctl_SERVICE_STATUS_PROCESS_win32_exit_code,
9006 { "Win32 Exit Code", "svcctl.SERVICE_STATUS_PROCESS.win32_exit_code", FT_UINT32, BASE_HEX|BASE_EXT_STRING, &WERR_errors_ext, 0, NULL, HFILL }},
9007 { &hf_svcctl_SERVICE_STATUS_check_point,
9008 { "Check Point", "svcctl.SERVICE_STATUS.check_point", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
9009 { &hf_svcctl_SERVICE_STATUS_controls_accepted,
9010 { "Controls Accepted", "svcctl.SERVICE_STATUS.controls_accepted", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
9011 { &hf_svcctl_SERVICE_STATUS_service_exit_code,
9012 { "Service Exit Code", "svcctl.SERVICE_STATUS.service_exit_code", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
9013 { &hf_svcctl_SERVICE_STATUS_state,
9014 { "State", "svcctl.SERVICE_STATUS.state", FT_UINT32, BASE_DEC, VALS(svcctl_svcctl_ServiceStatus_vals), 0, NULL, HFILL }},
9015 { &hf_svcctl_SERVICE_STATUS_type,
9016 { "Type", "svcctl.SERVICE_STATUS.type", FT_UINT32, BASE_DEC, VALS(svcctl_svcctl_ServiceType_vals), 0, NULL, HFILL }},
9017 { &hf_svcctl_SERVICE_STATUS_wait_hint,
9018 { "Wait Hint", "svcctl.SERVICE_STATUS.wait_hint", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
9019 { &hf_svcctl_SERVICE_STATUS_win32_exit_code,
9020 { "Win32 Exit Code", "svcctl.SERVICE_STATUS.win32_exit_code", FT_UINT32, BASE_HEX|BASE_EXT_STRING, &WERR_errors_ext, 0, NULL, HFILL }},
9021 { &hf_svcctl_opnum,
9022 { "Operation", "svcctl.opnum", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
9023 { &hf_svcctl_service_buffer_size,
9024 { "Buffer Size", "svcctl.services.buffer_size", FT_UINT32, BASE_DEC, NULL, 0, "NULL", HFILL }},
9025 { &hf_svcctl_service_referent_id,
9026 { "Referent ID(offset)", "svcctl.ENUM_SERVICE_STATUSW.referent_id", FT_UINT32, BASE_DEC, NULL, 0, "NULL", HFILL }},
9027 { &hf_svcctl_svcctl_ArgumentStringA_string,
9028 { "String", "svcctl.svcctl_ArgumentStringA.string", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
9029 { &hf_svcctl_svcctl_ArgumentString_string,
9030 { "String", "svcctl.svcctl_ArgumentString.string", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
9031 { &hf_svcctl_svcctl_ChangeServiceConfig2A_info,
9032 { "Info", "svcctl.svcctl_ChangeServiceConfig2A.info", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
9033 { &hf_svcctl_svcctl_ChangeServiceConfig2A_info_level,
9034 { "Info Level", "svcctl.svcctl_ChangeServiceConfig2A.info_level", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
9035 { &hf_svcctl_svcctl_ChangeServiceConfig2A_service_handle,
9036 { "Service Handle", "svcctl.svcctl_ChangeServiceConfig2A.service_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
9037 { &hf_svcctl_svcctl_ChangeServiceConfig2W_handle,
9038 { "Handle", "svcctl.svcctl_ChangeServiceConfig2W.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
9039 { &hf_svcctl_svcctl_ChangeServiceConfig2W_info,
9040 { "Info", "svcctl.svcctl_ChangeServiceConfig2W.info", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
9041 { &hf_svcctl_svcctl_ChangeServiceConfig2W_info_level,
9042 { "Info Level", "svcctl.svcctl_ChangeServiceConfig2W.info_level", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
9043 { &hf_svcctl_svcctl_ChangeServiceConfigA_binary_path,
9044 { "Binary Path", "svcctl.svcctl_ChangeServiceConfigA.binary_path", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
9045 { &hf_svcctl_svcctl_ChangeServiceConfigA_dependencies,
9046 { "Dependencies", "svcctl.svcctl_ChangeServiceConfigA.dependencies", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
9047 { &hf_svcctl_svcctl_ChangeServiceConfigA_display_name,
9048 { "Display Name", "svcctl.svcctl_ChangeServiceConfigA.display_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
9049 { &hf_svcctl_svcctl_ChangeServiceConfigA_error_control,
9050 { "Error Control", "svcctl.svcctl_ChangeServiceConfigA.error_control", FT_UINT32, BASE_DEC, VALS(svcctl_svcctl_ErrorControl_vals), 0, NULL, HFILL }},
9051 { &hf_svcctl_svcctl_ChangeServiceConfigA_load_order_group,
9052 { "Load Order Group", "svcctl.svcctl_ChangeServiceConfigA.load_order_group", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
9053 { &hf_svcctl_svcctl_ChangeServiceConfigA_password,
9054 { "Password", "svcctl.svcctl_ChangeServiceConfigA.password", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
9055 { &hf_svcctl_svcctl_ChangeServiceConfigA_service_handle,
9056 { "Service Handle", "svcctl.svcctl_ChangeServiceConfigA.service_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
9057 { &hf_svcctl_svcctl_ChangeServiceConfigA_service_start_name,
9058 { "Service Start Name", "svcctl.svcctl_ChangeServiceConfigA.service_start_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
9059 { &hf_svcctl_svcctl_ChangeServiceConfigA_service_type,
9060 { "Service Type", "svcctl.svcctl_ChangeServiceConfigA.service_type", FT_UINT32, BASE_DEC, VALS(svcctl_svcctl_ServiceType_vals), 0, NULL, HFILL }},
9061 { &hf_svcctl_svcctl_ChangeServiceConfigA_start_type,
9062 { "Start Type", "svcctl.svcctl_ChangeServiceConfigA.start_type", FT_UINT32, BASE_DEC, VALS(svcctl_svcctl_StartType_vals), 0, NULL, HFILL }},
9063 { &hf_svcctl_svcctl_ChangeServiceConfigA_tag_id,
9064 { "Tag Id", "svcctl.svcctl_ChangeServiceConfigA.tag_id", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
9065 { &hf_svcctl_svcctl_ChangeServiceConfigW_binary_path,
9066 { "Binary Path", "svcctl.svcctl_ChangeServiceConfigW.binary_path", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
9067 { &hf_svcctl_svcctl_ChangeServiceConfigW_dependencies,
9068 { "Dependencies", "svcctl.svcctl_ChangeServiceConfigW.dependencies", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
9069 { &hf_svcctl_svcctl_ChangeServiceConfigW_display_name,
9070 { "Display Name", "svcctl.svcctl_ChangeServiceConfigW.display_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
9071 { &hf_svcctl_svcctl_ChangeServiceConfigW_dwDependSize,
9072 { "DwDependSize", "svcctl.svcctl_ChangeServiceConfigW.dwDependSize", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
9073 { &hf_svcctl_svcctl_ChangeServiceConfigW_dwPwSize,
9074 { "DwPwSize", "svcctl.svcctl_ChangeServiceConfigW.dwPwSize", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
9075 { &hf_svcctl_svcctl_ChangeServiceConfigW_error_control,
9076 { "Error Control", "svcctl.svcctl_ChangeServiceConfigW.error_control", FT_UINT32, BASE_DEC, VALS(svcctl_svcctl_ErrorControl_vals), 0, NULL, HFILL }},
9077 { &hf_svcctl_svcctl_ChangeServiceConfigW_load_order_group,
9078 { "Load Order Group", "svcctl.svcctl_ChangeServiceConfigW.load_order_group", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
9079 { &hf_svcctl_svcctl_ChangeServiceConfigW_password,
9080 { "Password", "svcctl.svcctl_ChangeServiceConfigW.password", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
9081 { &hf_svcctl_svcctl_ChangeServiceConfigW_service_handle,
9082 { "Service Handle", "svcctl.svcctl_ChangeServiceConfigW.service_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
9083 { &hf_svcctl_svcctl_ChangeServiceConfigW_service_start_name,
9084 { "Service Start Name", "svcctl.svcctl_ChangeServiceConfigW.service_start_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
9085 { &hf_svcctl_svcctl_ChangeServiceConfigW_service_type,
9086 { "Service Type", "svcctl.svcctl_ChangeServiceConfigW.service_type", FT_UINT32, BASE_DEC, VALS(svcctl_svcctl_ServiceType_vals), 0, NULL, HFILL }},
9087 { &hf_svcctl_svcctl_ChangeServiceConfigW_start_type,
9088 { "Start Type", "svcctl.svcctl_ChangeServiceConfigW.start_type", FT_UINT32, BASE_DEC, VALS(svcctl_svcctl_StartType_vals), 0, NULL, HFILL }},
9089 { &hf_svcctl_svcctl_ChangeServiceConfigW_tag_id,
9090 { "Tag Id", "svcctl.svcctl_ChangeServiceConfigW.tag_id", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
9091 { &hf_svcctl_svcctl_CloseServiceHandle_object_handle,
9092 { "Object Handle", "svcctl.svcctl_CloseServiceHandle.object_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
9093 { &hf_svcctl_svcctl_ControlService_control,
9094 { "Control", "svcctl.svcctl_ControlService.control", FT_UINT32, BASE_DEC, VALS(svcctl_SERVICE_CONTROL_vals), 0, NULL, HFILL }},
9095 { &hf_svcctl_svcctl_ControlService_service_handle,
9096 { "Service Handle", "svcctl.svcctl_ControlService.service_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
9097 { &hf_svcctl_svcctl_ControlService_service_status,
9098 { "Service Status", "svcctl.svcctl_ControlService.service_status", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
9099 { &hf_svcctl_svcctl_ControlsAccepted_SERVICE_ACCEPT_HARDWAREPROFILECHANGE,
9100 { "SERVICE ACCEPT HARDWAREPROFILECHANGE", "svcctl.svcctl_ControlsAccepted.SERVICE_ACCEPT_HARDWAREPROFILECHANGE", FT_BOOLEAN, 32, TFS(&svcctl_ControlsAccepted_SERVICE_ACCEPT_HARDWAREPROFILECHANGE_tfs), ( 0x00000020 ), NULL, HFILL }},
9101 { &hf_svcctl_svcctl_ControlsAccepted_SERVICE_ACCEPT_NETBINDCHANGE,
9102 { "SERVICE ACCEPT NETBINDCHANGE", "svcctl.svcctl_ControlsAccepted.SERVICE_ACCEPT_NETBINDCHANGE", FT_BOOLEAN, 32, TFS(&svcctl_ControlsAccepted_SERVICE_ACCEPT_NETBINDCHANGE_tfs), ( 0x00000010 ), NULL, HFILL }},
9103 { &hf_svcctl_svcctl_ControlsAccepted_SERVICE_ACCEPT_PARAMCHANGE,
9104 { "SERVICE ACCEPT PARAMCHANGE", "svcctl.svcctl_ControlsAccepted.SERVICE_ACCEPT_PARAMCHANGE", FT_BOOLEAN, 32, TFS(&svcctl_ControlsAccepted_SERVICE_ACCEPT_PARAMCHANGE_tfs), ( 0x00000008 ), NULL, HFILL }},
9105 { &hf_svcctl_svcctl_ControlsAccepted_SERVICE_ACCEPT_PAUSE_CONTINUE,
9106 { "SERVICE ACCEPT PAUSE CONTINUE", "svcctl.svcctl_ControlsAccepted.SERVICE_ACCEPT_PAUSE_CONTINUE", FT_BOOLEAN, 32, TFS(&svcctl_ControlsAccepted_SERVICE_ACCEPT_PAUSE_CONTINUE_tfs), ( 0x00000002 ), NULL, HFILL }},
9107 { &hf_svcctl_svcctl_ControlsAccepted_SERVICE_ACCEPT_POWEREVENT,
9108 { "SERVICE ACCEPT POWEREVENT", "svcctl.svcctl_ControlsAccepted.SERVICE_ACCEPT_POWEREVENT", FT_BOOLEAN, 32, TFS(&svcctl_ControlsAccepted_SERVICE_ACCEPT_POWEREVENT_tfs), ( 0x00000040 ), NULL, HFILL }},
9109 { &hf_svcctl_svcctl_ControlsAccepted_SERVICE_ACCEPT_PRESHUTDOWN,
9110 { "SERVICE ACCEPT PRESHUTDOWN", "svcctl.svcctl_ControlsAccepted.SERVICE_ACCEPT_PRESHUTDOWN", FT_BOOLEAN, 32, TFS(&svcctl_ControlsAccepted_SERVICE_ACCEPT_PRESHUTDOWN_tfs), ( 0x00000100 ), NULL, HFILL }},
9111 { &hf_svcctl_svcctl_ControlsAccepted_SERVICE_ACCEPT_SESSIONCHANGE,
9112 { "SERVICE ACCEPT SESSIONCHANGE", "svcctl.svcctl_ControlsAccepted.SERVICE_ACCEPT_SESSIONCHANGE", FT_BOOLEAN, 32, TFS(&svcctl_ControlsAccepted_SERVICE_ACCEPT_SESSIONCHANGE_tfs), ( 0x00000080 ), NULL, HFILL }},
9113 { &hf_svcctl_svcctl_ControlsAccepted_SERVICE_ACCEPT_SHUTDOWN,
9114 { "SERVICE ACCEPT SHUTDOWN", "svcctl.svcctl_ControlsAccepted.SERVICE_ACCEPT_SHUTDOWN", FT_BOOLEAN, 32, TFS(&svcctl_ControlsAccepted_SERVICE_ACCEPT_SHUTDOWN_tfs), ( 0x00000004 ), NULL, HFILL }},
9115 { &hf_svcctl_svcctl_ControlsAccepted_SERVICE_ACCEPT_STOP,
9116 { "SERVICE ACCEPT STOP", "svcctl.svcctl_ControlsAccepted.SERVICE_ACCEPT_STOP", FT_BOOLEAN, 32, TFS(&svcctl_ControlsAccepted_SERVICE_ACCEPT_STOP_tfs), ( 0x00000001 ), NULL, HFILL }},
9117 { &hf_svcctl_svcctl_ControlsAccepted_SERVICE_ACCEPT_TIMECHANGE,
9118 { "SERVICE ACCEPT TIMECHANGE", "svcctl.svcctl_ControlsAccepted.SERVICE_ACCEPT_TIMECHANGE", FT_BOOLEAN, 32, TFS(&svcctl_ControlsAccepted_SERVICE_ACCEPT_TIMECHANGE_tfs), ( 0x00000200 ), NULL, HFILL }},
9119 { &hf_svcctl_svcctl_ControlsAccepted_SERVICE_ACCEPT_TRIGGEREVENT,
9120 { "SERVICE ACCEPT TRIGGEREVENT", "svcctl.svcctl_ControlsAccepted.SERVICE_ACCEPT_TRIGGEREVENT", FT_BOOLEAN, 32, TFS(&svcctl_ControlsAccepted_SERVICE_ACCEPT_TRIGGEREVENT_tfs), ( 0x00000400 ), NULL, HFILL }},
9121 { &hf_svcctl_svcctl_ControlsAccepted_SERVICE_ACCEPT_USERMODEREBOOT,
9122 { "SERVICE ACCEPT USERMODEREBOOT", "svcctl.svcctl_ControlsAccepted.SERVICE_ACCEPT_USERMODEREBOOT", FT_BOOLEAN, 32, TFS(&svcctl_ControlsAccepted_SERVICE_ACCEPT_USERMODEREBOOT_tfs), ( 0x00000800 ), NULL, HFILL }},
9123 { &hf_svcctl_svcctl_CreateServiceA_DisplayName,
9124 { "DisplayName", "svcctl.svcctl_CreateServiceA.DisplayName", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
9125 { &hf_svcctl_svcctl_CreateServiceA_LoadOrderGroupKey,
9126 { "LoadOrderGroupKey", "svcctl.svcctl_CreateServiceA.LoadOrderGroupKey", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
9127 { &hf_svcctl_svcctl_CreateServiceA_ServiceName,
9128 { "ServiceName", "svcctl.svcctl_CreateServiceA.ServiceName", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
9129 { &hf_svcctl_svcctl_CreateServiceA_binary_path,
9130 { "Binary Path", "svcctl.svcctl_CreateServiceA.binary_path", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
9131 { &hf_svcctl_svcctl_CreateServiceA_dependencies,
9132 { "Dependencies", "svcctl.svcctl_CreateServiceA.dependencies", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
9133 { &hf_svcctl_svcctl_CreateServiceA_dependencies_size,
9134 { "Dependencies Size", "svcctl.svcctl_CreateServiceA.dependencies_size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
9135 { &hf_svcctl_svcctl_CreateServiceA_desired_access,
9136 { "Desired Access", "svcctl.svcctl_CreateServiceA.desired_access", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
9137 { &hf_svcctl_svcctl_CreateServiceA_error_control,
9138 { "Error Control", "svcctl.svcctl_CreateServiceA.error_control", FT_UINT32, BASE_DEC, VALS(svcctl_svcctl_ErrorControl_vals), 0, NULL, HFILL }},
9139 { &hf_svcctl_svcctl_CreateServiceA_password,
9140 { "Password", "svcctl.svcctl_CreateServiceA.password", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
9141 { &hf_svcctl_svcctl_CreateServiceA_password_size,
9142 { "Password Size", "svcctl.svcctl_CreateServiceA.password_size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
9143 { &hf_svcctl_svcctl_CreateServiceA_scm_handle,
9144 { "Scm Handle", "svcctl.svcctl_CreateServiceA.scm_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
9145 { &hf_svcctl_svcctl_CreateServiceA_service_handle,
9146 { "Service Handle", "svcctl.svcctl_CreateServiceA.service_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
9147 { &hf_svcctl_svcctl_CreateServiceA_service_start_name,
9148 { "Service Start Name", "svcctl.svcctl_CreateServiceA.service_start_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
9149 { &hf_svcctl_svcctl_CreateServiceA_service_type,
9150 { "Service Type", "svcctl.svcctl_CreateServiceA.service_type", FT_UINT32, BASE_DEC, VALS(svcctl_svcctl_ServiceType_vals), 0, NULL, HFILL }},
9151 { &hf_svcctl_svcctl_CreateServiceA_start_type,
9152 { "Start Type", "svcctl.svcctl_CreateServiceA.start_type", FT_UINT32, BASE_DEC, VALS(svcctl_svcctl_StartType_vals), 0, NULL, HFILL }},
9153 { &hf_svcctl_svcctl_CreateServiceA_tag_id,
9154 { "Tag Id", "svcctl.svcctl_CreateServiceA.tag_id", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
9155 { &hf_svcctl_svcctl_CreateServiceWOW64A_DisplayName,
9156 { "DisplayName", "svcctl.svcctl_CreateServiceWOW64A.DisplayName", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
9157 { &hf_svcctl_svcctl_CreateServiceWOW64A_LoadOrderGroupKey,
9158 { "LoadOrderGroupKey", "svcctl.svcctl_CreateServiceWOW64A.LoadOrderGroupKey", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
9159 { &hf_svcctl_svcctl_CreateServiceWOW64A_ServiceName,
9160 { "ServiceName", "svcctl.svcctl_CreateServiceWOW64A.ServiceName", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
9161 { &hf_svcctl_svcctl_CreateServiceWOW64A_binary_path,
9162 { "Binary Path", "svcctl.svcctl_CreateServiceWOW64A.binary_path", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
9163 { &hf_svcctl_svcctl_CreateServiceWOW64A_dependencies,
9164 { "Dependencies", "svcctl.svcctl_CreateServiceWOW64A.dependencies", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
9165 { &hf_svcctl_svcctl_CreateServiceWOW64A_dependencies_size,
9166 { "Dependencies Size", "svcctl.svcctl_CreateServiceWOW64A.dependencies_size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
9167 { &hf_svcctl_svcctl_CreateServiceWOW64A_desired_access,
9168 { "Desired Access", "svcctl.svcctl_CreateServiceWOW64A.desired_access", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
9169 { &hf_svcctl_svcctl_CreateServiceWOW64A_error_control,
9170 { "Error Control", "svcctl.svcctl_CreateServiceWOW64A.error_control", FT_UINT32, BASE_DEC, VALS(svcctl_svcctl_ErrorControl_vals), 0, NULL, HFILL }},
9171 { &hf_svcctl_svcctl_CreateServiceWOW64A_handle,
9172 { "Handle", "svcctl.svcctl_CreateServiceWOW64A.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
9173 { &hf_svcctl_svcctl_CreateServiceWOW64A_password,
9174 { "Password", "svcctl.svcctl_CreateServiceWOW64A.password", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
9175 { &hf_svcctl_svcctl_CreateServiceWOW64A_password_size,
9176 { "Password Size", "svcctl.svcctl_CreateServiceWOW64A.password_size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
9177 { &hf_svcctl_svcctl_CreateServiceWOW64A_scm_handle,
9178 { "Scm Handle", "svcctl.svcctl_CreateServiceWOW64A.scm_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
9179 { &hf_svcctl_svcctl_CreateServiceWOW64A_service_start_name,
9180 { "Service Start Name", "svcctl.svcctl_CreateServiceWOW64A.service_start_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
9181 { &hf_svcctl_svcctl_CreateServiceWOW64A_service_type,
9182 { "Service Type", "svcctl.svcctl_CreateServiceWOW64A.service_type", FT_UINT32, BASE_DEC, VALS(svcctl_svcctl_ServiceType_vals), 0, NULL, HFILL }},
9183 { &hf_svcctl_svcctl_CreateServiceWOW64A_start_type,
9184 { "Start Type", "svcctl.svcctl_CreateServiceWOW64A.start_type", FT_UINT32, BASE_DEC, VALS(svcctl_svcctl_StartType_vals), 0, NULL, HFILL }},
9185 { &hf_svcctl_svcctl_CreateServiceWOW64A_tag_id,
9186 { "Tag Id", "svcctl.svcctl_CreateServiceWOW64A.tag_id", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
9187 { &hf_svcctl_svcctl_CreateServiceWOW64W_DisplayName,
9188 { "DisplayName", "svcctl.svcctl_CreateServiceWOW64W.DisplayName", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
9189 { &hf_svcctl_svcctl_CreateServiceWOW64W_LoadOrderGroupKey,
9190 { "LoadOrderGroupKey", "svcctl.svcctl_CreateServiceWOW64W.LoadOrderGroupKey", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
9191 { &hf_svcctl_svcctl_CreateServiceWOW64W_ServiceName,
9192 { "ServiceName", "svcctl.svcctl_CreateServiceWOW64W.ServiceName", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
9193 { &hf_svcctl_svcctl_CreateServiceWOW64W_binary_path,
9194 { "Binary Path", "svcctl.svcctl_CreateServiceWOW64W.binary_path", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
9195 { &hf_svcctl_svcctl_CreateServiceWOW64W_dependencies,
9196 { "Dependencies", "svcctl.svcctl_CreateServiceWOW64W.dependencies", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
9197 { &hf_svcctl_svcctl_CreateServiceWOW64W_dependencies_size,
9198 { "Dependencies Size", "svcctl.svcctl_CreateServiceWOW64W.dependencies_size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
9199 { &hf_svcctl_svcctl_CreateServiceWOW64W_desired_access,
9200 { "Desired Access", "svcctl.svcctl_CreateServiceWOW64W.desired_access", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
9201 { &hf_svcctl_svcctl_CreateServiceWOW64W_error_control,
9202 { "Error Control", "svcctl.svcctl_CreateServiceWOW64W.error_control", FT_UINT32, BASE_DEC, VALS(svcctl_svcctl_ErrorControl_vals), 0, NULL, HFILL }},
9203 { &hf_svcctl_svcctl_CreateServiceWOW64W_handle,
9204 { "Handle", "svcctl.svcctl_CreateServiceWOW64W.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
9205 { &hf_svcctl_svcctl_CreateServiceWOW64W_password,
9206 { "Password", "svcctl.svcctl_CreateServiceWOW64W.password", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
9207 { &hf_svcctl_svcctl_CreateServiceWOW64W_password_size,
9208 { "Password Size", "svcctl.svcctl_CreateServiceWOW64W.password_size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
9209 { &hf_svcctl_svcctl_CreateServiceWOW64W_scm_handle,
9210 { "Scm Handle", "svcctl.svcctl_CreateServiceWOW64W.scm_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
9211 { &hf_svcctl_svcctl_CreateServiceWOW64W_service_start_name,
9212 { "Service Start Name", "svcctl.svcctl_CreateServiceWOW64W.service_start_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
9213 { &hf_svcctl_svcctl_CreateServiceWOW64W_service_type,
9214 { "Service Type", "svcctl.svcctl_CreateServiceWOW64W.service_type", FT_UINT32, BASE_DEC, VALS(svcctl_svcctl_ServiceType_vals), 0, NULL, HFILL }},
9215 { &hf_svcctl_svcctl_CreateServiceWOW64W_start_type,
9216 { "Start Type", "svcctl.svcctl_CreateServiceWOW64W.start_type", FT_UINT32, BASE_DEC, VALS(svcctl_svcctl_StartType_vals), 0, NULL, HFILL }},
9217 { &hf_svcctl_svcctl_CreateServiceWOW64W_tag_id,
9218 { "Tag Id", "svcctl.svcctl_CreateServiceWOW64W.tag_id", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
9219 { &hf_svcctl_svcctl_CreateServiceW_DisplayName,
9220 { "DisplayName", "svcctl.svcctl_CreateServiceW.DisplayName", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
9221 { &hf_svcctl_svcctl_CreateServiceW_LoadOrderGroup,
9222 { "LoadOrderGroup", "svcctl.svcctl_CreateServiceW.LoadOrderGroup", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
9223 { &hf_svcctl_svcctl_CreateServiceW_ServiceName,
9224 { "ServiceName", "svcctl.svcctl_CreateServiceW.ServiceName", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
9225 { &hf_svcctl_svcctl_CreateServiceW_binary_path,
9226 { "Binary Path", "svcctl.svcctl_CreateServiceW.binary_path", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
9227 { &hf_svcctl_svcctl_CreateServiceW_dependencies,
9228 { "Dependencies", "svcctl.svcctl_CreateServiceW.dependencies", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
9229 { &hf_svcctl_svcctl_CreateServiceW_dependencies_size,
9230 { "Dependencies Size", "svcctl.svcctl_CreateServiceW.dependencies_size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
9231 { &hf_svcctl_svcctl_CreateServiceW_desired_access,
9232 { "Desired Access", "svcctl.svcctl_CreateServiceW.desired_access", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
9233 { &hf_svcctl_svcctl_CreateServiceW_error_control,
9234 { "Error Control", "svcctl.svcctl_CreateServiceW.error_control", FT_UINT32, BASE_DEC, VALS(svcctl_svcctl_ErrorControl_vals), 0, NULL, HFILL }},
9235 { &hf_svcctl_svcctl_CreateServiceW_password,
9236 { "Password", "svcctl.svcctl_CreateServiceW.password", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
9237 { &hf_svcctl_svcctl_CreateServiceW_password_size,
9238 { "Password Size", "svcctl.svcctl_CreateServiceW.password_size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
9239 { &hf_svcctl_svcctl_CreateServiceW_scm_handle,
9240 { "Scm Handle", "svcctl.svcctl_CreateServiceW.scm_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
9241 { &hf_svcctl_svcctl_CreateServiceW_service_handle,
9242 { "Service Handle", "svcctl.svcctl_CreateServiceW.service_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
9243 { &hf_svcctl_svcctl_CreateServiceW_service_start_name,
9244 { "Service Start Name", "svcctl.svcctl_CreateServiceW.service_start_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
9245 { &hf_svcctl_svcctl_CreateServiceW_service_type,
9246 { "Service Type", "svcctl.svcctl_CreateServiceW.service_type", FT_UINT32, BASE_DEC, VALS(svcctl_svcctl_ServiceType_vals), 0, NULL, HFILL }},
9247 { &hf_svcctl_svcctl_CreateServiceW_start_type,
9248 { "Start Type", "svcctl.svcctl_CreateServiceW.start_type", FT_UINT32, BASE_DEC, VALS(svcctl_svcctl_StartType_vals), 0, NULL, HFILL }},
9249 { &hf_svcctl_svcctl_CreateServiceW_tag_id,
9250 { "Tag Id", "svcctl.svcctl_CreateServiceW.tag_id", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
9251 { &hf_svcctl_svcctl_CreateWowService_DisplayName,
9252 { "DisplayName", "svcctl.svcctl_CreateWowService.DisplayName", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
9253 { &hf_svcctl_svcctl_CreateWowService_LoadOrderGroupKey,
9254 { "LoadOrderGroupKey", "svcctl.svcctl_CreateWowService.LoadOrderGroupKey", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
9255 { &hf_svcctl_svcctl_CreateWowService_ServiceName,
9256 { "ServiceName", "svcctl.svcctl_CreateWowService.ServiceName", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
9257 { &hf_svcctl_svcctl_CreateWowService_binary_path,
9258 { "Binary Path", "svcctl.svcctl_CreateWowService.binary_path", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
9259 { &hf_svcctl_svcctl_CreateWowService_dependencies,
9260 { "Dependencies", "svcctl.svcctl_CreateWowService.dependencies", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
9261 { &hf_svcctl_svcctl_CreateWowService_dependencies_size,
9262 { "Dependencies Size", "svcctl.svcctl_CreateWowService.dependencies_size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
9263 { &hf_svcctl_svcctl_CreateWowService_desired_access,
9264 { "Desired Access", "svcctl.svcctl_CreateWowService.desired_access", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
9265 { &hf_svcctl_svcctl_CreateWowService_error_control,
9266 { "Error Control", "svcctl.svcctl_CreateWowService.error_control", FT_UINT32, BASE_DEC, VALS(svcctl_svcctl_ErrorControl_vals), 0, NULL, HFILL }},
9267 { &hf_svcctl_svcctl_CreateWowService_handle,
9268 { "Handle", "svcctl.svcctl_CreateWowService.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
9269 { &hf_svcctl_svcctl_CreateWowService_password,
9270 { "Password", "svcctl.svcctl_CreateWowService.password", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
9271 { &hf_svcctl_svcctl_CreateWowService_password_size,
9272 { "Password Size", "svcctl.svcctl_CreateWowService.password_size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
9273 { &hf_svcctl_svcctl_CreateWowService_scm_handle,
9274 { "Scm Handle", "svcctl.svcctl_CreateWowService.scm_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
9275 { &hf_svcctl_svcctl_CreateWowService_service_start_name,
9276 { "Service Start Name", "svcctl.svcctl_CreateWowService.service_start_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
9277 { &hf_svcctl_svcctl_CreateWowService_service_type,
9278 { "Service Type", "svcctl.svcctl_CreateWowService.service_type", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
9279 { &hf_svcctl_svcctl_CreateWowService_service_wow_type,
9280 { "Service Wow Type", "svcctl.svcctl_CreateWowService.service_wow_type", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
9281 { &hf_svcctl_svcctl_CreateWowService_start_type,
9282 { "Start Type", "svcctl.svcctl_CreateWowService.start_type", FT_UINT32, BASE_DEC, VALS(svcctl_svcctl_StartType_vals), 0, NULL, HFILL }},
9283 { &hf_svcctl_svcctl_CreateWowService_tag_id,
9284 { "Tag Id", "svcctl.svcctl_CreateWowService.tag_id", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
9285 { &hf_svcctl_svcctl_DeleteService_service_handle,
9286 { "Service Handle", "svcctl.svcctl_DeleteService.service_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
9287 { &hf_svcctl_svcctl_EnumDependentServicesA_needed,
9288 { "Needed", "svcctl.svcctl_EnumDependentServicesA.needed", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
9289 { &hf_svcctl_svcctl_EnumDependentServicesA_offered,
9290 { "Offered", "svcctl.svcctl_EnumDependentServicesA.offered", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
9291 { &hf_svcctl_svcctl_EnumDependentServicesA_service_handle,
9292 { "Service Handle", "svcctl.svcctl_EnumDependentServicesA.service_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
9293 { &hf_svcctl_svcctl_EnumDependentServicesA_service_status,
9294 { "Service Status", "svcctl.svcctl_EnumDependentServicesA.service_status", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
9295 { &hf_svcctl_svcctl_EnumDependentServicesA_services_returned,
9296 { "Services Returned", "svcctl.svcctl_EnumDependentServicesA.services_returned", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
9297 { &hf_svcctl_svcctl_EnumDependentServicesA_state,
9298 { "State", "svcctl.svcctl_EnumDependentServicesA.state", FT_UINT32, BASE_DEC, VALS(svcctl_svcctl_ServiceState_vals), 0, NULL, HFILL }},
9299 { &hf_svcctl_svcctl_EnumDependentServicesW_bytesneeded,
9300 { "Bytesneeded", "svcctl.svcctl_EnumDependentServicesW.bytesneeded", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
9301 { &hf_svcctl_svcctl_EnumDependentServicesW_offered,
9302 { "Offered", "svcctl.svcctl_EnumDependentServicesW.offered", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
9303 { &hf_svcctl_svcctl_EnumDependentServicesW_service_handle,
9304 { "Service Handle", "svcctl.svcctl_EnumDependentServicesW.service_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
9305 { &hf_svcctl_svcctl_EnumDependentServicesW_service_state,
9306 { "Service State", "svcctl.svcctl_EnumDependentServicesW.service_state", FT_UINT32, BASE_DEC, VALS(svcctl_svcctl_ServiceState_vals), 0, NULL, HFILL }},
9307 { &hf_svcctl_svcctl_EnumDependentServicesW_service_status,
9308 { "Service Status", "svcctl.svcctl_EnumDependentServicesW.service_status", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
9309 { &hf_svcctl_svcctl_EnumDependentServicesW_services_returned,
9310 { "Services Returned", "svcctl.svcctl_EnumDependentServicesW.services_returned", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
9311 { &hf_svcctl_svcctl_EnumServiceGroupW_ResumeIndex,
9312 { "ResumeIndex", "svcctl.svcctl_EnumServiceGroupW.ResumeIndex", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
9313 { &hf_svcctl_svcctl_EnumServiceGroupW_cbBufSize,
9314 { "CbBufSize", "svcctl.svcctl_EnumServiceGroupW.cbBufSize", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
9315 { &hf_svcctl_svcctl_EnumServiceGroupW_lpBuffer,
9316 { "LpBuffer", "svcctl.svcctl_EnumServiceGroupW.lpBuffer", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
9317 { &hf_svcctl_svcctl_EnumServiceGroupW_lpServicesReturned,
9318 { "LpServicesReturned", "svcctl.svcctl_EnumServiceGroupW.lpServicesReturned", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
9319 { &hf_svcctl_svcctl_EnumServiceGroupW_pcbBytesNeeded,
9320 { "PcbBytesNeeded", "svcctl.svcctl_EnumServiceGroupW.pcbBytesNeeded", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
9321 { &hf_svcctl_svcctl_EnumServiceGroupW_pszGroupName,
9322 { "PszGroupName", "svcctl.svcctl_EnumServiceGroupW.pszGroupName", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
9323 { &hf_svcctl_svcctl_EnumServiceGroupW_scm_handle,
9324 { "Scm Handle", "svcctl.svcctl_EnumServiceGroupW.scm_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
9325 { &hf_svcctl_svcctl_EnumServiceGroupW_service_state,
9326 { "Service State", "svcctl.svcctl_EnumServiceGroupW.service_state", FT_UINT32, BASE_DEC, VALS(svcctl_svcctl_ServiceState_vals), 0, NULL, HFILL }},
9327 { &hf_svcctl_svcctl_EnumServiceGroupW_service_type,
9328 { "Service Type", "svcctl.svcctl_EnumServiceGroupW.service_type", FT_UINT32, BASE_DEC, VALS(svcctl_svcctl_ServiceType_vals), 0, NULL, HFILL }},
9329 { &hf_svcctl_svcctl_EnumServicesStatusA_needed,
9330 { "Needed", "svcctl.svcctl_EnumServicesStatusA.needed", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
9331 { &hf_svcctl_svcctl_EnumServicesStatusA_offered,
9332 { "Offered", "svcctl.svcctl_EnumServicesStatusA.offered", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
9333 { &hf_svcctl_svcctl_EnumServicesStatusA_resume_handle,
9334 { "Resume Handle", "svcctl.svcctl_EnumServicesStatusA.resume_handle", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
9335 { &hf_svcctl_svcctl_EnumServicesStatusA_scm_handle,
9336 { "Scm Handle", "svcctl.svcctl_EnumServicesStatusA.scm_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
9337 { &hf_svcctl_svcctl_EnumServicesStatusA_service,
9338 { "Service", "svcctl.svcctl_EnumServicesStatusA.service", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
9339 { &hf_svcctl_svcctl_EnumServicesStatusA_service_state,
9340 { "Service State", "svcctl.svcctl_EnumServicesStatusA.service_state", FT_UINT32, BASE_DEC, VALS(svcctl_svcctl_ServiceState_vals), 0, NULL, HFILL }},
9341 { &hf_svcctl_svcctl_EnumServicesStatusA_service_type,
9342 { "Service Type", "svcctl.svcctl_EnumServicesStatusA.service_type", FT_UINT32, BASE_DEC, VALS(svcctl_svcctl_ServiceType_vals), 0, NULL, HFILL }},
9343 { &hf_svcctl_svcctl_EnumServicesStatusA_services_returned,
9344 { "Services Returned", "svcctl.svcctl_EnumServicesStatusA.services_returned", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
9345 { &hf_svcctl_svcctl_EnumServicesStatusW_bytes_needed,
9346 { "Bytes Needed", "svcctl.svcctl_EnumServicesStatusW.bytes_needed", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
9347 { &hf_svcctl_svcctl_EnumServicesStatusW_offered,
9348 { "Offered", "svcctl.svcctl_EnumServicesStatusW.offered", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
9349 { &hf_svcctl_svcctl_EnumServicesStatusW_resume_index,
9350 { "Resume Index", "svcctl.svcctl_EnumServicesStatusW.resume_index", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
9351 { &hf_svcctl_svcctl_EnumServicesStatusW_scm_handle,
9352 { "Scm Handle", "svcctl.svcctl_EnumServicesStatusW.scm_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
9353 { &hf_svcctl_svcctl_EnumServicesStatusW_service_state,
9354 { "Service State", "svcctl.svcctl_EnumServicesStatusW.service_state", FT_UINT32, BASE_DEC, VALS(svcctl_svcctl_ServiceState_vals), 0, NULL, HFILL }},
9355 { &hf_svcctl_svcctl_EnumServicesStatusW_service_type,
9356 { "Service Type", "svcctl.svcctl_EnumServicesStatusW.service_type", FT_UINT32, BASE_DEC, VALS(svcctl_svcctl_ServiceType_vals), 0, NULL, HFILL }},
9357 { &hf_svcctl_svcctl_EnumServicesStatusW_services,
9358 { "Services", "svcctl.svcctl_EnumServicesStatusW.services", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
9359 { &hf_svcctl_svcctl_EnumServicesStatusW_services_returned,
9360 { "Services Returned", "svcctl.svcctl_EnumServicesStatusW.services_returned", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
9361 { &hf_svcctl_svcctl_GetCurrentGroupeStateW_handle,
9362 { "Handle", "svcctl.svcctl_GetCurrentGroupeStateW.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
9363 { &hf_svcctl_svcctl_GetCurrentGroupeStateW_lpLoadOrderGroup,
9364 { "LpLoadOrderGroup", "svcctl.svcctl_GetCurrentGroupeStateW.lpLoadOrderGroup", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
9365 { &hf_svcctl_svcctl_GetCurrentGroupeStateW_state,
9366 { "State", "svcctl.svcctl_GetCurrentGroupeStateW.state", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
9367 { &hf_svcctl_svcctl_GetServiceDisplayNameA_display_name,
9368 { "Display Name", "svcctl.svcctl_GetServiceDisplayNameA.display_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
9369 { &hf_svcctl_svcctl_GetServiceDisplayNameA_display_name_length,
9370 { "Display Name Length", "svcctl.svcctl_GetServiceDisplayNameA.display_name_length", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
9371 { &hf_svcctl_svcctl_GetServiceDisplayNameA_handle,
9372 { "Handle", "svcctl.svcctl_GetServiceDisplayNameA.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
9373 { &hf_svcctl_svcctl_GetServiceDisplayNameA_service_name,
9374 { "Service Name", "svcctl.svcctl_GetServiceDisplayNameA.service_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
9375 { &hf_svcctl_svcctl_GetServiceDisplayNameW_display_name,
9376 { "Display Name", "svcctl.svcctl_GetServiceDisplayNameW.display_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
9377 { &hf_svcctl_svcctl_GetServiceDisplayNameW_display_name_length,
9378 { "Display Name Length", "svcctl.svcctl_GetServiceDisplayNameW.display_name_length", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
9379 { &hf_svcctl_svcctl_GetServiceDisplayNameW_scm_handle,
9380 { "Scm Handle", "svcctl.svcctl_GetServiceDisplayNameW.scm_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
9381 { &hf_svcctl_svcctl_GetServiceDisplayNameW_service_name,
9382 { "Service Name", "svcctl.svcctl_GetServiceDisplayNameW.service_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
9383 { &hf_svcctl_svcctl_GetServiceKeyNameA_display_name_length,
9384 { "Display Name Length", "svcctl.svcctl_GetServiceKeyNameA.display_name_length", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
9385 { &hf_svcctl_svcctl_GetServiceKeyNameA_key_name,
9386 { "Key Name", "svcctl.svcctl_GetServiceKeyNameA.key_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
9387 { &hf_svcctl_svcctl_GetServiceKeyNameA_scm_handle,
9388 { "Scm Handle", "svcctl.svcctl_GetServiceKeyNameA.scm_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
9389 { &hf_svcctl_svcctl_GetServiceKeyNameA_service_name,
9390 { "Service Name", "svcctl.svcctl_GetServiceKeyNameA.service_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
9391 { &hf_svcctl_svcctl_GetServiceKeyNameW_display_name,
9392 { "Display Name", "svcctl.svcctl_GetServiceKeyNameW.display_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
9393 { &hf_svcctl_svcctl_GetServiceKeyNameW_scm_handle,
9394 { "Scm Handle", "svcctl.svcctl_GetServiceKeyNameW.scm_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
9395 { &hf_svcctl_svcctl_GetServiceKeyNameW_service_name,
9396 { "Service Name", "svcctl.svcctl_GetServiceKeyNameW.service_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
9397 { &hf_svcctl_svcctl_GetServiceKeyNameW_service_name_length,
9398 { "Service Name Length", "svcctl.svcctl_GetServiceKeyNameW.service_name_length", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
9399 { &hf_svcctl_svcctl_LockServiceDatabase_lock_handle,
9400 { "Lock Handle", "svcctl.svcctl_LockServiceDatabase.lock_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
9401 { &hf_svcctl_svcctl_LockServiceDatabase_scm_handle,
9402 { "Scm Handle", "svcctl.svcctl_LockServiceDatabase.scm_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
9403 { &hf_svcctl_svcctl_MgrAccessMask_SC_RIGHT_MGR_ALL_ACCESS,
9404 { "SC RIGHT MGR ALL ACCESS", "svcctl.svcctl_MgrAccessMask.SC_RIGHT_MGR_ALL_ACCESS", FT_BOOLEAN, 32, TFS(&svcctl_MgrAccessMask_SC_RIGHT_MGR_ALL_ACCESS_tfs), ( 0x000F003F ), NULL, HFILL }},
9405 { &hf_svcctl_svcctl_MgrAccessMask_SC_RIGHT_MGR_CONNECT,
9406 { "SC RIGHT MGR CONNECT", "svcctl.svcctl_MgrAccessMask.SC_RIGHT_MGR_CONNECT", FT_BOOLEAN, 32, TFS(&svcctl_MgrAccessMask_SC_RIGHT_MGR_CONNECT_tfs), ( 0x00000001 ), NULL, HFILL }},
9407 { &hf_svcctl_svcctl_MgrAccessMask_SC_RIGHT_MGR_CREATE_SERVICE,
9408 { "SC RIGHT MGR CREATE SERVICE", "svcctl.svcctl_MgrAccessMask.SC_RIGHT_MGR_CREATE_SERVICE", FT_BOOLEAN, 32, TFS(&svcctl_MgrAccessMask_SC_RIGHT_MGR_CREATE_SERVICE_tfs), ( 0x00000002 ), NULL, HFILL }},
9409 { &hf_svcctl_svcctl_MgrAccessMask_SC_RIGHT_MGR_ENUMERATE_SERVICE,
9410 { "SC RIGHT MGR ENUMERATE SERVICE", "svcctl.svcctl_MgrAccessMask.SC_RIGHT_MGR_ENUMERATE_SERVICE", FT_BOOLEAN, 32, TFS(&svcctl_MgrAccessMask_SC_RIGHT_MGR_ENUMERATE_SERVICE_tfs), ( 0x00000004 ), NULL, HFILL }},
9411 { &hf_svcctl_svcctl_MgrAccessMask_SC_RIGHT_MGR_LOCK,
9412 { "SC RIGHT MGR LOCK", "svcctl.svcctl_MgrAccessMask.SC_RIGHT_MGR_LOCK", FT_BOOLEAN, 32, TFS(&svcctl_MgrAccessMask_SC_RIGHT_MGR_LOCK_tfs), ( 0x00000008 ), NULL, HFILL }},
9413 { &hf_svcctl_svcctl_MgrAccessMask_SC_RIGHT_MGR_MODIFY_BOOT_CONFIG,
9414 { "SC RIGHT MGR MODIFY BOOT CONFIG", "svcctl.svcctl_MgrAccessMask.SC_RIGHT_MGR_MODIFY_BOOT_CONFIG", FT_BOOLEAN, 32, TFS(&svcctl_MgrAccessMask_SC_RIGHT_MGR_MODIFY_BOOT_CONFIG_tfs), ( 0x00000020 ), NULL, HFILL }},
9415 { &hf_svcctl_svcctl_MgrAccessMask_SC_RIGHT_MGR_QUERY_LOCK_STATUS,
9416 { "SC RIGHT MGR QUERY LOCK STATUS", "svcctl.svcctl_MgrAccessMask.SC_RIGHT_MGR_QUERY_LOCK_STATUS", FT_BOOLEAN, 32, TFS(&svcctl_MgrAccessMask_SC_RIGHT_MGR_QUERY_LOCK_STATUS_tfs), ( 0x00000010 ), NULL, HFILL }},
9417 { &hf_svcctl_svcctl_NotifyBootConfigStatus_boot_acceptable,
9418 { "Boot Acceptable", "svcctl.svcctl_NotifyBootConfigStatus.boot_acceptable", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
9419 { &hf_svcctl_svcctl_NotifyBootConfigStatus_machine_name,
9420 { "Machine Name", "svcctl.svcctl_NotifyBootConfigStatus.machine_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
9421 { &hf_svcctl_svcctl_OpenSCManager2_database_name,
9422 { "Database Name", "svcctl.svcctl_OpenSCManager2.database_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
9423 { &hf_svcctl_svcctl_OpenSCManager2_desired_access,
9424 { "Desired Access", "svcctl.svcctl_OpenSCManager2.desired_access", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
9425 { &hf_svcctl_svcctl_OpenSCManager2_handle,
9426 { "Handle", "svcctl.svcctl_OpenSCManager2.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
9427 { &hf_svcctl_svcctl_OpenSCManagerA_DatabaseName,
9428 { "DatabaseName", "svcctl.svcctl_OpenSCManagerA.DatabaseName", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
9429 { &hf_svcctl_svcctl_OpenSCManagerA_MachineName,
9430 { "MachineName", "svcctl.svcctl_OpenSCManagerA.MachineName", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
9431 { &hf_svcctl_svcctl_OpenSCManagerA_access_mask,
9432 { "Access Mask", "svcctl.svcctl_OpenSCManagerA.access_mask", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
9433 { &hf_svcctl_svcctl_OpenSCManagerA_scm_handle,
9434 { "Scm Handle", "svcctl.svcctl_OpenSCManagerA.scm_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
9435 { &hf_svcctl_svcctl_OpenSCManagerW_DatabaseName,
9436 { "DatabaseName", "svcctl.svcctl_OpenSCManagerW.DatabaseName", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
9437 { &hf_svcctl_svcctl_OpenSCManagerW_MachineName,
9438 { "MachineName", "svcctl.svcctl_OpenSCManagerW.MachineName", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
9439 { &hf_svcctl_svcctl_OpenSCManagerW_access_mask,
9440 { "Access Mask", "svcctl.svcctl_OpenSCManagerW.access_mask", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
9441 { &hf_svcctl_svcctl_OpenSCManagerW_scm_handle,
9442 { "Scm Handle", "svcctl.svcctl_OpenSCManagerW.scm_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
9443 { &hf_svcctl_svcctl_OpenServiceA_ServiceName,
9444 { "ServiceName", "svcctl.svcctl_OpenServiceA.ServiceName", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
9445 { &hf_svcctl_svcctl_OpenServiceA_access_mask,
9446 { "Access Mask", "svcctl.svcctl_OpenServiceA.access_mask", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
9447 { &hf_svcctl_svcctl_OpenServiceA_scm_handle,
9448 { "Scm Handle", "svcctl.svcctl_OpenServiceA.scm_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
9449 { &hf_svcctl_svcctl_OpenServiceA_service_handle,
9450 { "Service Handle", "svcctl.svcctl_OpenServiceA.service_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
9451 { &hf_svcctl_svcctl_OpenServiceW_ServiceName,
9452 { "ServiceName", "svcctl.svcctl_OpenServiceW.ServiceName", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
9453 { &hf_svcctl_svcctl_OpenServiceW_access_mask,
9454 { "Access Mask", "svcctl.svcctl_OpenServiceW.access_mask", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
9455 { &hf_svcctl_svcctl_OpenServiceW_scm_handle,
9456 { "Scm Handle", "svcctl.svcctl_OpenServiceW.scm_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
9457 { &hf_svcctl_svcctl_OpenServiceW_service_handle,
9458 { "Service Handle", "svcctl.svcctl_OpenServiceW.service_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
9459 { &hf_svcctl_svcctl_QueryServiceConfig2A_buffer,
9460 { "Buffer", "svcctl.svcctl_QueryServiceConfig2A.buffer", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
9461 { &hf_svcctl_svcctl_QueryServiceConfig2A_handle,
9462 { "Handle", "svcctl.svcctl_QueryServiceConfig2A.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
9463 { &hf_svcctl_svcctl_QueryServiceConfig2A_info_level,
9464 { "Info Level", "svcctl.svcctl_QueryServiceConfig2A.info_level", FT_UINT32, BASE_DEC, VALS(svcctl_svcctl_ConfigLevel_vals), 0, NULL, HFILL }},
9465 { &hf_svcctl_svcctl_QueryServiceConfig2A_needed,
9466 { "Needed", "svcctl.svcctl_QueryServiceConfig2A.needed", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
9467 { &hf_svcctl_svcctl_QueryServiceConfig2A_offered,
9468 { "Offered", "svcctl.svcctl_QueryServiceConfig2A.offered", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
9469 { &hf_svcctl_svcctl_QueryServiceConfig2W_buffer,
9470 { "Buffer", "svcctl.svcctl_QueryServiceConfig2W.buffer", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
9471 { &hf_svcctl_svcctl_QueryServiceConfig2W_handle,
9472 { "Handle", "svcctl.svcctl_QueryServiceConfig2W.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
9473 { &hf_svcctl_svcctl_QueryServiceConfig2W_info_level,
9474 { "Info Level", "svcctl.svcctl_QueryServiceConfig2W.info_level", FT_UINT32, BASE_DEC, VALS(svcctl_svcctl_ConfigLevel_vals), 0, NULL, HFILL }},
9475 { &hf_svcctl_svcctl_QueryServiceConfig2W_needed,
9476 { "Needed", "svcctl.svcctl_QueryServiceConfig2W.needed", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
9477 { &hf_svcctl_svcctl_QueryServiceConfig2W_offered,
9478 { "Offered", "svcctl.svcctl_QueryServiceConfig2W.offered", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
9479 { &hf_svcctl_svcctl_QueryServiceConfigA_needed,
9480 { "Needed", "svcctl.svcctl_QueryServiceConfigA.needed", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
9481 { &hf_svcctl_svcctl_QueryServiceConfigA_offered,
9482 { "Offered", "svcctl.svcctl_QueryServiceConfigA.offered", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
9483 { &hf_svcctl_svcctl_QueryServiceConfigA_query,
9484 { "Query", "svcctl.svcctl_QueryServiceConfigA.query", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
9485 { &hf_svcctl_svcctl_QueryServiceConfigA_service_handle,
9486 { "Service Handle", "svcctl.svcctl_QueryServiceConfigA.service_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
9487 { &hf_svcctl_svcctl_QueryServiceConfigEx_info_level,
9488 { "Info Level", "svcctl.svcctl_QueryServiceConfigEx.info_level", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
9489 { &hf_svcctl_svcctl_QueryServiceConfigEx_service_handle,
9490 { "Service Handle", "svcctl.svcctl_QueryServiceConfigEx.service_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
9491 { &hf_svcctl_svcctl_QueryServiceConfigW_needed,
9492 { "Needed", "svcctl.svcctl_QueryServiceConfigW.needed", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
9493 { &hf_svcctl_svcctl_QueryServiceConfigW_offered,
9494 { "Offered", "svcctl.svcctl_QueryServiceConfigW.offered", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
9495 { &hf_svcctl_svcctl_QueryServiceConfigW_service_config,
9496 { "Service Config", "svcctl.svcctl_QueryServiceConfigW.service_config", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
9497 { &hf_svcctl_svcctl_QueryServiceConfigW_service_handle,
9498 { "Service Handle", "svcctl.svcctl_QueryServiceConfigW.service_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
9499 { &hf_svcctl_svcctl_QueryServiceLockStatusA_lock_status,
9500 { "Lock Status", "svcctl.svcctl_QueryServiceLockStatusA.lock_status", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
9501 { &hf_svcctl_svcctl_QueryServiceLockStatusA_needed,
9502 { "Needed", "svcctl.svcctl_QueryServiceLockStatusA.needed", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
9503 { &hf_svcctl_svcctl_QueryServiceLockStatusA_offered,
9504 { "Offered", "svcctl.svcctl_QueryServiceLockStatusA.offered", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
9505 { &hf_svcctl_svcctl_QueryServiceLockStatusA_scm_handle,
9506 { "Scm Handle", "svcctl.svcctl_QueryServiceLockStatusA.scm_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
9507 { &hf_svcctl_svcctl_QueryServiceLockStatusW_lock_status,
9508 { "Lock Status", "svcctl.svcctl_QueryServiceLockStatusW.lock_status", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
9509 { &hf_svcctl_svcctl_QueryServiceLockStatusW_needed,
9510 { "Needed", "svcctl.svcctl_QueryServiceLockStatusW.needed", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
9511 { &hf_svcctl_svcctl_QueryServiceLockStatusW_offered,
9512 { "Offered", "svcctl.svcctl_QueryServiceLockStatusW.offered", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
9513 { &hf_svcctl_svcctl_QueryServiceLockStatusW_scm_handle,
9514 { "Scm Handle", "svcctl.svcctl_QueryServiceLockStatusW.scm_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
9515 { &hf_svcctl_svcctl_QueryServiceObjectSecurity_bytes_needed,
9516 { "Bytes Needed", "svcctl.svcctl_QueryServiceObjectSecurity.bytes_needed", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
9517 { &hf_svcctl_svcctl_QueryServiceObjectSecurity_offered,
9518 { "Offered", "svcctl.svcctl_QueryServiceObjectSecurity.offered", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
9519 { &hf_svcctl_svcctl_QueryServiceObjectSecurity_security_descriptor,
9520 { "Security Descriptor", "svcctl.svcctl_QueryServiceObjectSecurity.security_descriptor", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
9521 { &hf_svcctl_svcctl_QueryServiceObjectSecurity_security_flags,
9522 { "Security Flags", "svcctl.svcctl_QueryServiceObjectSecurity.security_flags", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
9523 { &hf_svcctl_svcctl_QueryServiceObjectSecurity_service_handle,
9524 { "Service Handle", "svcctl.svcctl_QueryServiceObjectSecurity.service_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
9525 { &hf_svcctl_svcctl_QueryServiceStatusEx_buffer,
9526 { "Buffer", "svcctl.svcctl_QueryServiceStatusEx.buffer", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
9527 { &hf_svcctl_svcctl_QueryServiceStatusEx_handle,
9528 { "Handle", "svcctl.svcctl_QueryServiceStatusEx.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
9529 { &hf_svcctl_svcctl_QueryServiceStatusEx_info_level,
9530 { "Info Level", "svcctl.svcctl_QueryServiceStatusEx.info_level", FT_UINT32, BASE_DEC, VALS(svcctl_svcctl_StatusLevel_vals), 0, NULL, HFILL }},
9531 { &hf_svcctl_svcctl_QueryServiceStatusEx_needed,
9532 { "Needed", "svcctl.svcctl_QueryServiceStatusEx.needed", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
9533 { &hf_svcctl_svcctl_QueryServiceStatusEx_offered,
9534 { "Offered", "svcctl.svcctl_QueryServiceStatusEx.offered", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
9535 { &hf_svcctl_svcctl_QueryServiceStatus_service_handle,
9536 { "Service Handle", "svcctl.svcctl_QueryServiceStatus.service_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
9537 { &hf_svcctl_svcctl_QueryServiceStatus_service_status,
9538 { "Service Status", "svcctl.svcctl_QueryServiceStatus.service_status", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
9539 { &hf_svcctl_svcctl_SCSetServiceBitsA_handle,
9540 { "Handle", "svcctl.svcctl_SCSetServiceBitsA.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
9541 { &hf_svcctl_svcctl_SCSetServiceBitsA_lpString,
9542 { "LpString", "svcctl.svcctl_SCSetServiceBitsA.lpString", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
9543 { &hf_svcctl_svcctl_SCSetServiceBitsA_service_bits,
9544 { "Service Bits", "svcctl.svcctl_SCSetServiceBitsA.service_bits", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
9545 { &hf_svcctl_svcctl_SCSetServiceBitsA_set_bits_on,
9546 { "Set Bits On", "svcctl.svcctl_SCSetServiceBitsA.set_bits_on", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
9547 { &hf_svcctl_svcctl_SCSetServiceBitsA_update_immediately,
9548 { "Update Immediately", "svcctl.svcctl_SCSetServiceBitsA.update_immediately", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
9549 { &hf_svcctl_svcctl_SCSetServiceBitsW_lpString,
9550 { "LpString", "svcctl.svcctl_SCSetServiceBitsW.lpString", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
9551 { &hf_svcctl_svcctl_SCSetServiceBitsW_service_bits,
9552 { "Service Bits", "svcctl.svcctl_SCSetServiceBitsW.service_bits", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
9553 { &hf_svcctl_svcctl_SCSetServiceBitsW_service_handle,
9554 { "Service Handle", "svcctl.svcctl_SCSetServiceBitsW.service_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
9555 { &hf_svcctl_svcctl_SCSetServiceBitsW_set_bits_on,
9556 { "Set Bits On", "svcctl.svcctl_SCSetServiceBitsW.set_bits_on", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
9557 { &hf_svcctl_svcctl_SCSetServiceBitsW_update_immediately,
9558 { "Update Immediately", "svcctl.svcctl_SCSetServiceBitsW.update_immediately", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
9559 { &hf_svcctl_svcctl_ServiceAccessMask_SC_RIGHT_SVC_CHANGE_CONFIG,
9560 { "SC RIGHT SVC CHANGE CONFIG", "svcctl.svcctl_ServiceAccessMask.SC_RIGHT_SVC_CHANGE_CONFIG", FT_BOOLEAN, 32, TFS(&svcctl_ServiceAccessMask_SC_RIGHT_SVC_CHANGE_CONFIG_tfs), ( 0x00000002 ), NULL, HFILL }},
9561 { &hf_svcctl_svcctl_ServiceAccessMask_SC_RIGHT_SVC_ENUMERATE_DEPENDENTS,
9562 { "SC RIGHT SVC ENUMERATE DEPENDENTS", "svcctl.svcctl_ServiceAccessMask.SC_RIGHT_SVC_ENUMERATE_DEPENDENTS", FT_BOOLEAN, 32, TFS(&svcctl_ServiceAccessMask_SC_RIGHT_SVC_ENUMERATE_DEPENDENTS_tfs), ( 0x00000008 ), NULL, HFILL }},
9563 { &hf_svcctl_svcctl_ServiceAccessMask_SC_RIGHT_SVC_INTERROGATE,
9564 { "SC RIGHT SVC INTERROGATE", "svcctl.svcctl_ServiceAccessMask.SC_RIGHT_SVC_INTERROGATE", FT_BOOLEAN, 32, TFS(&svcctl_ServiceAccessMask_SC_RIGHT_SVC_INTERROGATE_tfs), ( 0x00000080 ), NULL, HFILL }},
9565 { &hf_svcctl_svcctl_ServiceAccessMask_SC_RIGHT_SVC_PAUSE_CONTINUE,
9566 { "SC RIGHT SVC PAUSE CONTINUE", "svcctl.svcctl_ServiceAccessMask.SC_RIGHT_SVC_PAUSE_CONTINUE", FT_BOOLEAN, 32, TFS(&svcctl_ServiceAccessMask_SC_RIGHT_SVC_PAUSE_CONTINUE_tfs), ( 0x00000040 ), NULL, HFILL }},
9567 { &hf_svcctl_svcctl_ServiceAccessMask_SC_RIGHT_SVC_QUERY_CONFIG,
9568 { "SC RIGHT SVC QUERY CONFIG", "svcctl.svcctl_ServiceAccessMask.SC_RIGHT_SVC_QUERY_CONFIG", FT_BOOLEAN, 32, TFS(&svcctl_ServiceAccessMask_SC_RIGHT_SVC_QUERY_CONFIG_tfs), ( 0x00000001 ), NULL, HFILL }},
9569 { &hf_svcctl_svcctl_ServiceAccessMask_SC_RIGHT_SVC_QUERY_STATUS,
9570 { "SC RIGHT SVC QUERY STATUS", "svcctl.svcctl_ServiceAccessMask.SC_RIGHT_SVC_QUERY_STATUS", FT_BOOLEAN, 32, TFS(&svcctl_ServiceAccessMask_SC_RIGHT_SVC_QUERY_STATUS_tfs), ( 0x00000004 ), NULL, HFILL }},
9571 { &hf_svcctl_svcctl_ServiceAccessMask_SC_RIGHT_SVC_START,
9572 { "SC RIGHT SVC START", "svcctl.svcctl_ServiceAccessMask.SC_RIGHT_SVC_START", FT_BOOLEAN, 32, TFS(&svcctl_ServiceAccessMask_SC_RIGHT_SVC_START_tfs), ( 0x00000010 ), NULL, HFILL }},
9573 { &hf_svcctl_svcctl_ServiceAccessMask_SC_RIGHT_SVC_STOP,
9574 { "SC RIGHT SVC STOP", "svcctl.svcctl_ServiceAccessMask.SC_RIGHT_SVC_STOP", FT_BOOLEAN, 32, TFS(&svcctl_ServiceAccessMask_SC_RIGHT_SVC_STOP_tfs), ( 0x00000020 ), NULL, HFILL }},
9575 { &hf_svcctl_svcctl_ServiceAccessMask_SC_RIGHT_SVC_USER_DEFINED_CONTROL,
9576 { "SC RIGHT SVC USER DEFINED CONTROL", "svcctl.svcctl_ServiceAccessMask.SC_RIGHT_SVC_USER_DEFINED_CONTROL", FT_BOOLEAN, 32, TFS(&svcctl_ServiceAccessMask_SC_RIGHT_SVC_USER_DEFINED_CONTROL_tfs), ( 0x00000100 ), NULL, HFILL }},
9577 { &hf_svcctl_svcctl_SetServiceObjectSecurity_offered,
9578 { "Offered", "svcctl.svcctl_SetServiceObjectSecurity.offered", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
9579 { &hf_svcctl_svcctl_SetServiceObjectSecurity_security_descriptor,
9580 { "Security Descriptor", "svcctl.svcctl_SetServiceObjectSecurity.security_descriptor", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
9581 { &hf_svcctl_svcctl_SetServiceObjectSecurity_security_flags,
9582 { "Security Flags", "svcctl.svcctl_SetServiceObjectSecurity.security_flags", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
9583 { &hf_svcctl_svcctl_SetServiceObjectSecurity_service_handle,
9584 { "Service Handle", "svcctl.svcctl_SetServiceObjectSecurity.service_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
9585 { &hf_svcctl_svcctl_SetServiceStatus_service_handle,
9586 { "Service Handle", "svcctl.svcctl_SetServiceStatus.service_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
9587 { &hf_svcctl_svcctl_SetServiceStatus_service_status,
9588 { "Service Status", "svcctl.svcctl_SetServiceStatus.service_status", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
9589 { &hf_svcctl_svcctl_StartServiceA_Arguments,
9590 { "Arguments", "svcctl.svcctl_StartServiceA.Arguments", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
9591 { &hf_svcctl_svcctl_StartServiceA_NumArgs,
9592 { "NumArgs", "svcctl.svcctl_StartServiceA.NumArgs", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
9593 { &hf_svcctl_svcctl_StartServiceA_service_handle,
9594 { "Service Handle", "svcctl.svcctl_StartServiceA.service_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
9595 { &hf_svcctl_svcctl_StartServiceW_Arguments,
9596 { "Arguments", "svcctl.svcctl_StartServiceW.Arguments", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
9597 { &hf_svcctl_svcctl_StartServiceW_NumArgs,
9598 { "NumArgs", "svcctl.svcctl_StartServiceW.NumArgs", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
9599 { &hf_svcctl_svcctl_StartServiceW_service_handle,
9600 { "Service Handle", "svcctl.svcctl_StartServiceW.service_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
9601 { &hf_svcctl_svcctl_UnlockServiceDatabase_lock_handle,
9602 { "Lock Handle", "svcctl.svcctl_UnlockServiceDatabase.lock_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
9603 { &hf_svcctl_werror,
9604 { "Windows Error", "svcctl.werror", FT_UINT32, BASE_HEX|BASE_EXT_STRING, &WERR_errors_ext, 0, NULL, HFILL }},
9608 static int *ett[] = {
9609 &ett_svcctl_service,
9610 &ett_svcctl_service_name,
9611 &ett_svcctl_display_name,
9612 &ett_dcerpc_svcctl,
9613 &ett_svcctl_security_secinfo,
9614 &ett_svcctl_SERVICE_LOCK_STATUS,
9615 &ett_svcctl_svcctl_ControlsAccepted,
9616 &ett_svcctl_SERVICE_STATUS,
9617 &ett_svcctl_SERVICE_STATUS_PROCESS,
9618 &ett_svcctl_ENUM_SERVICE_STATUSW,
9619 &ett_svcctl_ENUM_SERVICE_STATUSA,
9620 &ett_svcctl_svcctl_MgrAccessMask,
9621 &ett_svcctl_svcctl_ServiceAccessMask,
9622 &ett_svcctl_QUERY_SERVICE_CONFIG,
9623 &ett_svcctl_svcctl_ArgumentString,
9624 &ett_svcctl_svcctl_ArgumentStringA,
9627 proto_dcerpc_svcctl = proto_register_protocol("Service Control", "SVCCTL", "svcctl");
9628 proto_register_field_array(proto_dcerpc_svcctl, hf, array_length (hf));
9629 proto_register_subtree_array(ett, array_length(ett));
9632 void proto_reg_handoff_dcerpc_svcctl(void)
9634 dcerpc_init_uuid(proto_dcerpc_svcctl, ett_dcerpc_svcctl,
9635 &uuid_dcerpc_svcctl, ver_dcerpc_svcctl,
9636 svcctl_dissectors, hf_svcctl_opnum);