Coverage Report

Created: 2026-01-02 06:13

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/wireshark/epan/dissectors/packet-dcerpc-svcctl.c
Line
Count
Source
1
/* DO NOT EDIT
2
  This file was automatically generated by Pidl
3
  from svcctl.idl and svcctl.cnf.
4
5
  Pidl is a perl based IDL compiler for DCE/RPC idl files.
6
  It is maintained by the Samba team, not the Wireshark team.
7
  Instructions on how to download and install Pidl can be
8
  found at https://wiki.wireshark.org/Pidl
9
*/
10
11
12
#include "config.h"
13
#include <string.h>
14
#include <wsutil/array.h>
15
#include <epan/packet.h>
16
#include <epan/tfs.h>
17
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);
24
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;
42
43
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_key_name;
281
static int hf_svcctl_svcctl_GetServiceKeyNameA_key_name_length;
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;
391
392
static int proto_dcerpc_svcctl;
393
/* Version information */
394
395
396
static e_guid_t uuid_dcerpc_svcctl = {
397
  0x367abb81, 0x9844, 0x35f1,
398
  { 0xad, 0x32, 0x98, 0xf0, 0x38, 0x00, 0x10, 0x03 }
399
};
400
static uint16_t ver_dcerpc_svcctl = 2;
401
402
static unsigned svcctl_dissect_element_SERVICE_LOCK_STATUS_is_locked(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
403
static unsigned svcctl_dissect_element_SERVICE_LOCK_STATUS_lock_owner(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
404
static unsigned svcctl_dissect_element_SERVICE_LOCK_STATUS_lock_owner_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
405
static unsigned svcctl_dissect_element_SERVICE_LOCK_STATUS_lock_duration(tvbuff_t *tvb _U_, unsigned 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 }
415
};
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 }
429
};
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",
433
};
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",
437
};
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",
441
};
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",
445
};
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",
449
};
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",
453
};
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",
457
};
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",
461
};
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",
465
};
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",
469
};
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",
473
};
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",
477
};
478
static unsigned svcctl_dissect_element_SERVICE_STATUS_type(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
479
static unsigned svcctl_dissect_element_SERVICE_STATUS_state(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
480
static unsigned svcctl_dissect_element_SERVICE_STATUS_controls_accepted(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
481
static unsigned svcctl_dissect_element_SERVICE_STATUS_win32_exit_code(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
482
static unsigned svcctl_dissect_element_SERVICE_STATUS_service_exit_code(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
483
static unsigned svcctl_dissect_element_SERVICE_STATUS_check_point(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
484
static unsigned svcctl_dissect_element_SERVICE_STATUS_wait_hint(tvbuff_t *tvb _U_, unsigned 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 }
489
};
490
static unsigned svcctl_dissect_element_SERVICE_STATUS_PROCESS_type(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
491
static unsigned svcctl_dissect_element_SERVICE_STATUS_PROCESS_state(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
492
static unsigned svcctl_dissect_element_SERVICE_STATUS_PROCESS_controls_accepted(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
493
static unsigned svcctl_dissect_element_SERVICE_STATUS_PROCESS_win32_exit_code(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
494
static unsigned svcctl_dissect_element_SERVICE_STATUS_PROCESS_service_exit_code(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
495
static unsigned svcctl_dissect_element_SERVICE_STATUS_PROCESS_check_point(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
496
static unsigned svcctl_dissect_element_SERVICE_STATUS_PROCESS_wait_hint(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
497
static unsigned svcctl_dissect_element_SERVICE_STATUS_PROCESS_process_id(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
498
static unsigned svcctl_dissect_element_SERVICE_STATUS_PROCESS_service_flags(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
499
static unsigned svcctl_dissect_element_ENUM_SERVICE_STATUSW_service_name(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
500
static unsigned svcctl_dissect_element_ENUM_SERVICE_STATUSW_service_name_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
501
static unsigned svcctl_dissect_element_ENUM_SERVICE_STATUSW_display_name(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
502
static unsigned svcctl_dissect_element_ENUM_SERVICE_STATUSW_display_name_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
503
static unsigned svcctl_dissect_element_ENUM_SERVICE_STATUSW_status(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
504
static unsigned svcctl_dissect_element_ENUM_SERVICE_STATUSA_service_name(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
505
static unsigned svcctl_dissect_element_ENUM_SERVICE_STATUSA_service_name_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
506
static unsigned svcctl_dissect_element_ENUM_SERVICE_STATUSA_display_name(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
507
static unsigned svcctl_dissect_element_ENUM_SERVICE_STATUSA_display_name_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
508
static unsigned svcctl_dissect_element_ENUM_SERVICE_STATUSA_status(tvbuff_t *tvb _U_, unsigned 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 }
521
};
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 }
528
};
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 }
536
};
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 }
542
};
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",
546
};
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",
550
};
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",
554
};
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",
558
};
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",
562
};
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",
566
};
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",
570
};
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",
574
};
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",
578
};
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",
582
};
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",
586
};
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",
590
};
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",
594
};
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",
598
};
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",
602
};
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",
606
};
607
static unsigned svcctl_dissect_element_QUERY_SERVICE_CONFIG_service_type(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
608
static unsigned svcctl_dissect_element_QUERY_SERVICE_CONFIG_start_type(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
609
static unsigned svcctl_dissect_element_QUERY_SERVICE_CONFIG_error_control(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
610
static unsigned svcctl_dissect_element_QUERY_SERVICE_CONFIG_executablepath(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
611
static unsigned svcctl_dissect_element_QUERY_SERVICE_CONFIG_executablepath_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
612
static unsigned svcctl_dissect_element_QUERY_SERVICE_CONFIG_loadordergroup(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
613
static unsigned svcctl_dissect_element_QUERY_SERVICE_CONFIG_loadordergroup_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
614
static unsigned svcctl_dissect_element_QUERY_SERVICE_CONFIG_tag_id(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
615
static unsigned svcctl_dissect_element_QUERY_SERVICE_CONFIG_dependencies(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
616
static unsigned svcctl_dissect_element_QUERY_SERVICE_CONFIG_dependencies_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
617
static unsigned svcctl_dissect_element_QUERY_SERVICE_CONFIG_startname(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
618
static unsigned svcctl_dissect_element_QUERY_SERVICE_CONFIG_startname_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
619
static unsigned svcctl_dissect_element_QUERY_SERVICE_CONFIG_displayname(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
620
static unsigned svcctl_dissect_element_QUERY_SERVICE_CONFIG_displayname_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
621
static unsigned svcctl_dissect_element_ArgumentString_string(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
622
static unsigned svcctl_dissect_element_ArgumentString_string_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
623
static unsigned svcctl_dissect_element_ArgumentStringA_string(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
624
static unsigned svcctl_dissect_element_ArgumentStringA_string_(tvbuff_t *tvb _U_, unsigned 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 }
629
};
630
const value_string svcctl_svcctl_StatusLevel_vals[] = {
631
  { SVC_STATUS_PROCESS_INFO, "SVC_STATUS_PROCESS_INFO" },
632
{ 0, NULL }
633
};
634
static unsigned svcctl_dissect_element_CloseServiceHandle_object_handle(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
635
static unsigned svcctl_dissect_element_CloseServiceHandle_object_handle_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
636
static unsigned svcctl_dissect_element_ControlService_service_handle(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
637
static unsigned svcctl_dissect_element_ControlService_service_handle_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
638
static unsigned svcctl_dissect_element_ControlService_control(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
639
static unsigned svcctl_dissect_element_ControlService_service_status(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
640
static unsigned svcctl_dissect_element_ControlService_service_status_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
641
static unsigned svcctl_dissect_element_DeleteService_service_handle(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
642
static unsigned svcctl_dissect_element_DeleteService_service_handle_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
643
static unsigned svcctl_dissect_element_LockServiceDatabase_scm_handle(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
644
static unsigned svcctl_dissect_element_LockServiceDatabase_scm_handle_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
645
static unsigned svcctl_dissect_element_LockServiceDatabase_lock_handle(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
646
static unsigned svcctl_dissect_element_LockServiceDatabase_lock_handle_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
647
static unsigned svcctl_dissect_element_QueryServiceObjectSecurity_service_handle(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
648
static unsigned svcctl_dissect_element_QueryServiceObjectSecurity_service_handle_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
649
static unsigned svcctl_dissect_element_QueryServiceObjectSecurity_security_flags(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
650
static unsigned svcctl_dissect_element_QueryServiceObjectSecurity_security_descriptor(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
651
static unsigned svcctl_dissect_element_QueryServiceObjectSecurity_security_descriptor_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
652
static unsigned svcctl_dissect_element_QueryServiceObjectSecurity_security_descriptor__(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
653
static unsigned svcctl_dissect_element_QueryServiceObjectSecurity_offered(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
654
static unsigned svcctl_dissect_element_QueryServiceObjectSecurity_bytes_needed(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
655
static unsigned svcctl_dissect_element_QueryServiceObjectSecurity_bytes_needed_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
656
static unsigned svcctl_dissect_element_SetServiceObjectSecurity_service_handle(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
657
static unsigned svcctl_dissect_element_SetServiceObjectSecurity_service_handle_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
658
static unsigned svcctl_dissect_element_SetServiceObjectSecurity_security_flags(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
659
static unsigned svcctl_dissect_element_SetServiceObjectSecurity_security_descriptor(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
660
static unsigned svcctl_dissect_element_SetServiceObjectSecurity_security_descriptor_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
661
static unsigned svcctl_dissect_element_SetServiceObjectSecurity_security_descriptor__(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
662
static unsigned svcctl_dissect_element_SetServiceObjectSecurity_offered(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
663
static unsigned svcctl_dissect_element_QueryServiceStatus_service_handle(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
664
static unsigned svcctl_dissect_element_QueryServiceStatus_service_handle_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
665
static unsigned svcctl_dissect_element_QueryServiceStatus_service_status(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
666
static unsigned svcctl_dissect_element_QueryServiceStatus_service_status_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
667
static unsigned svcctl_dissect_element_SetServiceStatus_service_handle(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
668
static unsigned svcctl_dissect_element_SetServiceStatus_service_handle_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
669
static unsigned svcctl_dissect_element_SetServiceStatus_service_status(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
670
static unsigned svcctl_dissect_element_SetServiceStatus_service_status_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
671
static unsigned svcctl_dissect_element_UnlockServiceDatabase_lock_handle(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
672
static unsigned svcctl_dissect_element_UnlockServiceDatabase_lock_handle_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
673
static unsigned svcctl_dissect_element_NotifyBootConfigStatus_machine_name(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
674
static unsigned svcctl_dissect_element_NotifyBootConfigStatus_machine_name_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
675
static unsigned svcctl_dissect_element_NotifyBootConfigStatus_boot_acceptable(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
676
static unsigned svcctl_dissect_element_SCSetServiceBitsW_service_handle(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
677
static unsigned svcctl_dissect_element_SCSetServiceBitsW_service_handle_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
678
static unsigned svcctl_dissect_element_SCSetServiceBitsW_service_bits(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
679
static unsigned svcctl_dissect_element_SCSetServiceBitsW_set_bits_on(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
680
static unsigned svcctl_dissect_element_SCSetServiceBitsW_update_immediately(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
681
static unsigned svcctl_dissect_element_SCSetServiceBitsW_lpString(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
682
static unsigned svcctl_dissect_element_SCSetServiceBitsW_lpString_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
683
static unsigned svcctl_dissect_element_ChangeServiceConfigW_service_handle(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
684
static unsigned svcctl_dissect_element_ChangeServiceConfigW_service_handle_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
685
static unsigned svcctl_dissect_element_ChangeServiceConfigW_service_type(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
686
static unsigned svcctl_dissect_element_ChangeServiceConfigW_start_type(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
687
static unsigned svcctl_dissect_element_ChangeServiceConfigW_error_control(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
688
static unsigned svcctl_dissect_element_ChangeServiceConfigW_binary_path(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
689
static unsigned svcctl_dissect_element_ChangeServiceConfigW_binary_path_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
690
static unsigned svcctl_dissect_element_ChangeServiceConfigW_load_order_group(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
691
static unsigned svcctl_dissect_element_ChangeServiceConfigW_load_order_group_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
692
static unsigned svcctl_dissect_element_ChangeServiceConfigW_tag_id(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
693
static unsigned svcctl_dissect_element_ChangeServiceConfigW_tag_id_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
694
static unsigned svcctl_dissect_element_ChangeServiceConfigW_dependencies(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
695
static unsigned svcctl_dissect_element_ChangeServiceConfigW_dependencies_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
696
static unsigned svcctl_dissect_element_ChangeServiceConfigW_dwDependSize(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
697
static unsigned svcctl_dissect_element_ChangeServiceConfigW_service_start_name(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
698
static unsigned svcctl_dissect_element_ChangeServiceConfigW_service_start_name_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
699
static unsigned svcctl_dissect_element_ChangeServiceConfigW_password(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
700
static unsigned svcctl_dissect_element_ChangeServiceConfigW_password_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
701
static unsigned svcctl_dissect_element_ChangeServiceConfigW_dwPwSize(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
702
static unsigned svcctl_dissect_element_ChangeServiceConfigW_display_name(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
703
static unsigned svcctl_dissect_element_ChangeServiceConfigW_display_name_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
704
static unsigned svcctl_dissect_element_CreateServiceW_scm_handle(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
705
static unsigned svcctl_dissect_element_CreateServiceW_scm_handle_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
706
static unsigned svcctl_dissect_element_CreateServiceW_ServiceName(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
707
static unsigned svcctl_dissect_element_CreateServiceW_DisplayName(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
708
static unsigned svcctl_dissect_element_CreateServiceW_DisplayName_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
709
static unsigned svcctl_dissect_element_CreateServiceW_desired_access(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
710
static unsigned svcctl_dissect_element_CreateServiceW_service_type(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
711
static unsigned svcctl_dissect_element_CreateServiceW_start_type(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
712
static unsigned svcctl_dissect_element_CreateServiceW_error_control(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
713
static unsigned svcctl_dissect_element_CreateServiceW_binary_path(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
714
static unsigned svcctl_dissect_element_CreateServiceW_LoadOrderGroup(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
715
static unsigned svcctl_dissect_element_CreateServiceW_LoadOrderGroup_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
716
static unsigned svcctl_dissect_element_CreateServiceW_tag_id(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
717
static unsigned svcctl_dissect_element_CreateServiceW_tag_id_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
718
static unsigned svcctl_dissect_element_CreateServiceW_dependencies(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
719
static unsigned svcctl_dissect_element_CreateServiceW_dependencies_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
720
static unsigned svcctl_dissect_element_CreateServiceW_dependencies__(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
721
static unsigned svcctl_dissect_element_CreateServiceW_dependencies_size(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
722
static unsigned svcctl_dissect_element_CreateServiceW_service_start_name(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
723
static unsigned svcctl_dissect_element_CreateServiceW_service_start_name_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
724
static unsigned svcctl_dissect_element_CreateServiceW_password(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
725
static unsigned svcctl_dissect_element_CreateServiceW_password_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
726
static unsigned svcctl_dissect_element_CreateServiceW_password__(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
727
static unsigned svcctl_dissect_element_CreateServiceW_password_size(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
728
static unsigned svcctl_dissect_element_CreateServiceW_service_handle(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
729
static unsigned svcctl_dissect_element_CreateServiceW_service_handle_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
730
static unsigned svcctl_dissect_element_EnumDependentServicesW_service_handle(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
731
static unsigned svcctl_dissect_element_EnumDependentServicesW_service_handle_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
732
static unsigned svcctl_dissect_element_EnumDependentServicesW_service_state(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
733
static unsigned svcctl_dissect_element_EnumDependentServicesW_service_status(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
734
static unsigned svcctl_dissect_element_EnumDependentServicesW_service_status_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
735
static unsigned svcctl_dissect_element_EnumDependentServicesW_service_status__(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
736
static unsigned svcctl_dissect_element_EnumDependentServicesW_offered(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
737
static unsigned svcctl_dissect_element_EnumDependentServicesW_bytesneeded(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
738
static unsigned svcctl_dissect_element_EnumDependentServicesW_bytesneeded_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
739
static unsigned svcctl_dissect_element_EnumDependentServicesW_services_returned(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
740
static unsigned svcctl_dissect_element_EnumDependentServicesW_services_returned_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
741
static unsigned svcctl_dissect_element_EnumServicesStatusW_scm_handle(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
742
static unsigned svcctl_dissect_element_EnumServicesStatusW_scm_handle_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
743
static unsigned svcctl_dissect_element_EnumServicesStatusW_service_type(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
744
static unsigned svcctl_dissect_element_EnumServicesStatusW_service_state(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
745
static unsigned svcctl_dissect_element_EnumServicesStatusW_offered(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
746
static unsigned svcctl_dissect_element_EnumServicesStatusW_resume_index(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
747
static unsigned svcctl_dissect_element_EnumServicesStatusW_resume_index_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
748
static unsigned svcctl_dissect_element_OpenSCManagerW_MachineName(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
749
static unsigned svcctl_dissect_element_OpenSCManagerW_MachineName_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
750
static unsigned svcctl_dissect_element_OpenSCManagerW_DatabaseName(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
751
static unsigned svcctl_dissect_element_OpenSCManagerW_DatabaseName_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
752
static unsigned svcctl_dissect_element_OpenSCManagerW_access_mask(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
753
static unsigned svcctl_dissect_element_OpenSCManagerW_scm_handle(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
754
static unsigned svcctl_dissect_element_OpenSCManagerW_scm_handle_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
755
static unsigned svcctl_dissect_element_OpenServiceW_scm_handle(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
756
static unsigned svcctl_dissect_element_OpenServiceW_scm_handle_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
757
static unsigned svcctl_dissect_element_OpenServiceW_ServiceName(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
758
static unsigned svcctl_dissect_element_OpenServiceW_access_mask(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
759
static unsigned svcctl_dissect_element_OpenServiceW_service_handle(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
760
static unsigned svcctl_dissect_element_OpenServiceW_service_handle_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
761
static unsigned svcctl_dissect_element_QueryServiceConfigW_service_handle(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
762
static unsigned svcctl_dissect_element_QueryServiceConfigW_service_handle_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
763
static unsigned svcctl_dissect_element_QueryServiceConfigW_service_config(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
764
static unsigned svcctl_dissect_element_QueryServiceConfigW_service_config_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
765
static unsigned svcctl_dissect_element_QueryServiceConfigW_offered(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
766
static unsigned svcctl_dissect_element_QueryServiceConfigW_needed(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
767
static unsigned svcctl_dissect_element_QueryServiceConfigW_needed_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
768
static unsigned svcctl_dissect_element_QueryServiceLockStatusW_scm_handle(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
769
static unsigned svcctl_dissect_element_QueryServiceLockStatusW_scm_handle_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
770
static unsigned svcctl_dissect_element_QueryServiceLockStatusW_lock_status(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
771
static unsigned svcctl_dissect_element_QueryServiceLockStatusW_lock_status_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
772
static unsigned svcctl_dissect_element_QueryServiceLockStatusW_offered(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
773
static unsigned svcctl_dissect_element_QueryServiceLockStatusW_needed(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
774
static unsigned svcctl_dissect_element_QueryServiceLockStatusW_needed_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
775
static unsigned svcctl_dissect_element_StartServiceW_service_handle(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
776
static unsigned svcctl_dissect_element_StartServiceW_service_handle_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
777
static unsigned svcctl_dissect_element_StartServiceW_NumArgs(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
778
static unsigned svcctl_dissect_element_StartServiceW_Arguments(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
779
static unsigned svcctl_dissect_element_StartServiceW_Arguments_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
780
static unsigned svcctl_dissect_element_StartServiceW_Arguments__(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
781
static unsigned svcctl_dissect_element_GetServiceDisplayNameW_scm_handle(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
782
static unsigned svcctl_dissect_element_GetServiceDisplayNameW_scm_handle_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
783
static unsigned svcctl_dissect_element_GetServiceDisplayNameW_service_name(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
784
static unsigned svcctl_dissect_element_GetServiceDisplayNameW_service_name_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
785
static unsigned svcctl_dissect_element_GetServiceDisplayNameW_display_name(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
786
static unsigned svcctl_dissect_element_GetServiceDisplayNameW_display_name_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
787
static unsigned svcctl_dissect_element_GetServiceDisplayNameW_display_name_length(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
788
static unsigned svcctl_dissect_element_GetServiceDisplayNameW_display_name_length_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
789
static unsigned svcctl_dissect_element_GetServiceKeyNameW_scm_handle(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
790
static unsigned svcctl_dissect_element_GetServiceKeyNameW_scm_handle_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
791
static unsigned svcctl_dissect_element_GetServiceKeyNameW_display_name(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
792
static unsigned svcctl_dissect_element_GetServiceKeyNameW_display_name_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
793
static unsigned svcctl_dissect_element_GetServiceKeyNameW_service_name(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
794
static unsigned svcctl_dissect_element_GetServiceKeyNameW_service_name_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
795
static unsigned svcctl_dissect_element_GetServiceKeyNameW_service_name_length(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
796
static unsigned svcctl_dissect_element_GetServiceKeyNameW_service_name_length_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
797
static unsigned svcctl_dissect_element_SCSetServiceBitsA_handle(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
798
static unsigned svcctl_dissect_element_SCSetServiceBitsA_handle_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
799
static unsigned svcctl_dissect_element_SCSetServiceBitsA_service_bits(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
800
static unsigned svcctl_dissect_element_SCSetServiceBitsA_set_bits_on(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
801
static unsigned svcctl_dissect_element_SCSetServiceBitsA_update_immediately(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
802
static unsigned svcctl_dissect_element_SCSetServiceBitsA_lpString(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
803
static unsigned svcctl_dissect_element_SCSetServiceBitsA_lpString_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
804
static unsigned svcctl_dissect_element_ChangeServiceConfigA_service_handle(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
805
static unsigned svcctl_dissect_element_ChangeServiceConfigA_service_handle_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
806
static unsigned svcctl_dissect_element_ChangeServiceConfigA_service_type(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
807
static unsigned svcctl_dissect_element_ChangeServiceConfigA_start_type(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
808
static unsigned svcctl_dissect_element_ChangeServiceConfigA_error_control(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
809
static unsigned svcctl_dissect_element_ChangeServiceConfigA_binary_path(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
810
static unsigned svcctl_dissect_element_ChangeServiceConfigA_binary_path_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
811
static unsigned svcctl_dissect_element_ChangeServiceConfigA_load_order_group(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
812
static unsigned svcctl_dissect_element_ChangeServiceConfigA_load_order_group_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
813
static unsigned svcctl_dissect_element_ChangeServiceConfigA_tag_id(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
814
static unsigned svcctl_dissect_element_ChangeServiceConfigA_tag_id_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
815
static unsigned svcctl_dissect_element_ChangeServiceConfigA_dependencies(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
816
static unsigned svcctl_dissect_element_ChangeServiceConfigA_dependencies_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
817
static unsigned svcctl_dissect_element_ChangeServiceConfigA_service_start_name(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
818
static unsigned svcctl_dissect_element_ChangeServiceConfigA_service_start_name_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
819
static unsigned svcctl_dissect_element_ChangeServiceConfigA_password(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
820
static unsigned svcctl_dissect_element_ChangeServiceConfigA_password_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
821
static unsigned svcctl_dissect_element_ChangeServiceConfigA_display_name(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
822
static unsigned svcctl_dissect_element_ChangeServiceConfigA_display_name_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
823
static unsigned svcctl_dissect_element_CreateServiceA_scm_handle(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
824
static unsigned svcctl_dissect_element_CreateServiceA_scm_handle_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
825
static unsigned svcctl_dissect_element_CreateServiceA_ServiceName(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
826
static unsigned svcctl_dissect_element_CreateServiceA_DisplayName(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
827
static unsigned svcctl_dissect_element_CreateServiceA_DisplayName_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
828
static unsigned svcctl_dissect_element_CreateServiceA_desired_access(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
829
static unsigned svcctl_dissect_element_CreateServiceA_service_type(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
830
static unsigned svcctl_dissect_element_CreateServiceA_start_type(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
831
static unsigned svcctl_dissect_element_CreateServiceA_error_control(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
832
static unsigned svcctl_dissect_element_CreateServiceA_binary_path(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
833
static unsigned svcctl_dissect_element_CreateServiceA_LoadOrderGroupKey(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
834
static unsigned svcctl_dissect_element_CreateServiceA_LoadOrderGroupKey_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
835
static unsigned svcctl_dissect_element_CreateServiceA_tag_id(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
836
static unsigned svcctl_dissect_element_CreateServiceA_tag_id_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
837
static unsigned svcctl_dissect_element_CreateServiceA_dependencies(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
838
static unsigned svcctl_dissect_element_CreateServiceA_dependencies_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
839
static unsigned svcctl_dissect_element_CreateServiceA_dependencies__(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
840
static unsigned svcctl_dissect_element_CreateServiceA_dependencies_size(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
841
static unsigned svcctl_dissect_element_CreateServiceA_service_start_name(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
842
static unsigned svcctl_dissect_element_CreateServiceA_service_start_name_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
843
static unsigned svcctl_dissect_element_CreateServiceA_password(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
844
static unsigned svcctl_dissect_element_CreateServiceA_password_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
845
static unsigned svcctl_dissect_element_CreateServiceA_password__(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
846
static unsigned svcctl_dissect_element_CreateServiceA_password_size(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
847
static unsigned svcctl_dissect_element_CreateServiceA_service_handle(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
848
static unsigned svcctl_dissect_element_CreateServiceA_service_handle_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
849
static unsigned svcctl_dissect_element_EnumDependentServicesA_service_handle(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
850
static unsigned svcctl_dissect_element_EnumDependentServicesA_service_handle_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
851
static unsigned svcctl_dissect_element_EnumDependentServicesA_state(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
852
static unsigned svcctl_dissect_element_EnumDependentServicesA_service_status(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
853
static unsigned svcctl_dissect_element_EnumDependentServicesA_service_status_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
854
static unsigned svcctl_dissect_element_EnumDependentServicesA_offered(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
855
static unsigned svcctl_dissect_element_EnumDependentServicesA_needed(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
856
static unsigned svcctl_dissect_element_EnumDependentServicesA_needed_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
857
static unsigned svcctl_dissect_element_EnumDependentServicesA_services_returned(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
858
static unsigned svcctl_dissect_element_EnumDependentServicesA_services_returned_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
859
static unsigned svcctl_dissect_element_EnumServicesStatusA_scm_handle(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
860
static unsigned svcctl_dissect_element_EnumServicesStatusA_scm_handle_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
861
static unsigned svcctl_dissect_element_EnumServicesStatusA_service_type(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
862
static unsigned svcctl_dissect_element_EnumServicesStatusA_service_state(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
863
static unsigned svcctl_dissect_element_EnumServicesStatusA_offered(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
864
static unsigned svcctl_dissect_element_EnumServicesStatusA_service(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
865
static unsigned svcctl_dissect_element_EnumServicesStatusA_service_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
866
static unsigned svcctl_dissect_element_EnumServicesStatusA_needed(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
867
static unsigned svcctl_dissect_element_EnumServicesStatusA_needed_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
868
static unsigned svcctl_dissect_element_EnumServicesStatusA_services_returned(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
869
static unsigned svcctl_dissect_element_EnumServicesStatusA_services_returned_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
870
static unsigned svcctl_dissect_element_EnumServicesStatusA_resume_handle(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
871
static unsigned svcctl_dissect_element_EnumServicesStatusA_resume_handle_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
872
static unsigned svcctl_dissect_element_OpenSCManagerA_MachineName(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
873
static unsigned svcctl_dissect_element_OpenSCManagerA_MachineName_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
874
static unsigned svcctl_dissect_element_OpenSCManagerA_DatabaseName(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
875
static unsigned svcctl_dissect_element_OpenSCManagerA_DatabaseName_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
876
static unsigned svcctl_dissect_element_OpenSCManagerA_access_mask(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
877
static unsigned svcctl_dissect_element_OpenSCManagerA_scm_handle(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
878
static unsigned svcctl_dissect_element_OpenSCManagerA_scm_handle_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
879
static unsigned svcctl_dissect_element_OpenServiceA_scm_handle(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
880
static unsigned svcctl_dissect_element_OpenServiceA_scm_handle_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
881
static unsigned svcctl_dissect_element_OpenServiceA_ServiceName(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
882
static unsigned svcctl_dissect_element_OpenServiceA_access_mask(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
883
static unsigned svcctl_dissect_element_OpenServiceA_service_handle(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
884
static unsigned svcctl_dissect_element_OpenServiceA_service_handle_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
885
static unsigned svcctl_dissect_element_QueryServiceConfigA_service_handle(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
886
static unsigned svcctl_dissect_element_QueryServiceConfigA_service_handle_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
887
static unsigned svcctl_dissect_element_QueryServiceConfigA_query(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
888
static unsigned svcctl_dissect_element_QueryServiceConfigA_query_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
889
static unsigned svcctl_dissect_element_QueryServiceConfigA_offered(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
890
static unsigned svcctl_dissect_element_QueryServiceConfigA_needed(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
891
static unsigned svcctl_dissect_element_QueryServiceConfigA_needed_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
892
static unsigned svcctl_dissect_element_QueryServiceLockStatusA_scm_handle(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
893
static unsigned svcctl_dissect_element_QueryServiceLockStatusA_scm_handle_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
894
static unsigned svcctl_dissect_element_QueryServiceLockStatusA_lock_status(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
895
static unsigned svcctl_dissect_element_QueryServiceLockStatusA_lock_status_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
896
static unsigned svcctl_dissect_element_QueryServiceLockStatusA_offered(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
897
static unsigned svcctl_dissect_element_QueryServiceLockStatusA_needed(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
898
static unsigned svcctl_dissect_element_QueryServiceLockStatusA_needed_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
899
static unsigned svcctl_dissect_element_StartServiceA_service_handle(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
900
static unsigned svcctl_dissect_element_StartServiceA_service_handle_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
901
static unsigned svcctl_dissect_element_StartServiceA_NumArgs(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
902
static unsigned svcctl_dissect_element_StartServiceA_Arguments(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
903
static unsigned svcctl_dissect_element_StartServiceA_Arguments_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
904
static unsigned svcctl_dissect_element_StartServiceA_Arguments__(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
905
static unsigned svcctl_dissect_element_GetServiceDisplayNameA_handle(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
906
static unsigned svcctl_dissect_element_GetServiceDisplayNameA_handle_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
907
static unsigned svcctl_dissect_element_GetServiceDisplayNameA_service_name(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
908
static unsigned svcctl_dissect_element_GetServiceDisplayNameA_service_name_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
909
static unsigned svcctl_dissect_element_GetServiceDisplayNameA_display_name(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
910
static unsigned svcctl_dissect_element_GetServiceDisplayNameA_display_name_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
911
static unsigned svcctl_dissect_element_GetServiceDisplayNameA_display_name_length(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
912
static unsigned svcctl_dissect_element_GetServiceDisplayNameA_display_name_length_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
913
static unsigned svcctl_dissect_element_GetServiceKeyNameA_scm_handle(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
914
static unsigned svcctl_dissect_element_GetServiceKeyNameA_scm_handle_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
915
static unsigned svcctl_dissect_element_GetServiceKeyNameA_service_name(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
916
static unsigned svcctl_dissect_element_GetServiceKeyNameA_service_name_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
917
static unsigned svcctl_dissect_element_GetServiceKeyNameA_key_name(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
918
static unsigned svcctl_dissect_element_GetServiceKeyNameA_key_name_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
919
static unsigned svcctl_dissect_element_GetServiceKeyNameA_key_name_length(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
920
static unsigned svcctl_dissect_element_GetServiceKeyNameA_key_name_length_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
921
static unsigned svcctl_dissect_element_GetCurrentGroupeStateW_handle(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
922
static unsigned svcctl_dissect_element_GetCurrentGroupeStateW_handle_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
923
static unsigned svcctl_dissect_element_GetCurrentGroupeStateW_lpLoadOrderGroup(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
924
static unsigned svcctl_dissect_element_GetCurrentGroupeStateW_lpLoadOrderGroup_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
925
static unsigned svcctl_dissect_element_GetCurrentGroupeStateW_state(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
926
static unsigned svcctl_dissect_element_GetCurrentGroupeStateW_state_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
927
static unsigned svcctl_dissect_element_EnumServiceGroupW_scm_handle(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
928
static unsigned svcctl_dissect_element_EnumServiceGroupW_scm_handle_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
929
static unsigned svcctl_dissect_element_EnumServiceGroupW_service_type(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
930
static unsigned svcctl_dissect_element_EnumServiceGroupW_service_state(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
931
static unsigned svcctl_dissect_element_EnumServiceGroupW_lpBuffer(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
932
static unsigned svcctl_dissect_element_EnumServiceGroupW_lpBuffer_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
933
static unsigned svcctl_dissect_element_EnumServiceGroupW_cbBufSize(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
934
static unsigned svcctl_dissect_element_EnumServiceGroupW_pcbBytesNeeded(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
935
static unsigned svcctl_dissect_element_EnumServiceGroupW_pcbBytesNeeded_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
936
static unsigned svcctl_dissect_element_EnumServiceGroupW_lpServicesReturned(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
937
static unsigned svcctl_dissect_element_EnumServiceGroupW_lpServicesReturned_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
938
static unsigned svcctl_dissect_element_EnumServiceGroupW_ResumeIndex(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
939
static unsigned svcctl_dissect_element_EnumServiceGroupW_ResumeIndex_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
940
static unsigned svcctl_dissect_element_EnumServiceGroupW_pszGroupName(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
941
static unsigned svcctl_dissect_element_EnumServiceGroupW_pszGroupName_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
942
static unsigned svcctl_dissect_element_ChangeServiceConfig2A_service_handle(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
943
static unsigned svcctl_dissect_element_ChangeServiceConfig2A_service_handle_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
944
static unsigned svcctl_dissect_element_ChangeServiceConfig2A_info_level(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
945
static unsigned svcctl_dissect_element_ChangeServiceConfig2A_info(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
946
static unsigned svcctl_dissect_element_ChangeServiceConfig2A_info_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
947
static unsigned svcctl_dissect_element_ChangeServiceConfig2W_handle(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
948
static unsigned svcctl_dissect_element_ChangeServiceConfig2W_handle_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
949
static unsigned svcctl_dissect_element_ChangeServiceConfig2W_info_level(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
950
static unsigned svcctl_dissect_element_ChangeServiceConfig2W_info(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
951
static unsigned svcctl_dissect_element_ChangeServiceConfig2W_info_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
952
static unsigned svcctl_dissect_element_QueryServiceConfig2A_handle(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
953
static unsigned svcctl_dissect_element_QueryServiceConfig2A_handle_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
954
static unsigned svcctl_dissect_element_QueryServiceConfig2A_info_level(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
955
static unsigned svcctl_dissect_element_QueryServiceConfig2A_buffer(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
956
static unsigned svcctl_dissect_element_QueryServiceConfig2A_buffer_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
957
static unsigned svcctl_dissect_element_QueryServiceConfig2A_offered(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
958
static unsigned svcctl_dissect_element_QueryServiceConfig2A_needed(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
959
static unsigned svcctl_dissect_element_QueryServiceConfig2A_needed_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
960
static unsigned svcctl_dissect_element_QueryServiceConfig2W_handle(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
961
static unsigned svcctl_dissect_element_QueryServiceConfig2W_handle_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
962
static unsigned svcctl_dissect_element_QueryServiceConfig2W_info_level(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
963
static unsigned svcctl_dissect_element_QueryServiceConfig2W_buffer(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
964
static unsigned svcctl_dissect_element_QueryServiceConfig2W_buffer_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
965
static unsigned svcctl_dissect_element_QueryServiceConfig2W_buffer__(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
966
static unsigned svcctl_dissect_element_QueryServiceConfig2W_offered(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
967
static unsigned svcctl_dissect_element_QueryServiceConfig2W_needed(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
968
static unsigned svcctl_dissect_element_QueryServiceConfig2W_needed_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
969
static unsigned svcctl_dissect_element_QueryServiceStatusEx_handle(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
970
static unsigned svcctl_dissect_element_QueryServiceStatusEx_handle_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
971
static unsigned svcctl_dissect_element_QueryServiceStatusEx_info_level(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
972
static unsigned svcctl_dissect_element_QueryServiceStatusEx_buffer(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
973
static unsigned svcctl_dissect_element_QueryServiceStatusEx_buffer_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
974
static unsigned svcctl_dissect_element_QueryServiceStatusEx_buffer__(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
975
static unsigned svcctl_dissect_element_QueryServiceStatusEx_offered(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
976
static unsigned svcctl_dissect_element_QueryServiceStatusEx_needed(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
977
static unsigned svcctl_dissect_element_QueryServiceStatusEx_needed_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
978
static unsigned svcctl_dissect_element_EnumServicesStatusExA_scm_handle(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
979
static unsigned svcctl_dissect_element_EnumServicesStatusExA_scm_handle_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
980
static unsigned svcctl_dissect_element_EnumServicesStatusExA_info_level(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
981
static unsigned svcctl_dissect_element_EnumServicesStatusExA_service_type(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
982
static unsigned svcctl_dissect_element_EnumServicesStatusExA_state(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
983
static unsigned svcctl_dissect_element_EnumServicesStatusExA_services(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
984
static unsigned svcctl_dissect_element_EnumServicesStatusExA_services_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
985
static unsigned svcctl_dissect_element_EnumServicesStatusExA_offered(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
986
static unsigned svcctl_dissect_element_EnumServicesStatusExA_needed(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
987
static unsigned svcctl_dissect_element_EnumServicesStatusExA_needed_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
988
static unsigned svcctl_dissect_element_EnumServicesStatusExA_service_returned(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
989
static unsigned svcctl_dissect_element_EnumServicesStatusExA_service_returned_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
990
static unsigned svcctl_dissect_element_EnumServicesStatusExA_resume_handle(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
991
static unsigned svcctl_dissect_element_EnumServicesStatusExA_resume_handle_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
992
static unsigned svcctl_dissect_element_EnumServicesStatusExA_group_name(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
993
static unsigned svcctl_dissect_element_EnumServicesStatusExA_group_name_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
994
static unsigned svcctl_dissect_element_EnumServicesStatusExA_group_name__(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
995
static unsigned svcctl_dissect_element_EnumServicesStatusExW_scmanager(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
996
static unsigned svcctl_dissect_element_EnumServicesStatusExW_scmanager_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
997
static unsigned svcctl_dissect_element_EnumServicesStatusExW_info_level(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
998
static unsigned svcctl_dissect_element_EnumServicesStatusExW_service_type(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
999
static unsigned svcctl_dissect_element_EnumServicesStatusExW_state(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1000
static unsigned svcctl_dissect_element_EnumServicesStatusExW_services(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1001
static unsigned svcctl_dissect_element_EnumServicesStatusExW_services_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1002
static unsigned svcctl_dissect_element_EnumServicesStatusExW_services__(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1003
static unsigned svcctl_dissect_element_EnumServicesStatusExW_offered(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1004
static unsigned svcctl_dissect_element_EnumServicesStatusExW_needed(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1005
static unsigned svcctl_dissect_element_EnumServicesStatusExW_needed_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1006
static unsigned svcctl_dissect_element_EnumServicesStatusExW_service_returned(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1007
static unsigned svcctl_dissect_element_EnumServicesStatusExW_service_returned_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1008
static unsigned svcctl_dissect_element_EnumServicesStatusExW_resume_handle(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1009
static unsigned svcctl_dissect_element_EnumServicesStatusExW_resume_handle_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1010
static unsigned svcctl_dissect_element_EnumServicesStatusExW_group_name(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1011
static unsigned svcctl_dissect_element_EnumServicesStatusExW_group_name_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1012
static unsigned svcctl_dissect_element_CreateServiceWOW64A_scm_handle(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1013
static unsigned svcctl_dissect_element_CreateServiceWOW64A_scm_handle_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1014
static unsigned svcctl_dissect_element_CreateServiceWOW64A_ServiceName(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1015
static unsigned svcctl_dissect_element_CreateServiceWOW64A_DisplayName(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1016
static unsigned svcctl_dissect_element_CreateServiceWOW64A_DisplayName_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1017
static unsigned svcctl_dissect_element_CreateServiceWOW64A_desired_access(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1018
static unsigned svcctl_dissect_element_CreateServiceWOW64A_service_type(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1019
static unsigned svcctl_dissect_element_CreateServiceWOW64A_start_type(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1020
static unsigned svcctl_dissect_element_CreateServiceWOW64A_error_control(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1021
static unsigned svcctl_dissect_element_CreateServiceWOW64A_binary_path(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1022
static unsigned svcctl_dissect_element_CreateServiceWOW64A_LoadOrderGroupKey(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1023
static unsigned svcctl_dissect_element_CreateServiceWOW64A_LoadOrderGroupKey_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1024
static unsigned svcctl_dissect_element_CreateServiceWOW64A_tag_id(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1025
static unsigned svcctl_dissect_element_CreateServiceWOW64A_tag_id_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1026
static unsigned svcctl_dissect_element_CreateServiceWOW64A_dependencies(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1027
static unsigned svcctl_dissect_element_CreateServiceWOW64A_dependencies_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1028
static unsigned svcctl_dissect_element_CreateServiceWOW64A_dependencies__(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1029
static unsigned svcctl_dissect_element_CreateServiceWOW64A_dependencies_size(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1030
static unsigned svcctl_dissect_element_CreateServiceWOW64A_service_start_name(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1031
static unsigned svcctl_dissect_element_CreateServiceWOW64A_service_start_name_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1032
static unsigned svcctl_dissect_element_CreateServiceWOW64A_password(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1033
static unsigned svcctl_dissect_element_CreateServiceWOW64A_password_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1034
static unsigned svcctl_dissect_element_CreateServiceWOW64A_password__(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1035
static unsigned svcctl_dissect_element_CreateServiceWOW64A_password_size(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1036
static unsigned svcctl_dissect_element_CreateServiceWOW64A_handle(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1037
static unsigned svcctl_dissect_element_CreateServiceWOW64A_handle_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1038
static unsigned svcctl_dissect_element_CreateServiceWOW64W_scm_handle(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1039
static unsigned svcctl_dissect_element_CreateServiceWOW64W_scm_handle_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1040
static unsigned svcctl_dissect_element_CreateServiceWOW64W_ServiceName(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1041
static unsigned svcctl_dissect_element_CreateServiceWOW64W_DisplayName(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1042
static unsigned svcctl_dissect_element_CreateServiceWOW64W_DisplayName_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1043
static unsigned svcctl_dissect_element_CreateServiceWOW64W_desired_access(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1044
static unsigned svcctl_dissect_element_CreateServiceWOW64W_service_type(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1045
static unsigned svcctl_dissect_element_CreateServiceWOW64W_start_type(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1046
static unsigned svcctl_dissect_element_CreateServiceWOW64W_error_control(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1047
static unsigned svcctl_dissect_element_CreateServiceWOW64W_binary_path(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1048
static unsigned svcctl_dissect_element_CreateServiceWOW64W_LoadOrderGroupKey(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1049
static unsigned svcctl_dissect_element_CreateServiceWOW64W_LoadOrderGroupKey_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1050
static unsigned svcctl_dissect_element_CreateServiceWOW64W_tag_id(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1051
static unsigned svcctl_dissect_element_CreateServiceWOW64W_tag_id_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1052
static unsigned svcctl_dissect_element_CreateServiceWOW64W_dependencies(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1053
static unsigned svcctl_dissect_element_CreateServiceWOW64W_dependencies_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1054
static unsigned svcctl_dissect_element_CreateServiceWOW64W_dependencies__(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1055
static unsigned svcctl_dissect_element_CreateServiceWOW64W_dependencies_size(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1056
static unsigned svcctl_dissect_element_CreateServiceWOW64W_service_start_name(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1057
static unsigned svcctl_dissect_element_CreateServiceWOW64W_service_start_name_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1058
static unsigned svcctl_dissect_element_CreateServiceWOW64W_password(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1059
static unsigned svcctl_dissect_element_CreateServiceWOW64W_password_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1060
static unsigned svcctl_dissect_element_CreateServiceWOW64W_password__(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1061
static unsigned svcctl_dissect_element_CreateServiceWOW64W_password_size(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1062
static unsigned svcctl_dissect_element_CreateServiceWOW64W_handle(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1063
static unsigned svcctl_dissect_element_CreateServiceWOW64W_handle_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1064
static unsigned svcctl_dissect_element_QueryServiceConfigEx_service_handle(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1065
static unsigned svcctl_dissect_element_QueryServiceConfigEx_service_handle_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1066
static unsigned svcctl_dissect_element_QueryServiceConfigEx_info_level(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1067
static unsigned svcctl_dissect_element_CreateWowService_scm_handle(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1068
static unsigned svcctl_dissect_element_CreateWowService_scm_handle_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1069
static unsigned svcctl_dissect_element_CreateWowService_ServiceName(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1070
static unsigned svcctl_dissect_element_CreateWowService_DisplayName(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1071
static unsigned svcctl_dissect_element_CreateWowService_DisplayName_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1072
static unsigned svcctl_dissect_element_CreateWowService_desired_access(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1073
static unsigned svcctl_dissect_element_CreateWowService_service_type(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1074
static unsigned svcctl_dissect_element_CreateWowService_start_type(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1075
static unsigned svcctl_dissect_element_CreateWowService_error_control(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1076
static unsigned svcctl_dissect_element_CreateWowService_binary_path(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1077
static unsigned svcctl_dissect_element_CreateWowService_LoadOrderGroupKey(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1078
static unsigned svcctl_dissect_element_CreateWowService_LoadOrderGroupKey_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1079
static unsigned svcctl_dissect_element_CreateWowService_tag_id(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1080
static unsigned svcctl_dissect_element_CreateWowService_tag_id_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1081
static unsigned svcctl_dissect_element_CreateWowService_dependencies(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1082
static unsigned svcctl_dissect_element_CreateWowService_dependencies_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1083
static unsigned svcctl_dissect_element_CreateWowService_dependencies__(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1084
static unsigned svcctl_dissect_element_CreateWowService_dependencies_size(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1085
static unsigned svcctl_dissect_element_CreateWowService_service_start_name(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1086
static unsigned svcctl_dissect_element_CreateWowService_service_start_name_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1087
static unsigned svcctl_dissect_element_CreateWowService_password(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1088
static unsigned svcctl_dissect_element_CreateWowService_password_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1089
static unsigned svcctl_dissect_element_CreateWowService_password__(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1090
static unsigned svcctl_dissect_element_CreateWowService_password_size(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1091
static unsigned svcctl_dissect_element_CreateWowService_service_wow_type(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1092
static unsigned svcctl_dissect_element_CreateWowService_handle(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1093
static unsigned svcctl_dissect_element_CreateWowService_handle_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1094
static unsigned svcctl_dissect_element_OpenSCManager2_database_name(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1095
static unsigned svcctl_dissect_element_OpenSCManager2_database_name_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1096
static unsigned svcctl_dissect_element_OpenSCManager2_desired_access(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1097
static unsigned svcctl_dissect_element_OpenSCManager2_handle(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1098
static unsigned svcctl_dissect_element_OpenSCManager2_handle_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1099
/*  ENUM_SERVICE_STATUSW Caveats
1100
  https://github.com/fortra/impacket/blob/4888172ce638910104da4bda2c3301c24e17564c/impacket/dcerpc/v5/scmr.py#L1274
1101
*/
1102
static unsigned
1103
svcctl_dissect_struct_ENUM_SERVICE_STATUSW_ptr(tvbuff_t *tvb, unsigned offset, packet_info *pinfo, proto_tree *parent_tree, dcerpc_info* di, uint8_t *drep, int hf_index, int starting_offset);
1104
static unsigned
1105
svcctl_dissect_struct_ENUM_SERVICE_STATUSW_ptr(tvbuff_t *tvb, unsigned offset, packet_info *pinfo, proto_tree *parent_tree, dcerpc_info* di, uint8_t *drep, int hf_index, int starting_offset)
1106
0
{
1107
0
  proto_item *item = NULL;
1108
0
  proto_tree *tree = NULL;
1109
0
  proto_tree *tr = NULL;
1110
0
  int old_offset;
1111
0
  uint32_t _referent_id = 0;
1112
0
  ALIGN_TO_5_BYTES;
1113
0
  old_offset = offset;
1114
0
  if (parent_tree) {
1115
0
    item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
1116
0
    tree = proto_item_add_subtree(item, ett_svcctl_ENUM_SERVICE_STATUSW);
1117
0
  }
1118
  // Service Name
1119
0
  tr = proto_tree_add_subtree(tree, tvb, offset, 4, ett_svcctl_service_name, NULL, "Pointer to Service Name");
1120
0
  offset = PIDL_dissect_uint32_val(tvb, offset, pinfo, tr, di, drep, hf_svcctl_service_referent_id, 0, &_referent_id);
1121
0
  dissect_null_term_wstring(tvb, starting_offset + _referent_id, pinfo, tr, drep, hf_svcctl_ENUM_SERVICE_STATUSW_service_name , 0);
1122
  // Display Name
1123
0
  tr = proto_tree_add_subtree(tree, tvb, offset, 4, ett_svcctl_display_name, NULL, "Pointer to Display Name");
1124
0
  offset = PIDL_dissect_uint32_val(tvb, offset, pinfo, tr, di, drep, hf_svcctl_service_referent_id, 0, &_referent_id);
1125
0
  dissect_null_term_wstring(tvb, starting_offset + _referent_id, pinfo, tr, drep, hf_svcctl_ENUM_SERVICE_STATUSW_display_name , 0);
1126
  // Status
1127
0
  offset = svcctl_dissect_element_ENUM_SERVICE_STATUSW_status(tvb, offset, pinfo, tree, di, drep);
1128
0
  proto_item_set_len(item, offset-old_offset);
1129
0
  if (di->call_data->flags & DCERPC_IS_NDR64) {
1130
0
    ALIGN_TO_5_BYTES;
1131
0
  }
1132
0
  return offset;
1133
0
}
1134
/*  REnumServicesStatusW
1135
  https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-scmr/22b4ff3d-29c6-481f-b598-8ce66a46944a
1136
*/
1137
static unsigned
1138
svcctl_dissect_EnumServicesStatusW_response(tvbuff_t *tvb, unsigned offset, packet_info *pinfo, proto_tree *tree, dcerpc_info* di, uint8_t *drep)
1139
0
{
1140
0
  uint32_t status;
1141
0
  uint32_t services_returned= 0;
1142
0
  proto_item *item;
1143
0
  proto_tree  *tr           = NULL;
1144
0
  int         services_buffer_offset;
1145
0
  int         payload_starting_offset = offset;
1146
0
  uint64_t buffer_size = 0;
1147
0
  ALIGN_TO_5_BYTES
1148
0
  di->dcerpc_procedure_name="EnumServicesStatusW";
1149
0
  tr = proto_tree_add_subtree(tree, tvb, offset, 0, ett_svcctl_service, &item, "Pointer to Services Status");
1150
  // Services Buffer Size
1151
0
  offset = dissect_ndr_uint3264(tvb, offset, pinfo, tr, di, drep, hf_svcctl_service_buffer_size, &buffer_size);
1152
0
  services_buffer_offset = offset;
1153
0
  offset += (int)buffer_size;
1154
0
  proto_item_set_len(item, offset-payload_starting_offset);
1155
0
  ALIGN_TO_4_BYTES
1156
  // Bytes Needed
1157
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_EnumServicesStatusW_bytes_needed, 0);
1158
  // Services Returned
1159
0
  offset = PIDL_dissect_uint32_val( tvb, offset, pinfo, tree, di, drep
1160
0
                                  , hf_svcctl_svcctl_EnumServicesStatusW_services_returned
1161
0
                                  , 0, &services_returned);
1162
  // Services
1163
0
  if (services_returned > 0){
1164
0
    payload_starting_offset = services_buffer_offset;
1165
0
    for(unsigned idx = 0; idx < services_returned ; ++idx){
1166
0
      services_buffer_offset = svcctl_dissect_struct_ENUM_SERVICE_STATUSW_ptr( tvb, services_buffer_offset
1167
0
                                                                             , pinfo, tr, di, drep
1168
0
                                                                             , hf_svcctl_svcctl_EnumDependentServicesW_service_status
1169
0
                                                                             , payload_starting_offset);
1170
0
    }
1171
0
    dissect_deferred_pointers(pinfo, tvb, services_buffer_offset, di, drep);
1172
0
  }
1173
  // Resume Index
1174
0
  offset = svcctl_dissect_element_EnumServicesStatusW_resume_index(tvb, offset, pinfo, tree, di, drep);
1175
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
1176
  // Return status
1177
0
  offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_werror, &status);
1178
0
  if (status != 0)
1179
0
    col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(pinfo->pool, status, &WERR_errors_ext, "Unknown DOS error 0x%08x"));
1180
0
  return offset;
1181
0
}
1182
1183
1184
/* IDL: bitmap { */
1185
/* IDL: } */
1186
1187
unsigned
1188
svcctl_dissect_bitmap_security_secinfo(tvbuff_t *tvb _U_, unsigned 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_)
1189
0
{
1190
0
  uint32_t flags;
1191
0
  ALIGN_TO_4_BYTES;
1192
1193
0
  proto_tree_add_item(parent_tree, hf_index, tvb, offset, 4, DREP_ENC_INTEGER(drep));
1194
1195
0
  offset = dissect_ndr_uint32(tvb, offset, pinfo, parent_tree, di, drep, -1, &flags);
1196
1197
0
  return offset;
1198
0
}
1199
1200
1201
/* IDL: struct { */
1202
/* IDL:   uint32 is_locked; */
1203
/* IDL:   [charset(UTF16)] [unique(1)] uint16 *lock_owner; */
1204
/* IDL:   uint32 lock_duration; */
1205
/* IDL: } */
1206
1207
static unsigned
1208
svcctl_dissect_element_SERVICE_LOCK_STATUS_is_locked(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1209
0
{
1210
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_SERVICE_LOCK_STATUS_is_locked, 0);
1211
1212
0
  return offset;
1213
0
}
1214
1215
static unsigned
1216
svcctl_dissect_element_SERVICE_LOCK_STATUS_lock_owner(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1217
0
{
1218
0
  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);
1219
1220
0
  return offset;
1221
0
}
1222
1223
static unsigned
1224
svcctl_dissect_element_SERVICE_LOCK_STATUS_lock_owner_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1225
0
{
1226
0
  char *data;
1227
1228
0
  offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(uint16_t), hf_svcctl_SERVICE_LOCK_STATUS_lock_owner, false, &data);
1229
0
  proto_item_append_text(tree, ": %s", data);
1230
1231
0
  return offset;
1232
0
}
1233
1234
static unsigned
1235
svcctl_dissect_element_SERVICE_LOCK_STATUS_lock_duration(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1236
0
{
1237
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_SERVICE_LOCK_STATUS_lock_duration, 0);
1238
1239
0
  return offset;
1240
0
}
1241
1242
unsigned
1243
svcctl_dissect_struct_SERVICE_LOCK_STATUS(tvbuff_t *tvb _U_, unsigned 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_)
1244
0
{
1245
0
  proto_item *item = NULL;
1246
0
  proto_tree *tree = NULL;
1247
0
  unsigned old_offset;
1248
1249
0
  ALIGN_TO_5_BYTES;
1250
1251
0
  old_offset = offset;
1252
1253
0
  if (parent_tree) {
1254
0
    item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
1255
0
    tree = proto_item_add_subtree(item, ett_svcctl_SERVICE_LOCK_STATUS);
1256
0
  }
1257
1258
0
  offset = svcctl_dissect_element_SERVICE_LOCK_STATUS_is_locked(tvb, offset, pinfo, tree, di, drep);
1259
1260
0
  offset = svcctl_dissect_element_SERVICE_LOCK_STATUS_lock_owner(tvb, offset, pinfo, tree, di, drep);
1261
1262
0
  offset = svcctl_dissect_element_SERVICE_LOCK_STATUS_lock_duration(tvb, offset, pinfo, tree, di, drep);
1263
1264
1265
0
  proto_item_set_len(item, offset-old_offset);
1266
1267
1268
0
  if (di->call_data->flags & DCERPC_IS_NDR64) {
1269
0
    ALIGN_TO_5_BYTES;
1270
0
  }
1271
1272
0
  return offset;
1273
0
}
1274
1275
1276
/* IDL: enum { */
1277
/* IDL:   SVCCTL_STOPPED=0x00000001, */
1278
/* IDL:   SVCCTL_START_PENDING=0x00000002, */
1279
/* IDL:   SVCCTL_STOP_PENDING=0x00000003, */
1280
/* IDL:   SVCCTL_RUNNING=0x00000004, */
1281
/* IDL:   SVCCTL_CONTINUE_PENDING=0x00000005, */
1282
/* IDL:   SVCCTL_PAUSE_PENDING=0x00000006, */
1283
/* IDL:   SVCCTL_PAUSED=0x00000007, */
1284
/* IDL: } */
1285
1286
unsigned
1287
svcctl_dissect_enum_ServiceStatus(tvbuff_t *tvb _U_, unsigned 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_)
1288
0
{
1289
0
  uint32_t parameter=0;
1290
0
  if (param) {
1291
0
    parameter = *param;
1292
0
  }
1293
0
  offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_index, &parameter);
1294
0
  if (param) {
1295
0
    *param = parameter;
1296
0
  }
1297
0
  return offset;
1298
0
}
1299
1300
1301
/* IDL: enum { */
1302
/* IDL:   SERVICE_TYPE_KERNEL_DRIVER=0x00000001, */
1303
/* IDL:   SERVICE_TYPE_FS_DRIVER=0x00000002, */
1304
/* IDL:   SERVICE_TYPE_ADAPTER=0x00000004, */
1305
/* IDL:   SERVICE_TYPE_RECOGNIZER_DRIVER=0x00000008, */
1306
/* IDL:   SERVICE_TYPE_DRIVER=SERVICE_TYPE_KERNEL_DRIVER|SERVICE_TYPE_FS_DRIVER|SERVICE_TYPE_RECOGNIZER_DRIVER, */
1307
/* IDL:   SERVICE_TYPE_WIN32_OWN_PROCESS=0x00000010, */
1308
/* IDL:   SERVICE_TYPE_WIN32_SHARE_PROCESS=0x00000020, */
1309
/* IDL:   SERVICE_TYPE_USER_OWN_PROCESS=0x00000050, */
1310
/* IDL:   SERVICE_TYPE_USER_SHARE_PROCESS=0x00000060, */
1311
/* IDL:   SERVICE_TYPE_WIN32=SERVICE_TYPE_WIN32_OWN_PROCESS|SERVICE_TYPE_WIN32_SHARE_PROCESS, */
1312
/* IDL:   SERVICE_TYPE_INTERACTIVE_PROCESS=0x00000100, */
1313
/* IDL: } */
1314
1315
unsigned
1316
svcctl_dissect_enum_ServiceType(tvbuff_t *tvb _U_, unsigned 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_)
1317
0
{
1318
0
  uint32_t parameter=0;
1319
0
  if (param) {
1320
0
    parameter = *param;
1321
0
  }
1322
0
  offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_index, &parameter);
1323
0
  if (param) {
1324
0
    *param = parameter;
1325
0
  }
1326
0
  return offset;
1327
0
}
1328
1329
1330
/* IDL: bitmap { */
1331
/* IDL:   SERVICE_ACCEPT_STOP =  0x00000001 , */
1332
/* IDL:   SERVICE_ACCEPT_PAUSE_CONTINUE =  0x00000002 , */
1333
/* IDL:   SERVICE_ACCEPT_SHUTDOWN =  0x00000004 , */
1334
/* IDL:   SERVICE_ACCEPT_PARAMCHANGE =  0x00000008 , */
1335
/* IDL:   SERVICE_ACCEPT_NETBINDCHANGE =  0x00000010 , */
1336
/* IDL:   SERVICE_ACCEPT_HARDWAREPROFILECHANGE =  0x00000020 , */
1337
/* IDL:   SERVICE_ACCEPT_POWEREVENT =  0x00000040 , */
1338
/* IDL:   SERVICE_ACCEPT_SESSIONCHANGE =  0x00000080 , */
1339
/* IDL:   SERVICE_ACCEPT_PRESHUTDOWN =  0x00000100 , */
1340
/* IDL:   SERVICE_ACCEPT_TIMECHANGE =  0x00000200 , */
1341
/* IDL:   SERVICE_ACCEPT_TRIGGEREVENT =  0x00000400 , */
1342
/* IDL:   SERVICE_ACCEPT_USERMODEREBOOT =  0x00000800 , */
1343
/* IDL: } */
1344
1345
unsigned
1346
svcctl_dissect_bitmap_ControlsAccepted(tvbuff_t *tvb _U_, unsigned 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_)
1347
0
{
1348
0
  proto_item *item;
1349
0
  static int * const svcctl_svcctl_ControlsAccepted_fields[] = {
1350
0
    &hf_svcctl_svcctl_ControlsAccepted_SERVICE_ACCEPT_STOP,
1351
0
    &hf_svcctl_svcctl_ControlsAccepted_SERVICE_ACCEPT_PAUSE_CONTINUE,
1352
0
    &hf_svcctl_svcctl_ControlsAccepted_SERVICE_ACCEPT_SHUTDOWN,
1353
0
    &hf_svcctl_svcctl_ControlsAccepted_SERVICE_ACCEPT_PARAMCHANGE,
1354
0
    &hf_svcctl_svcctl_ControlsAccepted_SERVICE_ACCEPT_NETBINDCHANGE,
1355
0
    &hf_svcctl_svcctl_ControlsAccepted_SERVICE_ACCEPT_HARDWAREPROFILECHANGE,
1356
0
    &hf_svcctl_svcctl_ControlsAccepted_SERVICE_ACCEPT_POWEREVENT,
1357
0
    &hf_svcctl_svcctl_ControlsAccepted_SERVICE_ACCEPT_SESSIONCHANGE,
1358
0
    &hf_svcctl_svcctl_ControlsAccepted_SERVICE_ACCEPT_PRESHUTDOWN,
1359
0
    &hf_svcctl_svcctl_ControlsAccepted_SERVICE_ACCEPT_TIMECHANGE,
1360
0
    &hf_svcctl_svcctl_ControlsAccepted_SERVICE_ACCEPT_TRIGGEREVENT,
1361
0
    &hf_svcctl_svcctl_ControlsAccepted_SERVICE_ACCEPT_USERMODEREBOOT,
1362
0
    NULL
1363
0
  };
1364
0
  uint32_t flags;
1365
0
  ALIGN_TO_4_BYTES;
1366
1367
0
  item = proto_tree_add_bitmask_with_flags(parent_tree, tvb, offset, hf_index,
1368
0
        ett_svcctl_svcctl_ControlsAccepted, svcctl_svcctl_ControlsAccepted_fields, DREP_ENC_INTEGER(drep), BMT_NO_FALSE);
1369
1370
0
  offset = dissect_ndr_uint32(tvb, offset, pinfo, parent_tree, di, drep, -1, &flags);
1371
1372
0
  if (!flags)
1373
0
    proto_item_append_text(item, ": (No values set)");
1374
1375
0
  if (flags & (~0x00000fff)) {
1376
0
    flags &= (~0x00000fff);
1377
0
    proto_item_append_text(item, "Unknown bitmap value 0x%x", flags);
1378
0
  }
1379
1380
0
  return offset;
1381
0
}
1382
1383
1384
/* IDL: struct { */
1385
/* IDL:   svcctl_ServiceType type; */
1386
/* IDL:   svcctl_ServiceStatus state; */
1387
/* IDL:   svcctl_ControlsAccepted controls_accepted; */
1388
/* IDL:   WERROR win32_exit_code; */
1389
/* IDL:   uint32 service_exit_code; */
1390
/* IDL:   uint32 check_point; */
1391
/* IDL:   uint32 wait_hint; */
1392
/* IDL: } */
1393
1394
static unsigned
1395
svcctl_dissect_element_SERVICE_STATUS_type(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1396
0
{
1397
0
  offset = svcctl_dissect_enum_ServiceType(tvb, offset, pinfo, tree, di, drep, hf_svcctl_SERVICE_STATUS_type, 0);
1398
1399
0
  return offset;
1400
0
}
1401
1402
static unsigned
1403
svcctl_dissect_element_SERVICE_STATUS_state(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1404
0
{
1405
0
  offset = svcctl_dissect_enum_ServiceStatus(tvb, offset, pinfo, tree, di, drep, hf_svcctl_SERVICE_STATUS_state, 0);
1406
1407
0
  return offset;
1408
0
}
1409
1410
static unsigned
1411
svcctl_dissect_element_SERVICE_STATUS_controls_accepted(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1412
0
{
1413
0
  offset = svcctl_dissect_bitmap_ControlsAccepted(tvb, offset, pinfo, tree, di, drep, hf_svcctl_SERVICE_STATUS_controls_accepted, 0);
1414
1415
0
  return offset;
1416
0
}
1417
1418
static unsigned
1419
svcctl_dissect_element_SERVICE_STATUS_win32_exit_code(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1420
0
{
1421
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_SERVICE_STATUS_win32_exit_code, 0);
1422
1423
0
  return offset;
1424
0
}
1425
1426
static unsigned
1427
svcctl_dissect_element_SERVICE_STATUS_service_exit_code(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1428
0
{
1429
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_SERVICE_STATUS_service_exit_code, 0);
1430
1431
0
  return offset;
1432
0
}
1433
1434
static unsigned
1435
svcctl_dissect_element_SERVICE_STATUS_check_point(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1436
0
{
1437
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_SERVICE_STATUS_check_point, 0);
1438
1439
0
  return offset;
1440
0
}
1441
1442
static unsigned
1443
svcctl_dissect_element_SERVICE_STATUS_wait_hint(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1444
0
{
1445
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_SERVICE_STATUS_wait_hint, 0);
1446
1447
0
  return offset;
1448
0
}
1449
1450
unsigned
1451
svcctl_dissect_struct_SERVICE_STATUS(tvbuff_t *tvb _U_, unsigned 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_)
1452
0
{
1453
0
  proto_item *item = NULL;
1454
0
  proto_tree *tree = NULL;
1455
0
  unsigned old_offset;
1456
1457
0
  ALIGN_TO_4_BYTES;
1458
1459
0
  old_offset = offset;
1460
1461
0
  if (parent_tree) {
1462
0
    item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
1463
0
    tree = proto_item_add_subtree(item, ett_svcctl_SERVICE_STATUS);
1464
0
  }
1465
1466
0
  offset = svcctl_dissect_element_SERVICE_STATUS_type(tvb, offset, pinfo, tree, di, drep);
1467
1468
0
  offset = svcctl_dissect_element_SERVICE_STATUS_state(tvb, offset, pinfo, tree, di, drep);
1469
1470
0
  offset = svcctl_dissect_element_SERVICE_STATUS_controls_accepted(tvb, offset, pinfo, tree, di, drep);
1471
1472
0
  offset = svcctl_dissect_element_SERVICE_STATUS_win32_exit_code(tvb, offset, pinfo, tree, di, drep);
1473
1474
0
  offset = svcctl_dissect_element_SERVICE_STATUS_service_exit_code(tvb, offset, pinfo, tree, di, drep);
1475
1476
0
  offset = svcctl_dissect_element_SERVICE_STATUS_check_point(tvb, offset, pinfo, tree, di, drep);
1477
1478
0
  offset = svcctl_dissect_element_SERVICE_STATUS_wait_hint(tvb, offset, pinfo, tree, di, drep);
1479
1480
1481
0
  proto_item_set_len(item, offset-old_offset);
1482
1483
1484
0
  if (di->call_data->flags & DCERPC_IS_NDR64) {
1485
0
    ALIGN_TO_4_BYTES;
1486
0
  }
1487
1488
0
  return offset;
1489
0
}
1490
1491
1492
/* IDL: enum { */
1493
/* IDL:   SERVICE_RUNS_IN_NONSYSTEM_ORNOTRUNNING=0x00000000, */
1494
/* IDL:   SERVICE_RUNS_IN_SYSTEM_PROCESS=0x00000001, */
1495
/* IDL: } */
1496
1497
unsigned
1498
svcctl_dissect_enum_ServiceFlags(tvbuff_t *tvb _U_, unsigned 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_)
1499
0
{
1500
0
  uint32_t parameter=0;
1501
0
  if (param) {
1502
0
    parameter = *param;
1503
0
  }
1504
0
  offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_index, &parameter);
1505
0
  if (param) {
1506
0
    *param = parameter;
1507
0
  }
1508
0
  return offset;
1509
0
}
1510
1511
1512
/* IDL: struct { */
1513
/* IDL:   svcctl_ServiceType type; */
1514
/* IDL:   svcctl_ServiceStatus state; */
1515
/* IDL:   svcctl_ControlsAccepted controls_accepted; */
1516
/* IDL:   WERROR win32_exit_code; */
1517
/* IDL:   uint32 service_exit_code; */
1518
/* IDL:   uint32 check_point; */
1519
/* IDL:   uint32 wait_hint; */
1520
/* IDL:   uint32 process_id; */
1521
/* IDL:   svcctl_ServiceFlags service_flags; */
1522
/* IDL: } */
1523
1524
static unsigned
1525
svcctl_dissect_element_SERVICE_STATUS_PROCESS_type(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1526
0
{
1527
0
  offset = svcctl_dissect_enum_ServiceType(tvb, offset, pinfo, tree, di, drep, hf_svcctl_SERVICE_STATUS_PROCESS_type, 0);
1528
1529
0
  return offset;
1530
0
}
1531
1532
static unsigned
1533
svcctl_dissect_element_SERVICE_STATUS_PROCESS_state(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1534
0
{
1535
0
  offset = svcctl_dissect_enum_ServiceStatus(tvb, offset, pinfo, tree, di, drep, hf_svcctl_SERVICE_STATUS_PROCESS_state, 0);
1536
1537
0
  return offset;
1538
0
}
1539
1540
static unsigned
1541
svcctl_dissect_element_SERVICE_STATUS_PROCESS_controls_accepted(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1542
0
{
1543
0
  offset = svcctl_dissect_bitmap_ControlsAccepted(tvb, offset, pinfo, tree, di, drep, hf_svcctl_SERVICE_STATUS_PROCESS_controls_accepted, 0);
1544
1545
0
  return offset;
1546
0
}
1547
1548
static unsigned
1549
svcctl_dissect_element_SERVICE_STATUS_PROCESS_win32_exit_code(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1550
0
{
1551
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_SERVICE_STATUS_PROCESS_win32_exit_code, 0);
1552
1553
0
  return offset;
1554
0
}
1555
1556
static unsigned
1557
svcctl_dissect_element_SERVICE_STATUS_PROCESS_service_exit_code(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1558
0
{
1559
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_SERVICE_STATUS_PROCESS_service_exit_code, 0);
1560
1561
0
  return offset;
1562
0
}
1563
1564
static unsigned
1565
svcctl_dissect_element_SERVICE_STATUS_PROCESS_check_point(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1566
0
{
1567
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_SERVICE_STATUS_PROCESS_check_point, 0);
1568
1569
0
  return offset;
1570
0
}
1571
1572
static unsigned
1573
svcctl_dissect_element_SERVICE_STATUS_PROCESS_wait_hint(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1574
0
{
1575
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_SERVICE_STATUS_PROCESS_wait_hint, 0);
1576
1577
0
  return offset;
1578
0
}
1579
1580
static unsigned
1581
svcctl_dissect_element_SERVICE_STATUS_PROCESS_process_id(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1582
0
{
1583
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_SERVICE_STATUS_PROCESS_process_id, 0);
1584
1585
0
  return offset;
1586
0
}
1587
1588
static unsigned
1589
svcctl_dissect_element_SERVICE_STATUS_PROCESS_service_flags(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1590
0
{
1591
0
  offset = svcctl_dissect_enum_ServiceFlags(tvb, offset, pinfo, tree, di, drep, hf_svcctl_SERVICE_STATUS_PROCESS_service_flags, 0);
1592
1593
0
  return offset;
1594
0
}
1595
1596
unsigned
1597
svcctl_dissect_struct_SERVICE_STATUS_PROCESS(tvbuff_t *tvb _U_, unsigned 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_)
1598
0
{
1599
0
  proto_item *item = NULL;
1600
0
  proto_tree *tree = NULL;
1601
0
  unsigned old_offset;
1602
1603
0
  ALIGN_TO_4_BYTES;
1604
1605
0
  old_offset = offset;
1606
1607
0
  if (parent_tree) {
1608
0
    item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
1609
0
    tree = proto_item_add_subtree(item, ett_svcctl_SERVICE_STATUS_PROCESS);
1610
0
  }
1611
1612
0
  offset = svcctl_dissect_element_SERVICE_STATUS_PROCESS_type(tvb, offset, pinfo, tree, di, drep);
1613
1614
0
  offset = svcctl_dissect_element_SERVICE_STATUS_PROCESS_state(tvb, offset, pinfo, tree, di, drep);
1615
1616
0
  offset = svcctl_dissect_element_SERVICE_STATUS_PROCESS_controls_accepted(tvb, offset, pinfo, tree, di, drep);
1617
1618
0
  offset = svcctl_dissect_element_SERVICE_STATUS_PROCESS_win32_exit_code(tvb, offset, pinfo, tree, di, drep);
1619
1620
0
  offset = svcctl_dissect_element_SERVICE_STATUS_PROCESS_service_exit_code(tvb, offset, pinfo, tree, di, drep);
1621
1622
0
  offset = svcctl_dissect_element_SERVICE_STATUS_PROCESS_check_point(tvb, offset, pinfo, tree, di, drep);
1623
1624
0
  offset = svcctl_dissect_element_SERVICE_STATUS_PROCESS_wait_hint(tvb, offset, pinfo, tree, di, drep);
1625
1626
0
  offset = svcctl_dissect_element_SERVICE_STATUS_PROCESS_process_id(tvb, offset, pinfo, tree, di, drep);
1627
1628
0
  offset = svcctl_dissect_element_SERVICE_STATUS_PROCESS_service_flags(tvb, offset, pinfo, tree, di, drep);
1629
1630
1631
0
  proto_item_set_len(item, offset-old_offset);
1632
1633
1634
0
  if (di->call_data->flags & DCERPC_IS_NDR64) {
1635
0
    ALIGN_TO_4_BYTES;
1636
0
  }
1637
1638
0
  return offset;
1639
0
}
1640
1641
1642
/* IDL: struct { */
1643
/* IDL:   [flag(LIBNDR_FLAG_STR_NULLTERM)] [unique(1)] string *service_name; */
1644
/* IDL:   [flag(LIBNDR_FLAG_STR_NULLTERM)] [unique(1)] string *display_name; */
1645
/* IDL:   SERVICE_STATUS status; */
1646
/* IDL: } */
1647
1648
static unsigned
1649
svcctl_dissect_element_ENUM_SERVICE_STATUSW_service_name(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1650
0
{
1651
0
  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);
1652
1653
0
  return offset;
1654
0
}
1655
1656
static unsigned
1657
svcctl_dissect_element_ENUM_SERVICE_STATUSW_service_name_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1658
0
{
1659
0
  offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_svcctl_ENUM_SERVICE_STATUSW_service_name , 0);
1660
1661
0
  return offset;
1662
0
}
1663
1664
static unsigned
1665
svcctl_dissect_element_ENUM_SERVICE_STATUSW_display_name(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1666
0
{
1667
0
  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);
1668
1669
0
  return offset;
1670
0
}
1671
1672
static unsigned
1673
svcctl_dissect_element_ENUM_SERVICE_STATUSW_display_name_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1674
0
{
1675
0
  offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_svcctl_ENUM_SERVICE_STATUSW_display_name , 0);
1676
1677
0
  return offset;
1678
0
}
1679
1680
static unsigned
1681
svcctl_dissect_element_ENUM_SERVICE_STATUSW_status(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1682
0
{
1683
0
  offset = svcctl_dissect_struct_SERVICE_STATUS(tvb,offset,pinfo,tree,di,drep,hf_svcctl_ENUM_SERVICE_STATUSW_status,0);
1684
1685
0
  return offset;
1686
0
}
1687
1688
unsigned
1689
svcctl_dissect_struct_ENUM_SERVICE_STATUSW(tvbuff_t *tvb _U_, unsigned 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_)
1690
0
{
1691
0
  proto_item *item = NULL;
1692
0
  proto_tree *tree = NULL;
1693
0
  unsigned old_offset;
1694
1695
0
  ALIGN_TO_5_BYTES;
1696
1697
0
  old_offset = offset;
1698
1699
0
  if (parent_tree) {
1700
0
    item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
1701
0
    tree = proto_item_add_subtree(item, ett_svcctl_ENUM_SERVICE_STATUSW);
1702
0
  }
1703
1704
0
  offset = svcctl_dissect_element_ENUM_SERVICE_STATUSW_service_name(tvb, offset, pinfo, tree, di, drep);
1705
1706
0
  offset = svcctl_dissect_element_ENUM_SERVICE_STATUSW_display_name(tvb, offset, pinfo, tree, di, drep);
1707
1708
0
  offset = svcctl_dissect_element_ENUM_SERVICE_STATUSW_status(tvb, offset, pinfo, tree, di, drep);
1709
1710
1711
0
  proto_item_set_len(item, offset-old_offset);
1712
1713
1714
0
  if (di->call_data->flags & DCERPC_IS_NDR64) {
1715
0
    ALIGN_TO_5_BYTES;
1716
0
  }
1717
1718
0
  return offset;
1719
0
}
1720
1721
1722
/* IDL: struct { */
1723
/* IDL:   [flag(LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM)] [unique(1)] string *service_name; */
1724
/* IDL:   [flag(LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM)] [unique(1)] string *display_name; */
1725
/* IDL:   SERVICE_STATUS status; */
1726
/* IDL: } */
1727
1728
static unsigned
1729
svcctl_dissect_element_ENUM_SERVICE_STATUSA_service_name(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1730
0
{
1731
0
  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);
1732
1733
0
  return offset;
1734
0
}
1735
1736
static unsigned
1737
svcctl_dissect_element_ENUM_SERVICE_STATUSA_service_name_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1738
0
{
1739
0
  offset = dissect_null_term_string(tvb, offset, pinfo, tree, drep, hf_svcctl_ENUM_SERVICE_STATUSA_service_name , 0);
1740
1741
0
  return offset;
1742
0
}
1743
1744
static unsigned
1745
svcctl_dissect_element_ENUM_SERVICE_STATUSA_display_name(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1746
0
{
1747
0
  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);
1748
1749
0
  return offset;
1750
0
}
1751
1752
static unsigned
1753
svcctl_dissect_element_ENUM_SERVICE_STATUSA_display_name_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1754
0
{
1755
0
  offset = dissect_null_term_string(tvb, offset, pinfo, tree, drep, hf_svcctl_ENUM_SERVICE_STATUSA_display_name , 0);
1756
1757
0
  return offset;
1758
0
}
1759
1760
static unsigned
1761
svcctl_dissect_element_ENUM_SERVICE_STATUSA_status(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1762
0
{
1763
0
  offset = svcctl_dissect_struct_SERVICE_STATUS(tvb,offset,pinfo,tree,di,drep,hf_svcctl_ENUM_SERVICE_STATUSA_status,0);
1764
1765
0
  return offset;
1766
0
}
1767
1768
unsigned
1769
svcctl_dissect_struct_ENUM_SERVICE_STATUSA(tvbuff_t *tvb _U_, unsigned 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_)
1770
0
{
1771
0
  proto_item *item = NULL;
1772
0
  proto_tree *tree = NULL;
1773
0
  unsigned old_offset;
1774
1775
0
  ALIGN_TO_5_BYTES;
1776
1777
0
  old_offset = offset;
1778
1779
0
  if (parent_tree) {
1780
0
    item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
1781
0
    tree = proto_item_add_subtree(item, ett_svcctl_ENUM_SERVICE_STATUSA);
1782
0
  }
1783
1784
0
  offset = svcctl_dissect_element_ENUM_SERVICE_STATUSA_service_name(tvb, offset, pinfo, tree, di, drep);
1785
1786
0
  offset = svcctl_dissect_element_ENUM_SERVICE_STATUSA_display_name(tvb, offset, pinfo, tree, di, drep);
1787
1788
0
  offset = svcctl_dissect_element_ENUM_SERVICE_STATUSA_status(tvb, offset, pinfo, tree, di, drep);
1789
1790
1791
0
  proto_item_set_len(item, offset-old_offset);
1792
1793
1794
0
  if (di->call_data->flags & DCERPC_IS_NDR64) {
1795
0
    ALIGN_TO_5_BYTES;
1796
0
  }
1797
1798
0
  return offset;
1799
0
}
1800
1801
1802
/* IDL: enum { */
1803
/* IDL:   SVCCTL_CONTROL_STOP=0x00000001, */
1804
/* IDL:   SVCCTL_CONTROL_PAUSE=0x00000002, */
1805
/* IDL:   SVCCTL_CONTROL_CONTINUE=0x00000003, */
1806
/* IDL:   SVCCTL_CONTROL_INTERROGATE=0x00000004, */
1807
/* IDL:   SVCCTL_CONTROL_SHUTDOWN=0x00000005, */
1808
/* IDL:   SERVICE_CONTROL_PARAMCHANGE=0x00000006, */
1809
/* IDL:   SERVICE_CONTROL_NETBINDADD=0x00000007, */
1810
/* IDL:   SERVICE_CONTROL_NETBINDREMOVE=0x00000008, */
1811
/* IDL:   SERVICE_CONTROL_NETBINDENABLE=0x00000009, */
1812
/* IDL:   SERVICE_CONTROL_NETBINDDISABLE=0x0000000A, */
1813
/* IDL: } */
1814
1815
unsigned
1816
svcctl_dissect_enum_SERVICE_CONTROL(tvbuff_t *tvb _U_, unsigned 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_)
1817
0
{
1818
0
  uint32_t parameter=0;
1819
0
  if (param) {
1820
0
    parameter = *param;
1821
0
  }
1822
0
  offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_index, &parameter);
1823
0
  if (param) {
1824
0
    *param = parameter;
1825
0
  }
1826
0
  return offset;
1827
0
}
1828
1829
1830
/* IDL: enum { */
1831
/* IDL:   SVCCTL_SVC_ERROR_IGNORE=0x00000000, */
1832
/* IDL:   SVCCTL_SVC_ERROR_NORMAL=0x00000001, */
1833
/* IDL:   SVCCTL_SVC_ERROR_CRITICAL=0x00000002, */
1834
/* IDL:   SVCCTL_SVC_ERROR_SEVERE=0x00000003, */
1835
/* IDL: } */
1836
1837
unsigned
1838
svcctl_dissect_enum_ErrorControl(tvbuff_t *tvb _U_, unsigned 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_)
1839
0
{
1840
0
  uint32_t parameter=0;
1841
0
  if (param) {
1842
0
    parameter = *param;
1843
0
  }
1844
0
  offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_index, &parameter);
1845
0
  if (param) {
1846
0
    *param = parameter;
1847
0
  }
1848
0
  return offset;
1849
0
}
1850
1851
1852
/* IDL: enum { */
1853
/* IDL:   SVCCTL_BOOT_START=0x00000000, */
1854
/* IDL:   SVCCTL_SYSTEM_START=0x00000001, */
1855
/* IDL:   SVCCTL_AUTO_START=0x00000002, */
1856
/* IDL:   SVCCTL_DEMAND_START=0x00000003, */
1857
/* IDL:   SVCCTL_DISABLED=0x00000004, */
1858
/* IDL: } */
1859
1860
unsigned
1861
svcctl_dissect_enum_StartType(tvbuff_t *tvb _U_, unsigned 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_)
1862
0
{
1863
0
  uint32_t parameter=0;
1864
0
  if (param) {
1865
0
    parameter = *param;
1866
0
  }
1867
0
  offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_index, &parameter);
1868
0
  if (param) {
1869
0
    *param = parameter;
1870
0
  }
1871
0
  return offset;
1872
0
}
1873
1874
1875
/* IDL: enum { */
1876
/* IDL:   SERVICE_STATE_ACTIVE=0x00000001, */
1877
/* IDL:   SERVICE_STATE_INACTIVE=0x00000002, */
1878
/* IDL:   SERVICE_STATE_ALL=(SERVICE_STATE_ACTIVE|SERVICE_STATE_INACTIVE), */
1879
/* IDL: } */
1880
1881
unsigned
1882
svcctl_dissect_enum_ServiceState(tvbuff_t *tvb _U_, unsigned 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_)
1883
0
{
1884
0
  uint32_t parameter=0;
1885
0
  if (param) {
1886
0
    parameter = *param;
1887
0
  }
1888
0
  offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_index, &parameter);
1889
0
  if (param) {
1890
0
    *param = parameter;
1891
0
  }
1892
0
  return offset;
1893
0
}
1894
1895
1896
/* IDL: bitmap { */
1897
/* IDL:   SC_RIGHT_MGR_CONNECT =  0x00000001 , */
1898
/* IDL:   SC_RIGHT_MGR_CREATE_SERVICE =  0x00000002 , */
1899
/* IDL:   SC_RIGHT_MGR_ENUMERATE_SERVICE =  0x00000004 , */
1900
/* IDL:   SC_RIGHT_MGR_LOCK =  0x00000008 , */
1901
/* IDL:   SC_RIGHT_MGR_QUERY_LOCK_STATUS =  0x00000010 , */
1902
/* IDL:   SC_RIGHT_MGR_MODIFY_BOOT_CONFIG =  0x00000020 , */
1903
/* IDL:   SC_RIGHT_MGR_ALL_ACCESS =  0x000F003F , */
1904
/* IDL: } */
1905
1906
unsigned
1907
svcctl_dissect_bitmap_MgrAccessMask(tvbuff_t *tvb _U_, unsigned 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_)
1908
0
{
1909
0
  proto_item *item;
1910
0
  static int * const svcctl_svcctl_MgrAccessMask_fields[] = {
1911
0
    &hf_svcctl_svcctl_MgrAccessMask_SC_RIGHT_MGR_CONNECT,
1912
0
    &hf_svcctl_svcctl_MgrAccessMask_SC_RIGHT_MGR_CREATE_SERVICE,
1913
0
    &hf_svcctl_svcctl_MgrAccessMask_SC_RIGHT_MGR_ENUMERATE_SERVICE,
1914
0
    &hf_svcctl_svcctl_MgrAccessMask_SC_RIGHT_MGR_LOCK,
1915
0
    &hf_svcctl_svcctl_MgrAccessMask_SC_RIGHT_MGR_QUERY_LOCK_STATUS,
1916
0
    &hf_svcctl_svcctl_MgrAccessMask_SC_RIGHT_MGR_MODIFY_BOOT_CONFIG,
1917
0
    &hf_svcctl_svcctl_MgrAccessMask_SC_RIGHT_MGR_ALL_ACCESS,
1918
0
    NULL
1919
0
  };
1920
0
  uint32_t flags;
1921
0
  ALIGN_TO_4_BYTES;
1922
1923
0
  item = proto_tree_add_bitmask_with_flags(parent_tree, tvb, offset, hf_index,
1924
0
        ett_svcctl_svcctl_MgrAccessMask, svcctl_svcctl_MgrAccessMask_fields, DREP_ENC_INTEGER(drep), BMT_NO_FALSE);
1925
1926
0
  offset = dissect_ndr_uint32(tvb, offset, pinfo, parent_tree, di, drep, -1, &flags);
1927
1928
0
  if (!flags)
1929
0
    proto_item_append_text(item, ": (No values set)");
1930
1931
0
  if (flags & (~0x000f007e)) {
1932
0
    flags &= (~0x000f007e);
1933
0
    proto_item_append_text(item, "Unknown bitmap value 0x%x", flags);
1934
0
  }
1935
1936
0
  return offset;
1937
0
}
1938
1939
1940
/* IDL: bitmap { */
1941
/* IDL:   SC_RIGHT_SVC_QUERY_CONFIG =  0x00000001 , */
1942
/* IDL:   SC_RIGHT_SVC_CHANGE_CONFIG =  0x00000002 , */
1943
/* IDL:   SC_RIGHT_SVC_QUERY_STATUS =  0x00000004 , */
1944
/* IDL:   SC_RIGHT_SVC_ENUMERATE_DEPENDENTS =  0x00000008 , */
1945
/* IDL:   SC_RIGHT_SVC_START =  0x00000010 , */
1946
/* IDL:   SC_RIGHT_SVC_STOP =  0x00000020 , */
1947
/* IDL:   SC_RIGHT_SVC_PAUSE_CONTINUE =  0x00000040 , */
1948
/* IDL:   SC_RIGHT_SVC_INTERROGATE =  0x00000080 , */
1949
/* IDL:   SC_RIGHT_SVC_USER_DEFINED_CONTROL =  0x00000100 , */
1950
/* IDL: } */
1951
1952
unsigned
1953
svcctl_dissect_bitmap_ServiceAccessMask(tvbuff_t *tvb _U_, unsigned 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_)
1954
0
{
1955
0
  proto_item *item;
1956
0
  static int * const svcctl_svcctl_ServiceAccessMask_fields[] = {
1957
0
    &hf_svcctl_svcctl_ServiceAccessMask_SC_RIGHT_SVC_QUERY_CONFIG,
1958
0
    &hf_svcctl_svcctl_ServiceAccessMask_SC_RIGHT_SVC_CHANGE_CONFIG,
1959
0
    &hf_svcctl_svcctl_ServiceAccessMask_SC_RIGHT_SVC_QUERY_STATUS,
1960
0
    &hf_svcctl_svcctl_ServiceAccessMask_SC_RIGHT_SVC_ENUMERATE_DEPENDENTS,
1961
0
    &hf_svcctl_svcctl_ServiceAccessMask_SC_RIGHT_SVC_START,
1962
0
    &hf_svcctl_svcctl_ServiceAccessMask_SC_RIGHT_SVC_STOP,
1963
0
    &hf_svcctl_svcctl_ServiceAccessMask_SC_RIGHT_SVC_PAUSE_CONTINUE,
1964
0
    &hf_svcctl_svcctl_ServiceAccessMask_SC_RIGHT_SVC_INTERROGATE,
1965
0
    &hf_svcctl_svcctl_ServiceAccessMask_SC_RIGHT_SVC_USER_DEFINED_CONTROL,
1966
0
    NULL
1967
0
  };
1968
0
  uint32_t flags;
1969
0
  ALIGN_TO_4_BYTES;
1970
1971
0
  item = proto_tree_add_bitmask_with_flags(parent_tree, tvb, offset, hf_index,
1972
0
        ett_svcctl_svcctl_ServiceAccessMask, svcctl_svcctl_ServiceAccessMask_fields, DREP_ENC_INTEGER(drep), BMT_NO_FALSE);
1973
1974
0
  offset = dissect_ndr_uint32(tvb, offset, pinfo, parent_tree, di, drep, -1, &flags);
1975
1976
0
  if (!flags)
1977
0
    proto_item_append_text(item, ": (No values set)");
1978
1979
0
  if (flags & (~0x000001ff)) {
1980
0
    flags &= (~0x000001ff);
1981
0
    proto_item_append_text(item, "Unknown bitmap value 0x%x", flags);
1982
0
  }
1983
1984
0
  return offset;
1985
0
}
1986
1987
1988
/* IDL: struct { */
1989
/* IDL:   svcctl_ServiceType service_type; */
1990
/* IDL:   svcctl_StartType start_type; */
1991
/* IDL:   svcctl_ErrorControl error_control; */
1992
/* IDL:   [charset(UTF16)] [range(0,8192)] [unique(1)] uint16 *executablepath; */
1993
/* IDL:   [charset(UTF16)] [range(0,8192)] [unique(1)] uint16 *loadordergroup; */
1994
/* IDL:   uint32 tag_id; */
1995
/* IDL:   [charset(UTF16)] [range(0,8192)] [unique(1)] uint16 *dependencies; */
1996
/* IDL:   [charset(UTF16)] [range(0,8192)] [unique(1)] uint16 *startname; */
1997
/* IDL:   [charset(UTF16)] [range(0,8192)] [unique(1)] uint16 *displayname; */
1998
/* IDL: } */
1999
2000
static unsigned
2001
svcctl_dissect_element_QUERY_SERVICE_CONFIG_service_type(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2002
0
{
2003
0
  offset = svcctl_dissect_enum_ServiceType(tvb, offset, pinfo, tree, di, drep, hf_svcctl_QUERY_SERVICE_CONFIG_service_type, 0);
2004
2005
0
  return offset;
2006
0
}
2007
2008
static unsigned
2009
svcctl_dissect_element_QUERY_SERVICE_CONFIG_start_type(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2010
0
{
2011
0
  offset = svcctl_dissect_enum_StartType(tvb, offset, pinfo, tree, di, drep, hf_svcctl_QUERY_SERVICE_CONFIG_start_type, 0);
2012
2013
0
  return offset;
2014
0
}
2015
2016
static unsigned
2017
svcctl_dissect_element_QUERY_SERVICE_CONFIG_error_control(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2018
0
{
2019
0
  offset = svcctl_dissect_enum_ErrorControl(tvb, offset, pinfo, tree, di, drep, hf_svcctl_QUERY_SERVICE_CONFIG_error_control, 0);
2020
2021
0
  return offset;
2022
0
}
2023
2024
static unsigned
2025
svcctl_dissect_element_QUERY_SERVICE_CONFIG_executablepath(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2026
0
{
2027
0
  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);
2028
2029
0
  return offset;
2030
0
}
2031
2032
static unsigned
2033
svcctl_dissect_element_QUERY_SERVICE_CONFIG_executablepath_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2034
0
{
2035
0
  char *data;
2036
2037
0
  offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(uint16_t), hf_svcctl_QUERY_SERVICE_CONFIG_executablepath, false, &data);
2038
0
  proto_item_append_text(tree, ": %s", data);
2039
2040
0
  return offset;
2041
0
}
2042
2043
static unsigned
2044
svcctl_dissect_element_QUERY_SERVICE_CONFIG_loadordergroup(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2045
0
{
2046
0
  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);
2047
2048
0
  return offset;
2049
0
}
2050
2051
static unsigned
2052
svcctl_dissect_element_QUERY_SERVICE_CONFIG_loadordergroup_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2053
0
{
2054
0
  char *data;
2055
2056
0
  offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(uint16_t), hf_svcctl_QUERY_SERVICE_CONFIG_loadordergroup, false, &data);
2057
0
  proto_item_append_text(tree, ": %s", data);
2058
2059
0
  return offset;
2060
0
}
2061
2062
static unsigned
2063
svcctl_dissect_element_QUERY_SERVICE_CONFIG_tag_id(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2064
0
{
2065
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_QUERY_SERVICE_CONFIG_tag_id, 0);
2066
2067
0
  return offset;
2068
0
}
2069
2070
static unsigned
2071
svcctl_dissect_element_QUERY_SERVICE_CONFIG_dependencies(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2072
0
{
2073
0
  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);
2074
2075
0
  return offset;
2076
0
}
2077
2078
static unsigned
2079
svcctl_dissect_element_QUERY_SERVICE_CONFIG_dependencies_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2080
0
{
2081
0
  char *data;
2082
2083
0
  offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(uint16_t), hf_svcctl_QUERY_SERVICE_CONFIG_dependencies, false, &data);
2084
0
  proto_item_append_text(tree, ": %s", data);
2085
2086
0
  return offset;
2087
0
}
2088
2089
static unsigned
2090
svcctl_dissect_element_QUERY_SERVICE_CONFIG_startname(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2091
0
{
2092
0
  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);
2093
2094
0
  return offset;
2095
0
}
2096
2097
static unsigned
2098
svcctl_dissect_element_QUERY_SERVICE_CONFIG_startname_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2099
0
{
2100
0
  char *data;
2101
2102
0
  offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(uint16_t), hf_svcctl_QUERY_SERVICE_CONFIG_startname, false, &data);
2103
0
  proto_item_append_text(tree, ": %s", data);
2104
2105
0
  return offset;
2106
0
}
2107
2108
static unsigned
2109
svcctl_dissect_element_QUERY_SERVICE_CONFIG_displayname(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2110
0
{
2111
0
  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);
2112
2113
0
  return offset;
2114
0
}
2115
2116
static unsigned
2117
svcctl_dissect_element_QUERY_SERVICE_CONFIG_displayname_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2118
0
{
2119
0
  char *data;
2120
2121
0
  offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(uint16_t), hf_svcctl_QUERY_SERVICE_CONFIG_displayname, false, &data);
2122
0
  proto_item_append_text(tree, ": %s", data);
2123
2124
0
  return offset;
2125
0
}
2126
2127
unsigned
2128
svcctl_dissect_struct_QUERY_SERVICE_CONFIG(tvbuff_t *tvb _U_, unsigned 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_)
2129
0
{
2130
0
  proto_item *item = NULL;
2131
0
  proto_tree *tree = NULL;
2132
0
  unsigned old_offset;
2133
2134
0
  ALIGN_TO_5_BYTES;
2135
2136
0
  old_offset = offset;
2137
2138
0
  if (parent_tree) {
2139
0
    item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
2140
0
    tree = proto_item_add_subtree(item, ett_svcctl_QUERY_SERVICE_CONFIG);
2141
0
  }
2142
2143
0
  offset = svcctl_dissect_element_QUERY_SERVICE_CONFIG_service_type(tvb, offset, pinfo, tree, di, drep);
2144
2145
0
  offset = svcctl_dissect_element_QUERY_SERVICE_CONFIG_start_type(tvb, offset, pinfo, tree, di, drep);
2146
2147
0
  offset = svcctl_dissect_element_QUERY_SERVICE_CONFIG_error_control(tvb, offset, pinfo, tree, di, drep);
2148
2149
0
  offset = svcctl_dissect_element_QUERY_SERVICE_CONFIG_executablepath(tvb, offset, pinfo, tree, di, drep);
2150
2151
0
  offset = svcctl_dissect_element_QUERY_SERVICE_CONFIG_loadordergroup(tvb, offset, pinfo, tree, di, drep);
2152
2153
0
  offset = svcctl_dissect_element_QUERY_SERVICE_CONFIG_tag_id(tvb, offset, pinfo, tree, di, drep);
2154
2155
0
  offset = svcctl_dissect_element_QUERY_SERVICE_CONFIG_dependencies(tvb, offset, pinfo, tree, di, drep);
2156
2157
0
  offset = svcctl_dissect_element_QUERY_SERVICE_CONFIG_startname(tvb, offset, pinfo, tree, di, drep);
2158
2159
0
  offset = svcctl_dissect_element_QUERY_SERVICE_CONFIG_displayname(tvb, offset, pinfo, tree, di, drep);
2160
2161
2162
0
  proto_item_set_len(item, offset-old_offset);
2163
2164
2165
0
  if (di->call_data->flags & DCERPC_IS_NDR64) {
2166
0
    ALIGN_TO_5_BYTES;
2167
0
  }
2168
2169
0
  return offset;
2170
0
}
2171
2172
2173
/* IDL: struct { */
2174
/* IDL:   [charset(UTF16)] [range(0,SC_MAX_ARGUMENT_LENGTH)] [unique(1)] uint16 *string; */
2175
/* IDL: } */
2176
2177
static unsigned
2178
svcctl_dissect_element_ArgumentString_string(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2179
0
{
2180
0
  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);
2181
2182
0
  return offset;
2183
0
}
2184
2185
static unsigned
2186
svcctl_dissect_element_ArgumentString_string_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2187
0
{
2188
0
  char *data;
2189
2190
0
  offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(uint16_t), hf_svcctl_svcctl_ArgumentString_string, false, &data);
2191
0
  proto_item_append_text(tree, ": %s", data);
2192
2193
0
  return offset;
2194
0
}
2195
2196
unsigned
2197
svcctl_dissect_struct_ArgumentString(tvbuff_t *tvb _U_, unsigned 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_)
2198
0
{
2199
0
  proto_item *item = NULL;
2200
0
  proto_tree *tree = NULL;
2201
0
  unsigned old_offset;
2202
2203
0
  ALIGN_TO_5_BYTES;
2204
2205
0
  old_offset = offset;
2206
2207
0
  if (parent_tree) {
2208
0
    item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
2209
0
    tree = proto_item_add_subtree(item, ett_svcctl_svcctl_ArgumentString);
2210
0
  }
2211
2212
0
  offset = svcctl_dissect_element_ArgumentString_string(tvb, offset, pinfo, tree, di, drep);
2213
2214
2215
0
  proto_item_set_len(item, offset-old_offset);
2216
2217
2218
0
  if (di->call_data->flags & DCERPC_IS_NDR64) {
2219
0
    ALIGN_TO_5_BYTES;
2220
0
  }
2221
2222
0
  return offset;
2223
0
}
2224
2225
2226
/* IDL: struct { */
2227
/* IDL:   [charset(ASCII)] [range(0,SC_MAX_ARGUMENT_LENGTH)] [unique(1)] uint8 *string; */
2228
/* IDL: } */
2229
2230
static unsigned
2231
svcctl_dissect_element_ArgumentStringA_string(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2232
0
{
2233
0
  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);
2234
2235
0
  return offset;
2236
0
}
2237
2238
static unsigned
2239
svcctl_dissect_element_ArgumentStringA_string_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2240
0
{
2241
0
  char *data;
2242
2243
0
  offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(uint8_t), hf_svcctl_svcctl_ArgumentStringA_string, false, &data);
2244
0
  proto_item_append_text(tree, ": %s", data);
2245
2246
0
  return offset;
2247
0
}
2248
2249
unsigned
2250
svcctl_dissect_struct_ArgumentStringA(tvbuff_t *tvb _U_, unsigned 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_)
2251
0
{
2252
0
  proto_item *item = NULL;
2253
0
  proto_tree *tree = NULL;
2254
0
  unsigned old_offset;
2255
2256
0
  ALIGN_TO_5_BYTES;
2257
2258
0
  old_offset = offset;
2259
2260
0
  if (parent_tree) {
2261
0
    item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
2262
0
    tree = proto_item_add_subtree(item, ett_svcctl_svcctl_ArgumentStringA);
2263
0
  }
2264
2265
0
  offset = svcctl_dissect_element_ArgumentStringA_string(tvb, offset, pinfo, tree, di, drep);
2266
2267
2268
0
  proto_item_set_len(item, offset-old_offset);
2269
2270
2271
0
  if (di->call_data->flags & DCERPC_IS_NDR64) {
2272
0
    ALIGN_TO_5_BYTES;
2273
0
  }
2274
2275
0
  return offset;
2276
0
}
2277
2278
2279
/* IDL: enum { */
2280
/* IDL:   SERVICE_CONFIG_DESCRIPTION=0x00000001, */
2281
/* IDL:   SERVICE_CONFIG_FAILURE_ACTIONS=0x00000002, */
2282
/* IDL: } */
2283
2284
unsigned
2285
svcctl_dissect_enum_ConfigLevel(tvbuff_t *tvb _U_, unsigned 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_)
2286
0
{
2287
0
  uint32_t parameter=0;
2288
0
  if (param) {
2289
0
    parameter = *param;
2290
0
  }
2291
0
  offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_index, &parameter);
2292
0
  if (param) {
2293
0
    *param = parameter;
2294
0
  }
2295
0
  return offset;
2296
0
}
2297
2298
2299
/* IDL: enum { */
2300
/* IDL:   SVC_STATUS_PROCESS_INFO=0x00000000, */
2301
/* IDL: } */
2302
2303
unsigned
2304
svcctl_dissect_enum_StatusLevel(tvbuff_t *tvb _U_, unsigned 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_)
2305
0
{
2306
0
  uint32_t parameter=0;
2307
0
  if (param) {
2308
0
    parameter = *param;
2309
0
  }
2310
0
  offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_index, &parameter);
2311
0
  if (param) {
2312
0
    *param = parameter;
2313
0
  }
2314
0
  return offset;
2315
0
}
2316
2317
static unsigned
2318
svcctl_dissect_element_CloseServiceHandle_object_handle(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2319
0
{
2320
0
  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);
2321
2322
0
  return offset;
2323
0
}
2324
2325
static unsigned
2326
svcctl_dissect_element_CloseServiceHandle_object_handle_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2327
0
{
2328
0
  offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_CloseServiceHandle_object_handle, PIDL_POLHND_CLOSE);
2329
2330
0
  return offset;
2331
0
}
2332
2333
/* IDL: WERROR svcctl_CloseServiceHandle( */
2334
/* IDL: [in] [out] [ref] policy_handle *object_handle */
2335
/* IDL: ); */
2336
2337
static unsigned
2338
svcctl_dissect_CloseServiceHandle_response(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2339
0
{
2340
0
  uint32_t status;
2341
2342
0
  di->dcerpc_procedure_name="CloseServiceHandle";
2343
0
  offset = svcctl_dissect_element_CloseServiceHandle_object_handle(tvb, offset, pinfo, tree, di, drep);
2344
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
2345
2346
0
  offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_werror, &status);
2347
2348
0
  if (status != 0)
2349
0
    col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(pinfo->pool, status, &WERR_errors_ext, "Unknown DOS error 0x%08x"));
2350
2351
0
  return offset;
2352
0
}
2353
2354
static unsigned
2355
svcctl_dissect_CloseServiceHandle_request(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2356
0
{
2357
0
  di->dcerpc_procedure_name="CloseServiceHandle";
2358
0
  offset = svcctl_dissect_element_CloseServiceHandle_object_handle(tvb, offset, pinfo, tree, di, drep);
2359
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
2360
0
  return offset;
2361
0
}
2362
2363
static unsigned
2364
svcctl_dissect_element_ControlService_service_handle(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2365
0
{
2366
0
  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);
2367
2368
0
  return offset;
2369
0
}
2370
2371
static unsigned
2372
svcctl_dissect_element_ControlService_service_handle_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2373
0
{
2374
0
  offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_ControlService_service_handle, 0);
2375
2376
0
  return offset;
2377
0
}
2378
2379
static unsigned
2380
svcctl_dissect_element_ControlService_control(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2381
0
{
2382
0
  offset = svcctl_dissect_enum_SERVICE_CONTROL(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_ControlService_control, 0);
2383
2384
0
  return offset;
2385
0
}
2386
2387
static unsigned
2388
svcctl_dissect_element_ControlService_service_status(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2389
0
{
2390
0
  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);
2391
2392
0
  return offset;
2393
0
}
2394
2395
static unsigned
2396
svcctl_dissect_element_ControlService_service_status_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2397
0
{
2398
0
  offset = svcctl_dissect_struct_SERVICE_STATUS(tvb,offset,pinfo,tree,di,drep,hf_svcctl_svcctl_ControlService_service_status,0);
2399
2400
0
  return offset;
2401
0
}
2402
2403
/* IDL: WERROR svcctl_ControlService( */
2404
/* IDL: [in] [ref] policy_handle *service_handle, */
2405
/* IDL: [in] SERVICE_CONTROL control, */
2406
/* IDL: [out] [ref] SERVICE_STATUS *service_status */
2407
/* IDL: ); */
2408
2409
static unsigned
2410
svcctl_dissect_ControlService_response(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2411
0
{
2412
0
  uint32_t status;
2413
2414
0
  di->dcerpc_procedure_name="ControlService";
2415
0
  offset = svcctl_dissect_element_ControlService_service_status(tvb, offset, pinfo, tree, di, drep);
2416
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
2417
2418
0
  offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_werror, &status);
2419
2420
0
  if (status != 0)
2421
0
    col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(pinfo->pool, status, &WERR_errors_ext, "Unknown DOS error 0x%08x"));
2422
2423
0
  return offset;
2424
0
}
2425
2426
static unsigned
2427
svcctl_dissect_ControlService_request(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2428
0
{
2429
0
  di->dcerpc_procedure_name="ControlService";
2430
0
  offset = svcctl_dissect_element_ControlService_service_handle(tvb, offset, pinfo, tree, di, drep);
2431
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
2432
0
  offset = svcctl_dissect_element_ControlService_control(tvb, offset, pinfo, tree, di, drep);
2433
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
2434
0
  return offset;
2435
0
}
2436
2437
static unsigned
2438
svcctl_dissect_element_DeleteService_service_handle(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2439
0
{
2440
0
  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);
2441
2442
0
  return offset;
2443
0
}
2444
2445
static unsigned
2446
svcctl_dissect_element_DeleteService_service_handle_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2447
0
{
2448
0
  offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_DeleteService_service_handle, 0);
2449
2450
0
  return offset;
2451
0
}
2452
2453
/* IDL: WERROR svcctl_DeleteService( */
2454
/* IDL: [in] [ref] policy_handle *service_handle */
2455
/* IDL: ); */
2456
2457
static unsigned
2458
svcctl_dissect_DeleteService_response(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2459
0
{
2460
0
  uint32_t status;
2461
2462
0
  di->dcerpc_procedure_name="DeleteService";
2463
0
  offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_werror, &status);
2464
2465
0
  if (status != 0)
2466
0
    col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(pinfo->pool, status, &WERR_errors_ext, "Unknown DOS error 0x%08x"));
2467
2468
0
  return offset;
2469
0
}
2470
2471
static unsigned
2472
svcctl_dissect_DeleteService_request(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2473
0
{
2474
0
  di->dcerpc_procedure_name="DeleteService";
2475
0
  offset = svcctl_dissect_element_DeleteService_service_handle(tvb, offset, pinfo, tree, di, drep);
2476
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
2477
0
  return offset;
2478
0
}
2479
2480
static unsigned
2481
svcctl_dissect_element_LockServiceDatabase_scm_handle(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2482
0
{
2483
0
  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);
2484
2485
0
  return offset;
2486
0
}
2487
2488
static unsigned
2489
svcctl_dissect_element_LockServiceDatabase_scm_handle_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2490
0
{
2491
0
  offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_LockServiceDatabase_scm_handle, 0);
2492
2493
0
  return offset;
2494
0
}
2495
2496
static unsigned
2497
svcctl_dissect_element_LockServiceDatabase_lock_handle(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2498
0
{
2499
0
  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);
2500
2501
0
  return offset;
2502
0
}
2503
2504
static unsigned
2505
svcctl_dissect_element_LockServiceDatabase_lock_handle_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2506
0
{
2507
0
  offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_LockServiceDatabase_lock_handle, 0);
2508
2509
0
  return offset;
2510
0
}
2511
2512
/* IDL: WERROR svcctl_LockServiceDatabase( */
2513
/* IDL: [in] [ref] policy_handle *scm_handle, */
2514
/* IDL: [out] [ref] policy_handle *lock_handle */
2515
/* IDL: ); */
2516
2517
static unsigned
2518
svcctl_dissect_LockServiceDatabase_response(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2519
0
{
2520
0
  uint32_t status;
2521
2522
0
  di->dcerpc_procedure_name="LockServiceDatabase";
2523
0
  offset = svcctl_dissect_element_LockServiceDatabase_lock_handle(tvb, offset, pinfo, tree, di, drep);
2524
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
2525
2526
0
  offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_werror, &status);
2527
2528
0
  if (status != 0)
2529
0
    col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(pinfo->pool, status, &WERR_errors_ext, "Unknown DOS error 0x%08x"));
2530
2531
0
  return offset;
2532
0
}
2533
2534
static unsigned
2535
svcctl_dissect_LockServiceDatabase_request(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2536
0
{
2537
0
  di->dcerpc_procedure_name="LockServiceDatabase";
2538
0
  offset = svcctl_dissect_element_LockServiceDatabase_scm_handle(tvb, offset, pinfo, tree, di, drep);
2539
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
2540
0
  return offset;
2541
0
}
2542
2543
static unsigned
2544
svcctl_dissect_element_QueryServiceObjectSecurity_service_handle(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2545
0
{
2546
0
  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);
2547
2548
0
  return offset;
2549
0
}
2550
2551
static unsigned
2552
svcctl_dissect_element_QueryServiceObjectSecurity_service_handle_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2553
0
{
2554
0
  offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_QueryServiceObjectSecurity_service_handle, 0);
2555
2556
0
  return offset;
2557
0
}
2558
2559
static unsigned
2560
svcctl_dissect_element_QueryServiceObjectSecurity_security_flags(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2561
0
{
2562
0
  offset = svcctl_dissect_bitmap_security_secinfo(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_QueryServiceObjectSecurity_security_flags, 0);
2563
2564
0
  return offset;
2565
0
}
2566
2567
static unsigned
2568
svcctl_dissect_element_QueryServiceObjectSecurity_security_descriptor(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2569
0
{
2570
0
  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);
2571
2572
0
  return offset;
2573
0
}
2574
2575
static unsigned
2576
svcctl_dissect_element_QueryServiceObjectSecurity_security_descriptor_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2577
0
{
2578
0
  offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_QueryServiceObjectSecurity_security_descriptor__);
2579
2580
0
  return offset;
2581
0
}
2582
2583
static unsigned
2584
svcctl_dissect_element_QueryServiceObjectSecurity_security_descriptor__(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2585
0
{
2586
0
  offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_QueryServiceObjectSecurity_security_descriptor, 0);
2587
2588
0
  return offset;
2589
0
}
2590
2591
static unsigned
2592
svcctl_dissect_element_QueryServiceObjectSecurity_offered(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2593
0
{
2594
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_QueryServiceObjectSecurity_offered, 0);
2595
2596
0
  return offset;
2597
0
}
2598
2599
static unsigned
2600
svcctl_dissect_element_QueryServiceObjectSecurity_bytes_needed(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2601
0
{
2602
0
  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);
2603
2604
0
  return offset;
2605
0
}
2606
2607
static unsigned
2608
svcctl_dissect_element_QueryServiceObjectSecurity_bytes_needed_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2609
0
{
2610
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_QueryServiceObjectSecurity_bytes_needed, 0);
2611
2612
0
  return offset;
2613
0
}
2614
2615
/* IDL: WERROR svcctl_QueryServiceObjectSecurity( */
2616
/* IDL: [in] [ref] policy_handle *service_handle, */
2617
/* IDL: [in] security_secinfo security_flags, */
2618
/* IDL: [out] [ref] [size_is(offered)] uint8 *security_descriptor, */
2619
/* IDL: [in] [range(0,0x40000)] uint32 offered, */
2620
/* IDL: [out] [range(0,0x40000)] [ref] uint32 *bytes_needed */
2621
/* IDL: ); */
2622
2623
static unsigned
2624
svcctl_dissect_QueryServiceObjectSecurity_response(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2625
0
{
2626
0
  uint32_t status;
2627
2628
0
  di->dcerpc_procedure_name="QueryServiceObjectSecurity";
2629
0
  offset = svcctl_dissect_element_QueryServiceObjectSecurity_security_descriptor(tvb, offset, pinfo, tree, di, drep);
2630
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
2631
2632
0
  offset = svcctl_dissect_element_QueryServiceObjectSecurity_bytes_needed(tvb, offset, pinfo, tree, di, drep);
2633
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
2634
2635
0
  offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_werror, &status);
2636
2637
0
  if (status != 0)
2638
0
    col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(pinfo->pool, status, &WERR_errors_ext, "Unknown DOS error 0x%08x"));
2639
2640
0
  return offset;
2641
0
}
2642
2643
static unsigned
2644
svcctl_dissect_QueryServiceObjectSecurity_request(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2645
0
{
2646
0
  di->dcerpc_procedure_name="QueryServiceObjectSecurity";
2647
0
  offset = svcctl_dissect_element_QueryServiceObjectSecurity_service_handle(tvb, offset, pinfo, tree, di, drep);
2648
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
2649
0
  offset = svcctl_dissect_element_QueryServiceObjectSecurity_security_flags(tvb, offset, pinfo, tree, di, drep);
2650
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
2651
0
  offset = svcctl_dissect_element_QueryServiceObjectSecurity_offered(tvb, offset, pinfo, tree, di, drep);
2652
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
2653
0
  return offset;
2654
0
}
2655
2656
static unsigned
2657
svcctl_dissect_element_SetServiceObjectSecurity_service_handle(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2658
0
{
2659
0
  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);
2660
2661
0
  return offset;
2662
0
}
2663
2664
static unsigned
2665
svcctl_dissect_element_SetServiceObjectSecurity_service_handle_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2666
0
{
2667
0
  offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_SetServiceObjectSecurity_service_handle, 0);
2668
2669
0
  return offset;
2670
0
}
2671
2672
static unsigned
2673
svcctl_dissect_element_SetServiceObjectSecurity_security_flags(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2674
0
{
2675
0
  offset = svcctl_dissect_bitmap_security_secinfo(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_SetServiceObjectSecurity_security_flags, 0);
2676
2677
0
  return offset;
2678
0
}
2679
2680
static unsigned
2681
svcctl_dissect_element_SetServiceObjectSecurity_security_descriptor(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2682
0
{
2683
0
  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);
2684
2685
0
  return offset;
2686
0
}
2687
2688
static unsigned
2689
svcctl_dissect_element_SetServiceObjectSecurity_security_descriptor_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2690
0
{
2691
0
  offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_SetServiceObjectSecurity_security_descriptor__);
2692
2693
0
  return offset;
2694
0
}
2695
2696
static unsigned
2697
svcctl_dissect_element_SetServiceObjectSecurity_security_descriptor__(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2698
0
{
2699
0
  offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_SetServiceObjectSecurity_security_descriptor, 0);
2700
2701
0
  return offset;
2702
0
}
2703
2704
static unsigned
2705
svcctl_dissect_element_SetServiceObjectSecurity_offered(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2706
0
{
2707
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_SetServiceObjectSecurity_offered, 0);
2708
2709
0
  return offset;
2710
0
}
2711
2712
/* IDL: WERROR svcctl_SetServiceObjectSecurity( */
2713
/* IDL: [in] [ref] policy_handle *service_handle, */
2714
/* IDL: [in] security_secinfo security_flags, */
2715
/* IDL: [in] [ref] [size_is(offered)] uint8 *security_descriptor, */
2716
/* IDL: [in] uint32 offered */
2717
/* IDL: ); */
2718
2719
static unsigned
2720
svcctl_dissect_SetServiceObjectSecurity_response(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2721
0
{
2722
0
  uint32_t status;
2723
2724
0
  di->dcerpc_procedure_name="SetServiceObjectSecurity";
2725
0
  offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_werror, &status);
2726
2727
0
  if (status != 0)
2728
0
    col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(pinfo->pool, status, &WERR_errors_ext, "Unknown DOS error 0x%08x"));
2729
2730
0
  return offset;
2731
0
}
2732
2733
static unsigned
2734
svcctl_dissect_SetServiceObjectSecurity_request(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2735
0
{
2736
0
  di->dcerpc_procedure_name="SetServiceObjectSecurity";
2737
0
  offset = svcctl_dissect_element_SetServiceObjectSecurity_service_handle(tvb, offset, pinfo, tree, di, drep);
2738
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
2739
0
  offset = svcctl_dissect_element_SetServiceObjectSecurity_security_flags(tvb, offset, pinfo, tree, di, drep);
2740
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
2741
0
  offset = svcctl_dissect_element_SetServiceObjectSecurity_security_descriptor(tvb, offset, pinfo, tree, di, drep);
2742
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
2743
0
  offset = svcctl_dissect_element_SetServiceObjectSecurity_offered(tvb, offset, pinfo, tree, di, drep);
2744
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
2745
0
  return offset;
2746
0
}
2747
2748
static unsigned
2749
svcctl_dissect_element_QueryServiceStatus_service_handle(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2750
0
{
2751
0
  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);
2752
2753
0
  return offset;
2754
0
}
2755
2756
static unsigned
2757
svcctl_dissect_element_QueryServiceStatus_service_handle_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2758
0
{
2759
0
  offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_QueryServiceStatus_service_handle, 0);
2760
2761
0
  return offset;
2762
0
}
2763
2764
static unsigned
2765
svcctl_dissect_element_QueryServiceStatus_service_status(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2766
0
{
2767
0
  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);
2768
2769
0
  return offset;
2770
0
}
2771
2772
static unsigned
2773
svcctl_dissect_element_QueryServiceStatus_service_status_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2774
0
{
2775
0
  offset = svcctl_dissect_struct_SERVICE_STATUS(tvb,offset,pinfo,tree,di,drep,hf_svcctl_svcctl_QueryServiceStatus_service_status,0);
2776
2777
0
  return offset;
2778
0
}
2779
2780
/* IDL: WERROR svcctl_QueryServiceStatus( */
2781
/* IDL: [in] [ref] policy_handle *service_handle, */
2782
/* IDL: [out] [ref] SERVICE_STATUS *service_status */
2783
/* IDL: ); */
2784
2785
static unsigned
2786
svcctl_dissect_QueryServiceStatus_response(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2787
0
{
2788
0
  uint32_t status;
2789
2790
0
  di->dcerpc_procedure_name="QueryServiceStatus";
2791
0
  offset = svcctl_dissect_element_QueryServiceStatus_service_status(tvb, offset, pinfo, tree, di, drep);
2792
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
2793
2794
0
  offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_werror, &status);
2795
2796
0
  if (status != 0)
2797
0
    col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(pinfo->pool, status, &WERR_errors_ext, "Unknown DOS error 0x%08x"));
2798
2799
0
  return offset;
2800
0
}
2801
2802
static unsigned
2803
svcctl_dissect_QueryServiceStatus_request(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2804
0
{
2805
0
  di->dcerpc_procedure_name="QueryServiceStatus";
2806
0
  offset = svcctl_dissect_element_QueryServiceStatus_service_handle(tvb, offset, pinfo, tree, di, drep);
2807
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
2808
0
  return offset;
2809
0
}
2810
2811
static unsigned
2812
svcctl_dissect_element_SetServiceStatus_service_handle(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2813
0
{
2814
0
  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);
2815
2816
0
  return offset;
2817
0
}
2818
2819
static unsigned
2820
svcctl_dissect_element_SetServiceStatus_service_handle_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2821
0
{
2822
0
  offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_SetServiceStatus_service_handle, 0);
2823
2824
0
  return offset;
2825
0
}
2826
2827
static unsigned
2828
svcctl_dissect_element_SetServiceStatus_service_status(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2829
0
{
2830
0
  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);
2831
2832
0
  return offset;
2833
0
}
2834
2835
static unsigned
2836
svcctl_dissect_element_SetServiceStatus_service_status_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2837
0
{
2838
0
  offset = svcctl_dissect_struct_SERVICE_STATUS(tvb,offset,pinfo,tree,di,drep,hf_svcctl_svcctl_SetServiceStatus_service_status,0);
2839
2840
0
  return offset;
2841
0
}
2842
2843
/* IDL: WERROR svcctl_SetServiceStatus( */
2844
/* IDL: [in] [ref] policy_handle *service_handle, */
2845
/* IDL: [in] [ref] SERVICE_STATUS *service_status */
2846
/* IDL: ); */
2847
2848
static unsigned
2849
svcctl_dissect_SetServiceStatus_response(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2850
0
{
2851
0
  uint32_t status;
2852
2853
0
  di->dcerpc_procedure_name="SetServiceStatus";
2854
0
  offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_werror, &status);
2855
2856
0
  if (status != 0)
2857
0
    col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(pinfo->pool, status, &WERR_errors_ext, "Unknown DOS error 0x%08x"));
2858
2859
0
  return offset;
2860
0
}
2861
2862
static unsigned
2863
svcctl_dissect_SetServiceStatus_request(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2864
0
{
2865
0
  di->dcerpc_procedure_name="SetServiceStatus";
2866
0
  offset = svcctl_dissect_element_SetServiceStatus_service_handle(tvb, offset, pinfo, tree, di, drep);
2867
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
2868
0
  offset = svcctl_dissect_element_SetServiceStatus_service_status(tvb, offset, pinfo, tree, di, drep);
2869
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
2870
0
  return offset;
2871
0
}
2872
2873
static unsigned
2874
svcctl_dissect_element_UnlockServiceDatabase_lock_handle(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2875
0
{
2876
0
  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);
2877
2878
0
  return offset;
2879
0
}
2880
2881
static unsigned
2882
svcctl_dissect_element_UnlockServiceDatabase_lock_handle_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2883
0
{
2884
0
  offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_UnlockServiceDatabase_lock_handle, 0);
2885
2886
0
  return offset;
2887
0
}
2888
2889
/* IDL: WERROR svcctl_UnlockServiceDatabase( */
2890
/* IDL: [in] [out] [ref] policy_handle *lock_handle */
2891
/* IDL: ); */
2892
2893
static unsigned
2894
svcctl_dissect_UnlockServiceDatabase_response(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2895
0
{
2896
0
  uint32_t status;
2897
2898
0
  di->dcerpc_procedure_name="UnlockServiceDatabase";
2899
0
  offset = svcctl_dissect_element_UnlockServiceDatabase_lock_handle(tvb, offset, pinfo, tree, di, drep);
2900
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
2901
2902
0
  offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_werror, &status);
2903
2904
0
  if (status != 0)
2905
0
    col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(pinfo->pool, status, &WERR_errors_ext, "Unknown DOS error 0x%08x"));
2906
2907
0
  return offset;
2908
0
}
2909
2910
static unsigned
2911
svcctl_dissect_UnlockServiceDatabase_request(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2912
0
{
2913
0
  di->dcerpc_procedure_name="UnlockServiceDatabase";
2914
0
  offset = svcctl_dissect_element_UnlockServiceDatabase_lock_handle(tvb, offset, pinfo, tree, di, drep);
2915
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
2916
0
  return offset;
2917
0
}
2918
2919
static unsigned
2920
svcctl_dissect_element_NotifyBootConfigStatus_machine_name(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2921
0
{
2922
0
  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);
2923
2924
0
  return offset;
2925
0
}
2926
2927
static unsigned
2928
svcctl_dissect_element_NotifyBootConfigStatus_machine_name_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2929
0
{
2930
0
  char *data;
2931
2932
0
  offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(uint16_t), hf_svcctl_svcctl_NotifyBootConfigStatus_machine_name, false, &data);
2933
0
  proto_item_append_text(tree, ": %s", data);
2934
2935
0
  return offset;
2936
0
}
2937
2938
static unsigned
2939
svcctl_dissect_element_NotifyBootConfigStatus_boot_acceptable(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2940
0
{
2941
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_NotifyBootConfigStatus_boot_acceptable, 0);
2942
2943
0
  return offset;
2944
0
}
2945
2946
/* IDL: WERROR svcctl_NotifyBootConfigStatus( */
2947
/* IDL: [charset(UTF16)] [in] [unique(1)] uint16 *machine_name, */
2948
/* IDL: [in] uint32 boot_acceptable */
2949
/* IDL: ); */
2950
2951
static unsigned
2952
svcctl_dissect_NotifyBootConfigStatus_response(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2953
0
{
2954
0
  uint32_t status;
2955
2956
0
  di->dcerpc_procedure_name="NotifyBootConfigStatus";
2957
0
  offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_werror, &status);
2958
2959
0
  if (status != 0)
2960
0
    col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(pinfo->pool, status, &WERR_errors_ext, "Unknown DOS error 0x%08x"));
2961
2962
0
  return offset;
2963
0
}
2964
2965
static unsigned
2966
svcctl_dissect_NotifyBootConfigStatus_request(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2967
0
{
2968
0
  di->dcerpc_procedure_name="NotifyBootConfigStatus";
2969
0
  offset = svcctl_dissect_element_NotifyBootConfigStatus_machine_name(tvb, offset, pinfo, tree, di, drep);
2970
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
2971
0
  offset = svcctl_dissect_element_NotifyBootConfigStatus_boot_acceptable(tvb, offset, pinfo, tree, di, drep);
2972
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
2973
0
  return offset;
2974
0
}
2975
2976
static unsigned
2977
svcctl_dissect_element_SCSetServiceBitsW_service_handle(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2978
0
{
2979
0
  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);
2980
2981
0
  return offset;
2982
0
}
2983
2984
static unsigned
2985
svcctl_dissect_element_SCSetServiceBitsW_service_handle_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2986
0
{
2987
0
  offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_SCSetServiceBitsW_service_handle, 0);
2988
2989
0
  return offset;
2990
0
}
2991
2992
static unsigned
2993
svcctl_dissect_element_SCSetServiceBitsW_service_bits(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2994
0
{
2995
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_SCSetServiceBitsW_service_bits, 0);
2996
2997
0
  return offset;
2998
0
}
2999
3000
static unsigned
3001
svcctl_dissect_element_SCSetServiceBitsW_set_bits_on(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3002
0
{
3003
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_SCSetServiceBitsW_set_bits_on, 0);
3004
3005
0
  return offset;
3006
0
}
3007
3008
static unsigned
3009
svcctl_dissect_element_SCSetServiceBitsW_update_immediately(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3010
0
{
3011
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_SCSetServiceBitsW_update_immediately, 0);
3012
3013
0
  return offset;
3014
0
}
3015
3016
static unsigned
3017
svcctl_dissect_element_SCSetServiceBitsW_lpString(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3018
0
{
3019
0
  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);
3020
3021
0
  return offset;
3022
0
}
3023
3024
static unsigned
3025
svcctl_dissect_element_SCSetServiceBitsW_lpString_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3026
0
{
3027
0
  char *data;
3028
3029
0
  offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(uint16_t), hf_svcctl_svcctl_SCSetServiceBitsW_lpString, false, &data);
3030
0
  proto_item_append_text(tree, ": %s", data);
3031
3032
0
  return offset;
3033
0
}
3034
3035
/* IDL: WERROR svcctl_SCSetServiceBitsW( */
3036
/* IDL: [in] [ref] policy_handle *service_handle, */
3037
/* IDL: [in] uint32 service_bits, */
3038
/* IDL: [in] uint32 set_bits_on, */
3039
/* IDL: [in] uint32 update_immediately, */
3040
/* IDL: [charset(UTF16)] [in] [unique(1)] uint16 *lpString */
3041
/* IDL: ); */
3042
3043
static unsigned
3044
svcctl_dissect_SCSetServiceBitsW_response(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3045
0
{
3046
0
  uint32_t status;
3047
3048
0
  di->dcerpc_procedure_name="SCSetServiceBitsW";
3049
0
  offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_werror, &status);
3050
3051
0
  if (status != 0)
3052
0
    col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(pinfo->pool, status, &WERR_errors_ext, "Unknown DOS error 0x%08x"));
3053
3054
0
  return offset;
3055
0
}
3056
3057
static unsigned
3058
svcctl_dissect_SCSetServiceBitsW_request(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3059
0
{
3060
0
  di->dcerpc_procedure_name="SCSetServiceBitsW";
3061
0
  offset = svcctl_dissect_element_SCSetServiceBitsW_service_handle(tvb, offset, pinfo, tree, di, drep);
3062
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
3063
0
  offset = svcctl_dissect_element_SCSetServiceBitsW_service_bits(tvb, offset, pinfo, tree, di, drep);
3064
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
3065
0
  offset = svcctl_dissect_element_SCSetServiceBitsW_set_bits_on(tvb, offset, pinfo, tree, di, drep);
3066
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
3067
0
  offset = svcctl_dissect_element_SCSetServiceBitsW_update_immediately(tvb, offset, pinfo, tree, di, drep);
3068
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
3069
0
  offset = svcctl_dissect_element_SCSetServiceBitsW_lpString(tvb, offset, pinfo, tree, di, drep);
3070
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
3071
0
  return offset;
3072
0
}
3073
3074
static unsigned
3075
svcctl_dissect_element_ChangeServiceConfigW_service_handle(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3076
0
{
3077
0
  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);
3078
3079
0
  return offset;
3080
0
}
3081
3082
static unsigned
3083
svcctl_dissect_element_ChangeServiceConfigW_service_handle_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3084
0
{
3085
0
  offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_ChangeServiceConfigW_service_handle, 0);
3086
3087
0
  return offset;
3088
0
}
3089
3090
static unsigned
3091
svcctl_dissect_element_ChangeServiceConfigW_service_type(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3092
0
{
3093
0
  offset = svcctl_dissect_enum_ServiceType(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_ChangeServiceConfigW_service_type, 0);
3094
3095
0
  return offset;
3096
0
}
3097
3098
static unsigned
3099
svcctl_dissect_element_ChangeServiceConfigW_start_type(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3100
0
{
3101
0
  offset = svcctl_dissect_enum_StartType(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_ChangeServiceConfigW_start_type, 0);
3102
3103
0
  return offset;
3104
0
}
3105
3106
static unsigned
3107
svcctl_dissect_element_ChangeServiceConfigW_error_control(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3108
0
{
3109
0
  offset = svcctl_dissect_enum_ErrorControl(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_ChangeServiceConfigW_error_control, 0);
3110
3111
0
  return offset;
3112
0
}
3113
3114
static unsigned
3115
svcctl_dissect_element_ChangeServiceConfigW_binary_path(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3116
0
{
3117
0
  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);
3118
3119
0
  return offset;
3120
0
}
3121
3122
static unsigned
3123
svcctl_dissect_element_ChangeServiceConfigW_binary_path_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3124
0
{
3125
0
  char *data;
3126
3127
0
  offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(uint16_t), hf_svcctl_svcctl_ChangeServiceConfigW_binary_path, false, &data);
3128
0
  proto_item_append_text(tree, ": %s", data);
3129
3130
0
  return offset;
3131
0
}
3132
3133
static unsigned
3134
svcctl_dissect_element_ChangeServiceConfigW_load_order_group(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3135
0
{
3136
0
  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);
3137
3138
0
  return offset;
3139
0
}
3140
3141
static unsigned
3142
svcctl_dissect_element_ChangeServiceConfigW_load_order_group_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3143
0
{
3144
0
  char *data;
3145
3146
0
  offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(uint16_t), hf_svcctl_svcctl_ChangeServiceConfigW_load_order_group, false, &data);
3147
0
  proto_item_append_text(tree, ": %s", data);
3148
3149
0
  return offset;
3150
0
}
3151
3152
static unsigned
3153
svcctl_dissect_element_ChangeServiceConfigW_tag_id(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3154
0
{
3155
0
  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);
3156
3157
0
  return offset;
3158
0
}
3159
3160
static unsigned
3161
svcctl_dissect_element_ChangeServiceConfigW_tag_id_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3162
0
{
3163
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_ChangeServiceConfigW_tag_id, 0);
3164
3165
0
  return offset;
3166
0
}
3167
3168
static unsigned
3169
svcctl_dissect_element_ChangeServiceConfigW_dependencies(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3170
0
{
3171
0
  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);
3172
3173
0
  return offset;
3174
0
}
3175
3176
static unsigned
3177
svcctl_dissect_element_ChangeServiceConfigW_dependencies_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3178
0
{
3179
0
  char *data;
3180
3181
0
  offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(uint16_t), hf_svcctl_svcctl_ChangeServiceConfigW_dependencies, false, &data);
3182
0
  proto_item_append_text(tree, ": %s", data);
3183
3184
0
  return offset;
3185
0
}
3186
3187
static unsigned
3188
svcctl_dissect_element_ChangeServiceConfigW_dwDependSize(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3189
0
{
3190
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_ChangeServiceConfigW_dwDependSize, 0);
3191
3192
0
  return offset;
3193
0
}
3194
3195
static unsigned
3196
svcctl_dissect_element_ChangeServiceConfigW_service_start_name(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3197
0
{
3198
0
  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);
3199
3200
0
  return offset;
3201
0
}
3202
3203
static unsigned
3204
svcctl_dissect_element_ChangeServiceConfigW_service_start_name_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3205
0
{
3206
0
  char *data;
3207
3208
0
  offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(uint16_t), hf_svcctl_svcctl_ChangeServiceConfigW_service_start_name, false, &data);
3209
0
  proto_item_append_text(tree, ": %s", data);
3210
3211
0
  return offset;
3212
0
}
3213
3214
static unsigned
3215
svcctl_dissect_element_ChangeServiceConfigW_password(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3216
0
{
3217
0
  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);
3218
3219
0
  return offset;
3220
0
}
3221
3222
static unsigned
3223
svcctl_dissect_element_ChangeServiceConfigW_password_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3224
0
{
3225
0
  char *data;
3226
3227
0
  offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(uint16_t), hf_svcctl_svcctl_ChangeServiceConfigW_password, false, &data);
3228
0
  proto_item_append_text(tree, ": %s", data);
3229
3230
0
  return offset;
3231
0
}
3232
3233
static unsigned
3234
svcctl_dissect_element_ChangeServiceConfigW_dwPwSize(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3235
0
{
3236
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_ChangeServiceConfigW_dwPwSize, 0);
3237
3238
0
  return offset;
3239
0
}
3240
3241
static unsigned
3242
svcctl_dissect_element_ChangeServiceConfigW_display_name(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3243
0
{
3244
0
  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);
3245
3246
0
  return offset;
3247
0
}
3248
3249
static unsigned
3250
svcctl_dissect_element_ChangeServiceConfigW_display_name_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3251
0
{
3252
0
  char *data;
3253
3254
0
  offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(uint16_t), hf_svcctl_svcctl_ChangeServiceConfigW_display_name, false, &data);
3255
0
  proto_item_append_text(tree, ": %s", data);
3256
3257
0
  return offset;
3258
0
}
3259
3260
/* IDL: WERROR svcctl_ChangeServiceConfigW( */
3261
/* IDL: [in] [ref] policy_handle *service_handle, */
3262
/* IDL: [in] svcctl_ServiceType service_type, */
3263
/* IDL: [in] svcctl_StartType start_type, */
3264
/* IDL: [in] svcctl_ErrorControl error_control, */
3265
/* IDL: [charset(UTF16)] [in] [unique(1)] uint16 *binary_path, */
3266
/* IDL: [charset(UTF16)] [in] [unique(1)] uint16 *load_order_group, */
3267
/* IDL: [in] [out] [unique(1)] uint32 *tag_id, */
3268
/* IDL: [charset(UTF16)] [in] [size_is(dwDependSize)] [unique(1)] uint16 *dependencies, */
3269
/* IDL: [in] [range(0,SC_MAX_DEPEND_SIZE)] uint32 dwDependSize, */
3270
/* IDL: [charset(UTF16)] [in] [range(0,SC_MAX_ACCOUNT_NAME_LENGTH)] [unique(1)] uint16 *service_start_name, */
3271
/* IDL: [charset(UTF16)] [in] [size_is(dwPwSize)] [unique(1)] uint16 *password, */
3272
/* IDL: [in] [range(0,SC_MAX_PWD_SIZE)] uint32 dwPwSize, */
3273
/* IDL: [charset(UTF16)] [in] [range(0,SC_MAX_NAME_LENGTH)] [unique(1)] uint16 *display_name */
3274
/* IDL: ); */
3275
3276
static unsigned
3277
svcctl_dissect_ChangeServiceConfigW_response(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3278
0
{
3279
0
  uint32_t status;
3280
3281
0
  di->dcerpc_procedure_name="ChangeServiceConfigW";
3282
0
  offset = svcctl_dissect_element_ChangeServiceConfigW_tag_id(tvb, offset, pinfo, tree, di, drep);
3283
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
3284
3285
0
  offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_werror, &status);
3286
3287
0
  if (status != 0)
3288
0
    col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(pinfo->pool, status, &WERR_errors_ext, "Unknown DOS error 0x%08x"));
3289
3290
0
  return offset;
3291
0
}
3292
3293
static unsigned
3294
svcctl_dissect_ChangeServiceConfigW_request(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3295
0
{
3296
0
  di->dcerpc_procedure_name="ChangeServiceConfigW";
3297
0
  offset = svcctl_dissect_element_ChangeServiceConfigW_service_handle(tvb, offset, pinfo, tree, di, drep);
3298
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
3299
0
  offset = svcctl_dissect_element_ChangeServiceConfigW_service_type(tvb, offset, pinfo, tree, di, drep);
3300
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
3301
0
  offset = svcctl_dissect_element_ChangeServiceConfigW_start_type(tvb, offset, pinfo, tree, di, drep);
3302
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
3303
0
  offset = svcctl_dissect_element_ChangeServiceConfigW_error_control(tvb, offset, pinfo, tree, di, drep);
3304
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
3305
0
  offset = svcctl_dissect_element_ChangeServiceConfigW_binary_path(tvb, offset, pinfo, tree, di, drep);
3306
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
3307
0
  offset = svcctl_dissect_element_ChangeServiceConfigW_load_order_group(tvb, offset, pinfo, tree, di, drep);
3308
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
3309
0
  offset = svcctl_dissect_element_ChangeServiceConfigW_tag_id(tvb, offset, pinfo, tree, di, drep);
3310
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
3311
0
  offset = svcctl_dissect_element_ChangeServiceConfigW_dependencies(tvb, offset, pinfo, tree, di, drep);
3312
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
3313
0
  offset = svcctl_dissect_element_ChangeServiceConfigW_dwDependSize(tvb, offset, pinfo, tree, di, drep);
3314
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
3315
0
  offset = svcctl_dissect_element_ChangeServiceConfigW_service_start_name(tvb, offset, pinfo, tree, di, drep);
3316
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
3317
0
  offset = svcctl_dissect_element_ChangeServiceConfigW_password(tvb, offset, pinfo, tree, di, drep);
3318
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
3319
0
  offset = svcctl_dissect_element_ChangeServiceConfigW_dwPwSize(tvb, offset, pinfo, tree, di, drep);
3320
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
3321
0
  offset = svcctl_dissect_element_ChangeServiceConfigW_display_name(tvb, offset, pinfo, tree, di, drep);
3322
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
3323
0
  return offset;
3324
0
}
3325
3326
static unsigned
3327
svcctl_dissect_element_CreateServiceW_scm_handle(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3328
0
{
3329
0
  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);
3330
3331
0
  return offset;
3332
0
}
3333
3334
static unsigned
3335
svcctl_dissect_element_CreateServiceW_scm_handle_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3336
0
{
3337
0
  offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_CreateServiceW_scm_handle, 0);
3338
3339
0
  return offset;
3340
0
}
3341
3342
static unsigned
3343
svcctl_dissect_element_CreateServiceW_ServiceName(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3344
0
{
3345
0
  char *data;
3346
3347
0
  offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(uint16_t), hf_svcctl_svcctl_CreateServiceW_ServiceName, false, &data);
3348
0
  proto_item_append_text(tree, ": %s", data);
3349
3350
0
  return offset;
3351
0
}
3352
3353
static unsigned
3354
svcctl_dissect_element_CreateServiceW_DisplayName(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3355
0
{
3356
0
  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);
3357
3358
0
  return offset;
3359
0
}
3360
3361
static unsigned
3362
svcctl_dissect_element_CreateServiceW_DisplayName_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3363
0
{
3364
0
  char *data;
3365
3366
0
  offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(uint16_t), hf_svcctl_svcctl_CreateServiceW_DisplayName, false, &data);
3367
0
  proto_item_append_text(tree, ": %s", data);
3368
3369
0
  return offset;
3370
0
}
3371
3372
static unsigned
3373
svcctl_dissect_element_CreateServiceW_desired_access(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3374
0
{
3375
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_CreateServiceW_desired_access, 0);
3376
3377
0
  return offset;
3378
0
}
3379
3380
static unsigned
3381
svcctl_dissect_element_CreateServiceW_service_type(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3382
0
{
3383
0
  offset = svcctl_dissect_enum_ServiceType(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_CreateServiceW_service_type, 0);
3384
3385
0
  return offset;
3386
0
}
3387
3388
static unsigned
3389
svcctl_dissect_element_CreateServiceW_start_type(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3390
0
{
3391
0
  offset = svcctl_dissect_enum_StartType(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_CreateServiceW_start_type, 0);
3392
3393
0
  return offset;
3394
0
}
3395
3396
static unsigned
3397
svcctl_dissect_element_CreateServiceW_error_control(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3398
0
{
3399
0
  offset = svcctl_dissect_enum_ErrorControl(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_CreateServiceW_error_control, 0);
3400
3401
0
  return offset;
3402
0
}
3403
3404
static unsigned
3405
svcctl_dissect_element_CreateServiceW_binary_path(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3406
0
{
3407
0
  char *data;
3408
3409
0
  offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(uint16_t), hf_svcctl_svcctl_CreateServiceW_binary_path, false, &data);
3410
0
  proto_item_append_text(tree, ": %s", data);
3411
3412
0
  return offset;
3413
0
}
3414
3415
static unsigned
3416
svcctl_dissect_element_CreateServiceW_LoadOrderGroup(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3417
0
{
3418
0
  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);
3419
3420
0
  return offset;
3421
0
}
3422
3423
static unsigned
3424
svcctl_dissect_element_CreateServiceW_LoadOrderGroup_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3425
0
{
3426
0
  char *data;
3427
3428
0
  offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(uint16_t), hf_svcctl_svcctl_CreateServiceW_LoadOrderGroup, false, &data);
3429
0
  proto_item_append_text(tree, ": %s", data);
3430
3431
0
  return offset;
3432
0
}
3433
3434
static unsigned
3435
svcctl_dissect_element_CreateServiceW_tag_id(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3436
0
{
3437
0
  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);
3438
3439
0
  return offset;
3440
0
}
3441
3442
static unsigned
3443
svcctl_dissect_element_CreateServiceW_tag_id_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3444
0
{
3445
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_CreateServiceW_tag_id, 0);
3446
3447
0
  return offset;
3448
0
}
3449
3450
static unsigned
3451
svcctl_dissect_element_CreateServiceW_dependencies(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3452
0
{
3453
0
  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);
3454
3455
0
  return offset;
3456
0
}
3457
3458
static unsigned
3459
svcctl_dissect_element_CreateServiceW_dependencies_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3460
0
{
3461
0
  offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_CreateServiceW_dependencies__);
3462
3463
0
  return offset;
3464
0
}
3465
3466
static unsigned
3467
svcctl_dissect_element_CreateServiceW_dependencies__(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3468
0
{
3469
0
  offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_CreateServiceW_dependencies, 0);
3470
3471
0
  return offset;
3472
0
}
3473
3474
static unsigned
3475
svcctl_dissect_element_CreateServiceW_dependencies_size(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3476
0
{
3477
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_CreateServiceW_dependencies_size, 0);
3478
3479
0
  return offset;
3480
0
}
3481
3482
static unsigned
3483
svcctl_dissect_element_CreateServiceW_service_start_name(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3484
0
{
3485
0
  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);
3486
3487
0
  return offset;
3488
0
}
3489
3490
static unsigned
3491
svcctl_dissect_element_CreateServiceW_service_start_name_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3492
0
{
3493
0
  char *data;
3494
3495
0
  offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(uint16_t), hf_svcctl_svcctl_CreateServiceW_service_start_name, false, &data);
3496
0
  proto_item_append_text(tree, ": %s", data);
3497
3498
0
  return offset;
3499
0
}
3500
3501
static unsigned
3502
svcctl_dissect_element_CreateServiceW_password(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3503
0
{
3504
0
  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);
3505
3506
0
  return offset;
3507
0
}
3508
3509
static unsigned
3510
svcctl_dissect_element_CreateServiceW_password_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3511
0
{
3512
0
  offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_CreateServiceW_password__);
3513
3514
0
  return offset;
3515
0
}
3516
3517
static unsigned
3518
svcctl_dissect_element_CreateServiceW_password__(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3519
0
{
3520
0
  offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_CreateServiceW_password, 0);
3521
3522
0
  return offset;
3523
0
}
3524
3525
static unsigned
3526
svcctl_dissect_element_CreateServiceW_password_size(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3527
0
{
3528
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_CreateServiceW_password_size, 0);
3529
3530
0
  return offset;
3531
0
}
3532
3533
static unsigned
3534
svcctl_dissect_element_CreateServiceW_service_handle(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3535
0
{
3536
0
  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);
3537
3538
0
  return offset;
3539
0
}
3540
3541
static unsigned
3542
svcctl_dissect_element_CreateServiceW_service_handle_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3543
0
{
3544
0
  offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_CreateServiceW_service_handle, PIDL_POLHND_OPEN);
3545
3546
0
  return offset;
3547
0
}
3548
3549
/* IDL: WERROR svcctl_CreateServiceW( */
3550
/* IDL: [in] [ref] policy_handle *scm_handle, */
3551
/* IDL: [charset(UTF16)] [in] uint16 ServiceName[*], */
3552
/* IDL: [charset(UTF16)] [in] [unique(1)] uint16 *DisplayName, */
3553
/* IDL: [in] uint32 desired_access, */
3554
/* IDL: [in] svcctl_ServiceType service_type, */
3555
/* IDL: [in] svcctl_StartType start_type, */
3556
/* IDL: [in] svcctl_ErrorControl error_control, */
3557
/* IDL: [charset(UTF16)] [in] uint16 binary_path[*], */
3558
/* IDL: [charset(UTF16)] [in] [unique(1)] uint16 *LoadOrderGroup, */
3559
/* IDL: [in] [out] [unique(1)] uint32 *tag_id, */
3560
/* IDL: [in] [size_is(dependencies_size)] [unique(1)] uint8 *dependencies, */
3561
/* IDL: [in] uint32 dependencies_size, */
3562
/* IDL: [charset(UTF16)] [in] [unique(1)] uint16 *service_start_name, */
3563
/* IDL: [in] [size_is(password_size)] [unique(1)] uint8 *password, */
3564
/* IDL: [in] uint32 password_size, */
3565
/* IDL: [out] [ref] policy_handle *service_handle */
3566
/* IDL: ); */
3567
3568
static unsigned
3569
svcctl_dissect_CreateServiceW_response(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3570
0
{
3571
0
  uint32_t status;
3572
3573
0
  di->dcerpc_procedure_name="CreateServiceW";
3574
0
  offset = svcctl_dissect_element_CreateServiceW_tag_id(tvb, offset, pinfo, tree, di, drep);
3575
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
3576
3577
0
  offset = svcctl_dissect_element_CreateServiceW_service_handle(tvb, offset, pinfo, tree, di, drep);
3578
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
3579
3580
0
  offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_werror, &status);
3581
3582
0
  if (status != 0)
3583
0
    col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(pinfo->pool, status, &WERR_errors_ext, "Unknown DOS error 0x%08x"));
3584
3585
0
  return offset;
3586
0
}
3587
3588
static unsigned
3589
svcctl_dissect_CreateServiceW_request(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3590
0
{
3591
0
  di->dcerpc_procedure_name="CreateServiceW";
3592
0
  offset = svcctl_dissect_element_CreateServiceW_scm_handle(tvb, offset, pinfo, tree, di, drep);
3593
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
3594
0
  offset = svcctl_dissect_element_CreateServiceW_ServiceName(tvb, offset, pinfo, tree, di, drep);
3595
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
3596
0
  offset = svcctl_dissect_element_CreateServiceW_DisplayName(tvb, offset, pinfo, tree, di, drep);
3597
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
3598
0
  offset = svcctl_dissect_element_CreateServiceW_desired_access(tvb, offset, pinfo, tree, di, drep);
3599
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
3600
0
  offset = svcctl_dissect_element_CreateServiceW_service_type(tvb, offset, pinfo, tree, di, drep);
3601
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
3602
0
  offset = svcctl_dissect_element_CreateServiceW_start_type(tvb, offset, pinfo, tree, di, drep);
3603
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
3604
0
  offset = svcctl_dissect_element_CreateServiceW_error_control(tvb, offset, pinfo, tree, di, drep);
3605
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
3606
0
  offset = svcctl_dissect_element_CreateServiceW_binary_path(tvb, offset, pinfo, tree, di, drep);
3607
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
3608
0
  offset = svcctl_dissect_element_CreateServiceW_LoadOrderGroup(tvb, offset, pinfo, tree, di, drep);
3609
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
3610
0
  offset = svcctl_dissect_element_CreateServiceW_tag_id(tvb, offset, pinfo, tree, di, drep);
3611
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
3612
0
  offset = svcctl_dissect_element_CreateServiceW_dependencies(tvb, offset, pinfo, tree, di, drep);
3613
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
3614
0
  offset = svcctl_dissect_element_CreateServiceW_dependencies_size(tvb, offset, pinfo, tree, di, drep);
3615
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
3616
0
  offset = svcctl_dissect_element_CreateServiceW_service_start_name(tvb, offset, pinfo, tree, di, drep);
3617
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
3618
0
  offset = svcctl_dissect_element_CreateServiceW_password(tvb, offset, pinfo, tree, di, drep);
3619
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
3620
0
  offset = svcctl_dissect_element_CreateServiceW_password_size(tvb, offset, pinfo, tree, di, drep);
3621
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
3622
0
  return offset;
3623
0
}
3624
3625
static unsigned
3626
svcctl_dissect_element_EnumDependentServicesW_service_handle(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3627
0
{
3628
0
  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);
3629
3630
0
  return offset;
3631
0
}
3632
3633
static unsigned
3634
svcctl_dissect_element_EnumDependentServicesW_service_handle_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3635
0
{
3636
0
  offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_EnumDependentServicesW_service_handle, 0);
3637
3638
0
  return offset;
3639
0
}
3640
3641
static unsigned
3642
svcctl_dissect_element_EnumDependentServicesW_service_state(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3643
0
{
3644
0
  offset = svcctl_dissect_enum_ServiceState(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_EnumDependentServicesW_service_state, 0);
3645
3646
0
  return offset;
3647
0
}
3648
3649
static unsigned
3650
svcctl_dissect_element_EnumDependentServicesW_service_status(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3651
0
{
3652
0
  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);
3653
3654
0
  return offset;
3655
0
}
3656
3657
static unsigned
3658
svcctl_dissect_element_EnumDependentServicesW_service_status_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3659
0
{
3660
0
  offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_EnumDependentServicesW_service_status__);
3661
3662
0
  return offset;
3663
0
}
3664
3665
static unsigned
3666
svcctl_dissect_element_EnumDependentServicesW_service_status__(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3667
0
{
3668
0
  offset = svcctl_dissect_struct_ENUM_SERVICE_STATUSW(tvb,offset,pinfo,tree,di,drep,hf_svcctl_svcctl_EnumDependentServicesW_service_status,0);
3669
3670
0
  return offset;
3671
0
}
3672
3673
static unsigned
3674
svcctl_dissect_element_EnumDependentServicesW_offered(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3675
0
{
3676
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_EnumDependentServicesW_offered, 0);
3677
3678
0
  return offset;
3679
0
}
3680
3681
static unsigned
3682
svcctl_dissect_element_EnumDependentServicesW_bytesneeded(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3683
0
{
3684
0
  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);
3685
3686
0
  return offset;
3687
0
}
3688
3689
static unsigned
3690
svcctl_dissect_element_EnumDependentServicesW_bytesneeded_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3691
0
{
3692
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_EnumDependentServicesW_bytesneeded, 0);
3693
3694
0
  return offset;
3695
0
}
3696
3697
static unsigned
3698
svcctl_dissect_element_EnumDependentServicesW_services_returned(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3699
0
{
3700
0
  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);
3701
3702
0
  return offset;
3703
0
}
3704
3705
static unsigned
3706
svcctl_dissect_element_EnumDependentServicesW_services_returned_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3707
0
{
3708
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_EnumDependentServicesW_services_returned, 0);
3709
3710
0
  return offset;
3711
0
}
3712
3713
/* IDL: WERROR svcctl_EnumDependentServicesW( */
3714
/* IDL: [in] [ref] policy_handle *service_handle, */
3715
/* IDL: [in] svcctl_ServiceState service_state, */
3716
/* IDL: [out] [ref] [size_is(offered)] ENUM_SERVICE_STATUSW *service_status, */
3717
/* IDL: [in] [range(0,0x40000)] uint32 offered, */
3718
/* IDL: [out] [range(0,0x40000)] [ref] uint32 *bytesneeded, */
3719
/* IDL: [out] [range(0,0x40000)] [ref] uint32 *services_returned */
3720
/* IDL: ); */
3721
3722
static unsigned
3723
svcctl_dissect_EnumDependentServicesW_response(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3724
0
{
3725
0
  uint32_t status;
3726
3727
0
  di->dcerpc_procedure_name="EnumDependentServicesW";
3728
0
  offset = svcctl_dissect_element_EnumDependentServicesW_service_status(tvb, offset, pinfo, tree, di, drep);
3729
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
3730
3731
0
  offset = svcctl_dissect_element_EnumDependentServicesW_bytesneeded(tvb, offset, pinfo, tree, di, drep);
3732
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
3733
3734
0
  offset = svcctl_dissect_element_EnumDependentServicesW_services_returned(tvb, offset, pinfo, tree, di, drep);
3735
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
3736
3737
0
  offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_werror, &status);
3738
3739
0
  if (status != 0)
3740
0
    col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(pinfo->pool, status, &WERR_errors_ext, "Unknown DOS error 0x%08x"));
3741
3742
0
  return offset;
3743
0
}
3744
3745
static unsigned
3746
svcctl_dissect_EnumDependentServicesW_request(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3747
0
{
3748
0
  di->dcerpc_procedure_name="EnumDependentServicesW";
3749
0
  offset = svcctl_dissect_element_EnumDependentServicesW_service_handle(tvb, offset, pinfo, tree, di, drep);
3750
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
3751
0
  offset = svcctl_dissect_element_EnumDependentServicesW_service_state(tvb, offset, pinfo, tree, di, drep);
3752
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
3753
0
  offset = svcctl_dissect_element_EnumDependentServicesW_offered(tvb, offset, pinfo, tree, di, drep);
3754
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
3755
0
  return offset;
3756
0
}
3757
3758
static unsigned
3759
svcctl_dissect_element_EnumServicesStatusW_scm_handle(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3760
0
{
3761
0
  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);
3762
3763
0
  return offset;
3764
0
}
3765
3766
static unsigned
3767
svcctl_dissect_element_EnumServicesStatusW_scm_handle_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3768
0
{
3769
0
  offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_EnumServicesStatusW_scm_handle, 0);
3770
3771
0
  return offset;
3772
0
}
3773
3774
static unsigned
3775
svcctl_dissect_element_EnumServicesStatusW_service_type(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3776
0
{
3777
0
  offset = svcctl_dissect_enum_ServiceType(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_EnumServicesStatusW_service_type, 0);
3778
3779
0
  return offset;
3780
0
}
3781
3782
static unsigned
3783
svcctl_dissect_element_EnumServicesStatusW_service_state(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3784
0
{
3785
0
  offset = svcctl_dissect_enum_ServiceState(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_EnumServicesStatusW_service_state, 0);
3786
3787
0
  return offset;
3788
0
}
3789
3790
static unsigned
3791
svcctl_dissect_element_EnumServicesStatusW_offered(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3792
0
{
3793
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_EnumServicesStatusW_offered, 0);
3794
3795
0
  return offset;
3796
0
}
3797
3798
static unsigned
3799
svcctl_dissect_element_EnumServicesStatusW_resume_index(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3800
0
{
3801
0
  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);
3802
3803
0
  return offset;
3804
0
}
3805
3806
static unsigned
3807
svcctl_dissect_element_EnumServicesStatusW_resume_index_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3808
0
{
3809
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_EnumServicesStatusW_resume_index, 0);
3810
3811
0
  return offset;
3812
0
}
3813
3814
/* IDL: WERROR svcctl_EnumServicesStatusW( */
3815
/* IDL: [in] [ref] policy_handle *scm_handle, */
3816
/* IDL: [in] svcctl_ServiceType service_type, */
3817
/* IDL: [in] svcctl_ServiceState service_state, */
3818
/* IDL: [out] [ref] [size_is(offered)] uint8 *services, */
3819
/* IDL: [in] [range(0,0x40000)] uint32 offered, */
3820
/* IDL: [out] [range(0,0x40000)] [ref] uint32 *bytes_needed, */
3821
/* IDL: [out] [range(0,0x40000)] [ref] uint32 *services_returned, */
3822
/* IDL: [in] [out] [unique(1)] uint32 *resume_index */
3823
/* IDL: ); */
3824
3825
static unsigned
3826
svcctl_dissect_EnumServicesStatusW_request(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3827
0
{
3828
0
  di->dcerpc_procedure_name="EnumServicesStatusW";
3829
0
  offset = svcctl_dissect_element_EnumServicesStatusW_scm_handle(tvb, offset, pinfo, tree, di, drep);
3830
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
3831
0
  offset = svcctl_dissect_element_EnumServicesStatusW_service_type(tvb, offset, pinfo, tree, di, drep);
3832
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
3833
0
  offset = svcctl_dissect_element_EnumServicesStatusW_service_state(tvb, offset, pinfo, tree, di, drep);
3834
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
3835
0
  offset = svcctl_dissect_element_EnumServicesStatusW_offered(tvb, offset, pinfo, tree, di, drep);
3836
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
3837
0
  offset = svcctl_dissect_element_EnumServicesStatusW_resume_index(tvb, offset, pinfo, tree, di, drep);
3838
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
3839
0
  return offset;
3840
0
}
3841
3842
static unsigned
3843
svcctl_dissect_element_OpenSCManagerW_MachineName(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3844
0
{
3845
0
  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);
3846
3847
0
  return offset;
3848
0
}
3849
3850
static unsigned
3851
svcctl_dissect_element_OpenSCManagerW_MachineName_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3852
0
{
3853
0
  char *data;
3854
3855
0
  offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(uint16_t), hf_svcctl_svcctl_OpenSCManagerW_MachineName, false, &data);
3856
0
  proto_item_append_text(tree, ": %s", data);
3857
3858
0
  return offset;
3859
0
}
3860
3861
static unsigned
3862
svcctl_dissect_element_OpenSCManagerW_DatabaseName(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3863
0
{
3864
0
  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);
3865
3866
0
  return offset;
3867
0
}
3868
3869
static unsigned
3870
svcctl_dissect_element_OpenSCManagerW_DatabaseName_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3871
0
{
3872
0
  char *data;
3873
3874
0
  offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(uint16_t), hf_svcctl_svcctl_OpenSCManagerW_DatabaseName, false, &data);
3875
0
  proto_item_append_text(tree, ": %s", data);
3876
3877
0
  return offset;
3878
0
}
3879
3880
static unsigned
3881
svcctl_dissect_element_OpenSCManagerW_access_mask(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3882
0
{
3883
0
  offset = svcctl_dissect_bitmap_MgrAccessMask(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_OpenSCManagerW_access_mask, 0);
3884
3885
0
  return offset;
3886
0
}
3887
3888
static unsigned
3889
svcctl_dissect_element_OpenSCManagerW_scm_handle(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3890
0
{
3891
0
  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);
3892
3893
0
  return offset;
3894
0
}
3895
3896
static unsigned
3897
svcctl_dissect_element_OpenSCManagerW_scm_handle_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3898
0
{
3899
0
  offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_OpenSCManagerW_scm_handle, PIDL_POLHND_OPEN);
3900
3901
0
  return offset;
3902
0
}
3903
3904
/* IDL: WERROR svcctl_OpenSCManagerW( */
3905
/* IDL: [charset(UTF16)] [in] [unique(1)] uint16 *MachineName, */
3906
/* IDL: [charset(UTF16)] [in] [unique(1)] uint16 *DatabaseName, */
3907
/* IDL: [in] svcctl_MgrAccessMask access_mask, */
3908
/* IDL: [out] [ref] policy_handle *scm_handle */
3909
/* IDL: ); */
3910
3911
static unsigned
3912
svcctl_dissect_OpenSCManagerW_response(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3913
0
{
3914
0
  uint32_t status;
3915
3916
0
  di->dcerpc_procedure_name="OpenSCManagerW";
3917
0
  offset = svcctl_dissect_element_OpenSCManagerW_scm_handle(tvb, offset, pinfo, tree, di, drep);
3918
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
3919
3920
0
  offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_werror, &status);
3921
3922
0
  if (status != 0)
3923
0
    col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(pinfo->pool, status, &WERR_errors_ext, "Unknown DOS error 0x%08x"));
3924
3925
0
  return offset;
3926
0
}
3927
3928
static unsigned
3929
svcctl_dissect_OpenSCManagerW_request(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3930
0
{
3931
0
  di->dcerpc_procedure_name="OpenSCManagerW";
3932
0
  offset = svcctl_dissect_element_OpenSCManagerW_MachineName(tvb, offset, pinfo, tree, di, drep);
3933
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
3934
0
  offset = svcctl_dissect_element_OpenSCManagerW_DatabaseName(tvb, offset, pinfo, tree, di, drep);
3935
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
3936
0
  offset = svcctl_dissect_element_OpenSCManagerW_access_mask(tvb, offset, pinfo, tree, di, drep);
3937
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
3938
0
  return offset;
3939
0
}
3940
3941
static unsigned
3942
svcctl_dissect_element_OpenServiceW_scm_handle(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3943
0
{
3944
0
  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);
3945
3946
0
  return offset;
3947
0
}
3948
3949
static unsigned
3950
svcctl_dissect_element_OpenServiceW_scm_handle_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3951
0
{
3952
0
  offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_OpenServiceW_scm_handle, 0);
3953
3954
0
  return offset;
3955
0
}
3956
3957
static unsigned
3958
svcctl_dissect_element_OpenServiceW_ServiceName(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3959
0
{
3960
0
  char *data;
3961
3962
0
  offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(uint16_t), hf_svcctl_svcctl_OpenServiceW_ServiceName, false, &data);
3963
0
  proto_item_append_text(tree, ": %s", data);
3964
3965
0
  return offset;
3966
0
}
3967
3968
static unsigned
3969
svcctl_dissect_element_OpenServiceW_access_mask(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3970
0
{
3971
0
  offset = svcctl_dissect_bitmap_ServiceAccessMask(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_OpenServiceW_access_mask, 0);
3972
3973
0
  return offset;
3974
0
}
3975
3976
static unsigned
3977
svcctl_dissect_element_OpenServiceW_service_handle(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3978
0
{
3979
0
  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);
3980
3981
0
  return offset;
3982
0
}
3983
3984
static unsigned
3985
svcctl_dissect_element_OpenServiceW_service_handle_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3986
0
{
3987
0
  offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_OpenServiceW_service_handle, PIDL_POLHND_OPEN);
3988
3989
0
  return offset;
3990
0
}
3991
3992
/* IDL: WERROR svcctl_OpenServiceW( */
3993
/* IDL: [in] [ref] policy_handle *scm_handle, */
3994
/* IDL: [charset(UTF16)] [in] uint16 ServiceName[*], */
3995
/* IDL: [in] svcctl_ServiceAccessMask access_mask, */
3996
/* IDL: [out] [ref] policy_handle *service_handle */
3997
/* IDL: ); */
3998
3999
static unsigned
4000
svcctl_dissect_OpenServiceW_response(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4001
0
{
4002
0
  uint32_t status;
4003
4004
0
  di->dcerpc_procedure_name="OpenServiceW";
4005
0
  offset = svcctl_dissect_element_OpenServiceW_service_handle(tvb, offset, pinfo, tree, di, drep);
4006
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
4007
4008
0
  offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_werror, &status);
4009
4010
0
  if (status != 0)
4011
0
    col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(pinfo->pool, status, &WERR_errors_ext, "Unknown DOS error 0x%08x"));
4012
4013
0
  return offset;
4014
0
}
4015
4016
static unsigned
4017
svcctl_dissect_OpenServiceW_request(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4018
0
{
4019
0
  di->dcerpc_procedure_name="OpenServiceW";
4020
0
  offset = svcctl_dissect_element_OpenServiceW_scm_handle(tvb, offset, pinfo, tree, di, drep);
4021
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
4022
0
  offset = svcctl_dissect_element_OpenServiceW_ServiceName(tvb, offset, pinfo, tree, di, drep);
4023
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
4024
0
  offset = svcctl_dissect_element_OpenServiceW_access_mask(tvb, offset, pinfo, tree, di, drep);
4025
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
4026
0
  return offset;
4027
0
}
4028
4029
static unsigned
4030
svcctl_dissect_element_QueryServiceConfigW_service_handle(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4031
0
{
4032
0
  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);
4033
4034
0
  return offset;
4035
0
}
4036
4037
static unsigned
4038
svcctl_dissect_element_QueryServiceConfigW_service_handle_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4039
0
{
4040
0
  offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_QueryServiceConfigW_service_handle, 0);
4041
4042
0
  return offset;
4043
0
}
4044
4045
static unsigned
4046
svcctl_dissect_element_QueryServiceConfigW_service_config(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4047
0
{
4048
0
  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);
4049
4050
0
  return offset;
4051
0
}
4052
4053
static unsigned
4054
svcctl_dissect_element_QueryServiceConfigW_service_config_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4055
0
{
4056
0
  offset = svcctl_dissect_struct_QUERY_SERVICE_CONFIG(tvb,offset,pinfo,tree,di,drep,hf_svcctl_svcctl_QueryServiceConfigW_service_config,0);
4057
4058
0
  return offset;
4059
0
}
4060
4061
static unsigned
4062
svcctl_dissect_element_QueryServiceConfigW_offered(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4063
0
{
4064
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_QueryServiceConfigW_offered, 0);
4065
4066
0
  return offset;
4067
0
}
4068
4069
static unsigned
4070
svcctl_dissect_element_QueryServiceConfigW_needed(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4071
0
{
4072
0
  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);
4073
4074
0
  return offset;
4075
0
}
4076
4077
static unsigned
4078
svcctl_dissect_element_QueryServiceConfigW_needed_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4079
0
{
4080
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_QueryServiceConfigW_needed, 0);
4081
4082
0
  return offset;
4083
0
}
4084
4085
/* IDL: WERROR svcctl_QueryServiceConfigW( */
4086
/* IDL: [in] [ref] policy_handle *service_handle, */
4087
/* IDL: [out] [ref] QUERY_SERVICE_CONFIG *service_config, */
4088
/* IDL: [in] [range(0,8192)] uint32 offered, */
4089
/* IDL: [out] [range(0,8192)] [ref] uint32 *needed */
4090
/* IDL: ); */
4091
4092
static unsigned
4093
svcctl_dissect_QueryServiceConfigW_response(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4094
0
{
4095
0
  uint32_t status;
4096
4097
0
  di->dcerpc_procedure_name="QueryServiceConfigW";
4098
0
  offset = svcctl_dissect_element_QueryServiceConfigW_service_config(tvb, offset, pinfo, tree, di, drep);
4099
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
4100
4101
0
  offset = svcctl_dissect_element_QueryServiceConfigW_needed(tvb, offset, pinfo, tree, di, drep);
4102
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
4103
4104
0
  offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_werror, &status);
4105
4106
0
  if (status != 0)
4107
0
    col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(pinfo->pool, status, &WERR_errors_ext, "Unknown DOS error 0x%08x"));
4108
4109
0
  return offset;
4110
0
}
4111
4112
static unsigned
4113
svcctl_dissect_QueryServiceConfigW_request(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4114
0
{
4115
0
  di->dcerpc_procedure_name="QueryServiceConfigW";
4116
0
  offset = svcctl_dissect_element_QueryServiceConfigW_service_handle(tvb, offset, pinfo, tree, di, drep);
4117
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
4118
0
  offset = svcctl_dissect_element_QueryServiceConfigW_offered(tvb, offset, pinfo, tree, di, drep);
4119
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
4120
0
  return offset;
4121
0
}
4122
4123
static unsigned
4124
svcctl_dissect_element_QueryServiceLockStatusW_scm_handle(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4125
0
{
4126
0
  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);
4127
4128
0
  return offset;
4129
0
}
4130
4131
static unsigned
4132
svcctl_dissect_element_QueryServiceLockStatusW_scm_handle_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4133
0
{
4134
0
  offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_QueryServiceLockStatusW_scm_handle, 0);
4135
4136
0
  return offset;
4137
0
}
4138
4139
static unsigned
4140
svcctl_dissect_element_QueryServiceLockStatusW_lock_status(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4141
0
{
4142
0
  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);
4143
4144
0
  return offset;
4145
0
}
4146
4147
static unsigned
4148
svcctl_dissect_element_QueryServiceLockStatusW_lock_status_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4149
0
{
4150
0
  offset = svcctl_dissect_struct_SERVICE_LOCK_STATUS(tvb,offset,pinfo,tree,di,drep,hf_svcctl_svcctl_QueryServiceLockStatusW_lock_status,0);
4151
4152
0
  return offset;
4153
0
}
4154
4155
static unsigned
4156
svcctl_dissect_element_QueryServiceLockStatusW_offered(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4157
0
{
4158
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_QueryServiceLockStatusW_offered, 0);
4159
4160
0
  return offset;
4161
0
}
4162
4163
static unsigned
4164
svcctl_dissect_element_QueryServiceLockStatusW_needed(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4165
0
{
4166
0
  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);
4167
4168
0
  return offset;
4169
0
}
4170
4171
static unsigned
4172
svcctl_dissect_element_QueryServiceLockStatusW_needed_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4173
0
{
4174
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_QueryServiceLockStatusW_needed, 0);
4175
4176
0
  return offset;
4177
0
}
4178
4179
/* IDL: WERROR svcctl_QueryServiceLockStatusW( */
4180
/* IDL: [in] [ref] policy_handle *scm_handle, */
4181
/* IDL: [out] [ref] SERVICE_LOCK_STATUS *lock_status, */
4182
/* IDL: [in] uint32 offered, */
4183
/* IDL: [out] [ref] uint32 *needed */
4184
/* IDL: ); */
4185
4186
static unsigned
4187
svcctl_dissect_QueryServiceLockStatusW_response(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4188
0
{
4189
0
  uint32_t status;
4190
4191
0
  di->dcerpc_procedure_name="QueryServiceLockStatusW";
4192
0
  offset = svcctl_dissect_element_QueryServiceLockStatusW_lock_status(tvb, offset, pinfo, tree, di, drep);
4193
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
4194
4195
0
  offset = svcctl_dissect_element_QueryServiceLockStatusW_needed(tvb, offset, pinfo, tree, di, drep);
4196
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
4197
4198
0
  offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_werror, &status);
4199
4200
0
  if (status != 0)
4201
0
    col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(pinfo->pool, status, &WERR_errors_ext, "Unknown DOS error 0x%08x"));
4202
4203
0
  return offset;
4204
0
}
4205
4206
static unsigned
4207
svcctl_dissect_QueryServiceLockStatusW_request(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4208
0
{
4209
0
  di->dcerpc_procedure_name="QueryServiceLockStatusW";
4210
0
  offset = svcctl_dissect_element_QueryServiceLockStatusW_scm_handle(tvb, offset, pinfo, tree, di, drep);
4211
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
4212
0
  offset = svcctl_dissect_element_QueryServiceLockStatusW_offered(tvb, offset, pinfo, tree, di, drep);
4213
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
4214
0
  return offset;
4215
0
}
4216
4217
static unsigned
4218
svcctl_dissect_element_StartServiceW_service_handle(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4219
0
{
4220
0
  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);
4221
4222
0
  return offset;
4223
0
}
4224
4225
static unsigned
4226
svcctl_dissect_element_StartServiceW_service_handle_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4227
0
{
4228
0
  offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_StartServiceW_service_handle, 0);
4229
4230
0
  return offset;
4231
0
}
4232
4233
static unsigned
4234
svcctl_dissect_element_StartServiceW_NumArgs(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4235
0
{
4236
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_StartServiceW_NumArgs, 0);
4237
4238
0
  return offset;
4239
0
}
4240
4241
static unsigned
4242
svcctl_dissect_element_StartServiceW_Arguments(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4243
0
{
4244
0
  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);
4245
4246
0
  return offset;
4247
0
}
4248
4249
static unsigned
4250
svcctl_dissect_element_StartServiceW_Arguments_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4251
0
{
4252
0
  offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_StartServiceW_Arguments__);
4253
4254
0
  return offset;
4255
0
}
4256
4257
static unsigned
4258
svcctl_dissect_element_StartServiceW_Arguments__(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4259
0
{
4260
0
  offset = svcctl_dissect_struct_ArgumentString(tvb,offset,pinfo,tree,di,drep,hf_svcctl_svcctl_StartServiceW_Arguments,0);
4261
4262
0
  return offset;
4263
0
}
4264
4265
/* IDL: WERROR svcctl_StartServiceW( */
4266
/* IDL: [in] [ref] policy_handle *service_handle, */
4267
/* IDL: [in] [range(0,SC_MAX_ARGUMENTS)] uint32 NumArgs, */
4268
/* IDL: [in] [size_is(NumArgs)] [unique(1)] svcctl_ArgumentString *Arguments */
4269
/* IDL: ); */
4270
4271
static unsigned
4272
svcctl_dissect_StartServiceW_response(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4273
0
{
4274
0
  uint32_t status;
4275
4276
0
  di->dcerpc_procedure_name="StartServiceW";
4277
0
  offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_werror, &status);
4278
4279
0
  if (status != 0)
4280
0
    col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(pinfo->pool, status, &WERR_errors_ext, "Unknown DOS error 0x%08x"));
4281
4282
0
  return offset;
4283
0
}
4284
4285
static unsigned
4286
svcctl_dissect_StartServiceW_request(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4287
0
{
4288
0
  di->dcerpc_procedure_name="StartServiceW";
4289
0
  offset = svcctl_dissect_element_StartServiceW_service_handle(tvb, offset, pinfo, tree, di, drep);
4290
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
4291
0
  offset = svcctl_dissect_element_StartServiceW_NumArgs(tvb, offset, pinfo, tree, di, drep);
4292
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
4293
0
  offset = svcctl_dissect_element_StartServiceW_Arguments(tvb, offset, pinfo, tree, di, drep);
4294
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
4295
0
  return offset;
4296
0
}
4297
4298
static unsigned
4299
svcctl_dissect_element_GetServiceDisplayNameW_scm_handle(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4300
0
{
4301
0
  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);
4302
4303
0
  return offset;
4304
0
}
4305
4306
static unsigned
4307
svcctl_dissect_element_GetServiceDisplayNameW_scm_handle_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4308
0
{
4309
0
  offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_GetServiceDisplayNameW_scm_handle, 0);
4310
4311
0
  return offset;
4312
0
}
4313
4314
static unsigned
4315
svcctl_dissect_element_GetServiceDisplayNameW_service_name(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4316
0
{
4317
0
  offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_GetServiceDisplayNameW_service_name_, NDR_POINTER_REF, "Pointer to Service Name (uint16)",hf_svcctl_svcctl_GetServiceDisplayNameW_service_name);
4318
4319
0
  return offset;
4320
0
}
4321
4322
static unsigned
4323
svcctl_dissect_element_GetServiceDisplayNameW_service_name_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4324
0
{
4325
0
  char *data;
4326
4327
0
  offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(uint16_t), hf_svcctl_svcctl_GetServiceDisplayNameW_service_name, false, &data);
4328
0
  proto_item_append_text(tree, ": %s", data);
4329
4330
0
  return offset;
4331
0
}
4332
4333
static unsigned
4334
svcctl_dissect_element_GetServiceDisplayNameW_display_name(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4335
0
{
4336
0
  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);
4337
4338
0
  return offset;
4339
0
}
4340
4341
static unsigned
4342
svcctl_dissect_element_GetServiceDisplayNameW_display_name_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4343
0
{
4344
0
  char *data;
4345
4346
0
  offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(uint16_t), hf_svcctl_svcctl_GetServiceDisplayNameW_display_name, false, &data);
4347
0
  proto_item_append_text(tree, ": %s", data);
4348
4349
0
  return offset;
4350
0
}
4351
4352
static unsigned
4353
svcctl_dissect_element_GetServiceDisplayNameW_display_name_length(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4354
0
{
4355
0
  offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_GetServiceDisplayNameW_display_name_length_, NDR_POINTER_REF, "Pointer to Display Name Length (uint32)",hf_svcctl_svcctl_GetServiceDisplayNameW_display_name_length);
4356
4357
0
  return offset;
4358
0
}
4359
4360
static unsigned
4361
svcctl_dissect_element_GetServiceDisplayNameW_display_name_length_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4362
0
{
4363
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_GetServiceDisplayNameW_display_name_length, 0);
4364
4365
0
  return offset;
4366
0
}
4367
4368
/* IDL: WERROR svcctl_GetServiceDisplayNameW( */
4369
/* IDL: [in] [ref] policy_handle *scm_handle, */
4370
/* IDL: [charset(UTF16)] [in] [range(0,SC_MAX_NAME_LENGTH)] [ref] uint16 *service_name, */
4371
/* IDL: [charset(UTF16)] [out] [range(1,SC_MAX_NAME_LENGTH)] [ref] [size_is(*display_name_length+1)] uint16 *display_name, */
4372
/* IDL: [in] [out] [ref] uint32 *display_name_length */
4373
/* IDL: ); */
4374
4375
static unsigned
4376
svcctl_dissect_GetServiceDisplayNameW_response(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4377
0
{
4378
0
  uint32_t status;
4379
4380
0
  di->dcerpc_procedure_name="GetServiceDisplayNameW";
4381
0
  offset = svcctl_dissect_element_GetServiceDisplayNameW_display_name(tvb, offset, pinfo, tree, di, drep);
4382
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
4383
4384
0
  offset = svcctl_dissect_element_GetServiceDisplayNameW_display_name_length(tvb, offset, pinfo, tree, di, drep);
4385
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
4386
4387
0
  offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_werror, &status);
4388
4389
0
  if (status != 0)
4390
0
    col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(pinfo->pool, status, &WERR_errors_ext, "Unknown DOS error 0x%08x"));
4391
4392
0
  return offset;
4393
0
}
4394
4395
static unsigned
4396
svcctl_dissect_GetServiceDisplayNameW_request(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4397
0
{
4398
0
  di->dcerpc_procedure_name="GetServiceDisplayNameW";
4399
0
  offset = svcctl_dissect_element_GetServiceDisplayNameW_scm_handle(tvb, offset, pinfo, tree, di, drep);
4400
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
4401
0
  offset = svcctl_dissect_element_GetServiceDisplayNameW_service_name(tvb, offset, pinfo, tree, di, drep);
4402
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
4403
0
  offset = svcctl_dissect_element_GetServiceDisplayNameW_display_name_length(tvb, offset, pinfo, tree, di, drep);
4404
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
4405
0
  return offset;
4406
0
}
4407
4408
static unsigned
4409
svcctl_dissect_element_GetServiceKeyNameW_scm_handle(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4410
0
{
4411
0
  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);
4412
4413
0
  return offset;
4414
0
}
4415
4416
static unsigned
4417
svcctl_dissect_element_GetServiceKeyNameW_scm_handle_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4418
0
{
4419
0
  offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_GetServiceKeyNameW_scm_handle, 0);
4420
4421
0
  return offset;
4422
0
}
4423
4424
static unsigned
4425
svcctl_dissect_element_GetServiceKeyNameW_display_name(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4426
0
{
4427
0
  offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_GetServiceKeyNameW_display_name_, NDR_POINTER_REF, "Pointer to Display Name (uint16)",hf_svcctl_svcctl_GetServiceKeyNameW_display_name);
4428
4429
0
  return offset;
4430
0
}
4431
4432
static unsigned
4433
svcctl_dissect_element_GetServiceKeyNameW_display_name_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4434
0
{
4435
0
  char *data;
4436
4437
0
  offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(uint16_t), hf_svcctl_svcctl_GetServiceKeyNameW_display_name, false, &data);
4438
0
  proto_item_append_text(tree, ": %s", data);
4439
4440
0
  return offset;
4441
0
}
4442
4443
static unsigned
4444
svcctl_dissect_element_GetServiceKeyNameW_service_name(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4445
0
{
4446
0
  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);
4447
4448
0
  return offset;
4449
0
}
4450
4451
static unsigned
4452
svcctl_dissect_element_GetServiceKeyNameW_service_name_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4453
0
{
4454
0
  char *data;
4455
4456
0
  offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(uint16_t), hf_svcctl_svcctl_GetServiceKeyNameW_service_name, false, &data);
4457
0
  proto_item_append_text(tree, ": %s", data);
4458
4459
0
  return offset;
4460
0
}
4461
4462
static unsigned
4463
svcctl_dissect_element_GetServiceKeyNameW_service_name_length(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4464
0
{
4465
0
  offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_GetServiceKeyNameW_service_name_length_, NDR_POINTER_REF, "Pointer to Service Name Length (uint32)",hf_svcctl_svcctl_GetServiceKeyNameW_service_name_length);
4466
4467
0
  return offset;
4468
0
}
4469
4470
static unsigned
4471
svcctl_dissect_element_GetServiceKeyNameW_service_name_length_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4472
0
{
4473
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_GetServiceKeyNameW_service_name_length, 0);
4474
4475
0
  return offset;
4476
0
}
4477
4478
/* IDL: WERROR svcctl_GetServiceKeyNameW( */
4479
/* IDL: [in] [ref] policy_handle *scm_handle, */
4480
/* IDL: [charset(UTF16)] [in] [range(0,SC_MAX_NAME_LENGTH)] [ref] uint16 *display_name, */
4481
/* IDL: [charset(UTF16)] [out] [range(1,SC_MAX_NAME_LENGTH)] [ref] [size_is(*service_name_length+1)] uint16 *service_name, */
4482
/* IDL: [in] [out] [ref] uint32 *service_name_length */
4483
/* IDL: ); */
4484
4485
static unsigned
4486
svcctl_dissect_GetServiceKeyNameW_response(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4487
0
{
4488
0
  uint32_t status;
4489
4490
0
  di->dcerpc_procedure_name="GetServiceKeyNameW";
4491
0
  offset = svcctl_dissect_element_GetServiceKeyNameW_service_name(tvb, offset, pinfo, tree, di, drep);
4492
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
4493
4494
0
  offset = svcctl_dissect_element_GetServiceKeyNameW_service_name_length(tvb, offset, pinfo, tree, di, drep);
4495
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
4496
4497
0
  offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_werror, &status);
4498
4499
0
  if (status != 0)
4500
0
    col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(pinfo->pool, status, &WERR_errors_ext, "Unknown DOS error 0x%08x"));
4501
4502
0
  return offset;
4503
0
}
4504
4505
static unsigned
4506
svcctl_dissect_GetServiceKeyNameW_request(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4507
0
{
4508
0
  di->dcerpc_procedure_name="GetServiceKeyNameW";
4509
0
  offset = svcctl_dissect_element_GetServiceKeyNameW_scm_handle(tvb, offset, pinfo, tree, di, drep);
4510
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
4511
0
  offset = svcctl_dissect_element_GetServiceKeyNameW_display_name(tvb, offset, pinfo, tree, di, drep);
4512
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
4513
0
  offset = svcctl_dissect_element_GetServiceKeyNameW_service_name_length(tvb, offset, pinfo, tree, di, drep);
4514
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
4515
0
  return offset;
4516
0
}
4517
4518
static unsigned
4519
svcctl_dissect_element_SCSetServiceBitsA_handle(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4520
0
{
4521
0
  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);
4522
4523
0
  return offset;
4524
0
}
4525
4526
static unsigned
4527
svcctl_dissect_element_SCSetServiceBitsA_handle_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4528
0
{
4529
0
  offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_SCSetServiceBitsA_handle, 0);
4530
4531
0
  return offset;
4532
0
}
4533
4534
static unsigned
4535
svcctl_dissect_element_SCSetServiceBitsA_service_bits(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4536
0
{
4537
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_SCSetServiceBitsA_service_bits, 0);
4538
4539
0
  return offset;
4540
0
}
4541
4542
static unsigned
4543
svcctl_dissect_element_SCSetServiceBitsA_set_bits_on(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4544
0
{
4545
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_SCSetServiceBitsA_set_bits_on, 0);
4546
4547
0
  return offset;
4548
0
}
4549
4550
static unsigned
4551
svcctl_dissect_element_SCSetServiceBitsA_update_immediately(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4552
0
{
4553
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_SCSetServiceBitsA_update_immediately, 0);
4554
4555
0
  return offset;
4556
0
}
4557
4558
static unsigned
4559
svcctl_dissect_element_SCSetServiceBitsA_lpString(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4560
0
{
4561
0
  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);
4562
4563
0
  return offset;
4564
0
}
4565
4566
static unsigned
4567
svcctl_dissect_element_SCSetServiceBitsA_lpString_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4568
0
{
4569
0
  char *data;
4570
4571
0
  offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(uint16_t), hf_svcctl_svcctl_SCSetServiceBitsA_lpString, false, &data);
4572
0
  proto_item_append_text(tree, ": %s", data);
4573
4574
0
  return offset;
4575
0
}
4576
4577
/* IDL: WERROR svcctl_SCSetServiceBitsA( */
4578
/* IDL: [in] [ref] policy_handle *handle, */
4579
/* IDL: [in] uint32 service_bits, */
4580
/* IDL: [in] uint32 set_bits_on, */
4581
/* IDL: [in] uint32 update_immediately, */
4582
/* IDL: [charset(UTF16)] [in] [unique(1)] uint16 *lpString */
4583
/* IDL: ); */
4584
4585
static unsigned
4586
svcctl_dissect_SCSetServiceBitsA_response(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4587
0
{
4588
0
  uint32_t status;
4589
4590
0
  di->dcerpc_procedure_name="SCSetServiceBitsA";
4591
0
  offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_werror, &status);
4592
4593
0
  if (status != 0)
4594
0
    col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(pinfo->pool, status, &WERR_errors_ext, "Unknown DOS error 0x%08x"));
4595
4596
0
  return offset;
4597
0
}
4598
4599
static unsigned
4600
svcctl_dissect_SCSetServiceBitsA_request(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4601
0
{
4602
0
  di->dcerpc_procedure_name="SCSetServiceBitsA";
4603
0
  offset = svcctl_dissect_element_SCSetServiceBitsA_handle(tvb, offset, pinfo, tree, di, drep);
4604
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
4605
0
  offset = svcctl_dissect_element_SCSetServiceBitsA_service_bits(tvb, offset, pinfo, tree, di, drep);
4606
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
4607
0
  offset = svcctl_dissect_element_SCSetServiceBitsA_set_bits_on(tvb, offset, pinfo, tree, di, drep);
4608
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
4609
0
  offset = svcctl_dissect_element_SCSetServiceBitsA_update_immediately(tvb, offset, pinfo, tree, di, drep);
4610
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
4611
0
  offset = svcctl_dissect_element_SCSetServiceBitsA_lpString(tvb, offset, pinfo, tree, di, drep);
4612
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
4613
0
  return offset;
4614
0
}
4615
4616
static unsigned
4617
svcctl_dissect_element_ChangeServiceConfigA_service_handle(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4618
0
{
4619
0
  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);
4620
4621
0
  return offset;
4622
0
}
4623
4624
static unsigned
4625
svcctl_dissect_element_ChangeServiceConfigA_service_handle_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4626
0
{
4627
0
  offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_ChangeServiceConfigA_service_handle, 0);
4628
4629
0
  return offset;
4630
0
}
4631
4632
static unsigned
4633
svcctl_dissect_element_ChangeServiceConfigA_service_type(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4634
0
{
4635
0
  offset = svcctl_dissect_enum_ServiceType(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_ChangeServiceConfigA_service_type, 0);
4636
4637
0
  return offset;
4638
0
}
4639
4640
static unsigned
4641
svcctl_dissect_element_ChangeServiceConfigA_start_type(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4642
0
{
4643
0
  offset = svcctl_dissect_enum_StartType(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_ChangeServiceConfigA_start_type, 0);
4644
4645
0
  return offset;
4646
0
}
4647
4648
static unsigned
4649
svcctl_dissect_element_ChangeServiceConfigA_error_control(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4650
0
{
4651
0
  offset = svcctl_dissect_enum_ErrorControl(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_ChangeServiceConfigA_error_control, 0);
4652
4653
0
  return offset;
4654
0
}
4655
4656
static unsigned
4657
svcctl_dissect_element_ChangeServiceConfigA_binary_path(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4658
0
{
4659
0
  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);
4660
4661
0
  return offset;
4662
0
}
4663
4664
static unsigned
4665
svcctl_dissect_element_ChangeServiceConfigA_binary_path_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4666
0
{
4667
0
  offset = dissect_null_term_string(tvb, offset, pinfo, tree, drep, hf_svcctl_svcctl_ChangeServiceConfigA_binary_path , 0);
4668
4669
0
  return offset;
4670
0
}
4671
4672
static unsigned
4673
svcctl_dissect_element_ChangeServiceConfigA_load_order_group(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4674
0
{
4675
0
  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);
4676
4677
0
  return offset;
4678
0
}
4679
4680
static unsigned
4681
svcctl_dissect_element_ChangeServiceConfigA_load_order_group_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4682
0
{
4683
0
  offset = dissect_null_term_string(tvb, offset, pinfo, tree, drep, hf_svcctl_svcctl_ChangeServiceConfigA_load_order_group , 0);
4684
4685
0
  return offset;
4686
0
}
4687
4688
static unsigned
4689
svcctl_dissect_element_ChangeServiceConfigA_tag_id(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4690
0
{
4691
0
  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);
4692
4693
0
  return offset;
4694
0
}
4695
4696
static unsigned
4697
svcctl_dissect_element_ChangeServiceConfigA_tag_id_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4698
0
{
4699
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_ChangeServiceConfigA_tag_id, 0);
4700
4701
0
  return offset;
4702
0
}
4703
4704
static unsigned
4705
svcctl_dissect_element_ChangeServiceConfigA_dependencies(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4706
0
{
4707
0
  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);
4708
4709
0
  return offset;
4710
0
}
4711
4712
static unsigned
4713
svcctl_dissect_element_ChangeServiceConfigA_dependencies_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4714
0
{
4715
0
  offset = dissect_null_term_string(tvb, offset, pinfo, tree, drep, hf_svcctl_svcctl_ChangeServiceConfigA_dependencies , 0);
4716
4717
0
  return offset;
4718
0
}
4719
4720
static unsigned
4721
svcctl_dissect_element_ChangeServiceConfigA_service_start_name(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4722
0
{
4723
0
  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);
4724
4725
0
  return offset;
4726
0
}
4727
4728
static unsigned
4729
svcctl_dissect_element_ChangeServiceConfigA_service_start_name_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4730
0
{
4731
0
  offset = dissect_null_term_string(tvb, offset, pinfo, tree, drep, hf_svcctl_svcctl_ChangeServiceConfigA_service_start_name , 0);
4732
4733
0
  return offset;
4734
0
}
4735
4736
static unsigned
4737
svcctl_dissect_element_ChangeServiceConfigA_password(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4738
0
{
4739
0
  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);
4740
4741
0
  return offset;
4742
0
}
4743
4744
static unsigned
4745
svcctl_dissect_element_ChangeServiceConfigA_password_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4746
0
{
4747
0
  offset = dissect_null_term_string(tvb, offset, pinfo, tree, drep, hf_svcctl_svcctl_ChangeServiceConfigA_password , 0);
4748
4749
0
  return offset;
4750
0
}
4751
4752
static unsigned
4753
svcctl_dissect_element_ChangeServiceConfigA_display_name(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4754
0
{
4755
0
  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);
4756
4757
0
  return offset;
4758
0
}
4759
4760
static unsigned
4761
svcctl_dissect_element_ChangeServiceConfigA_display_name_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4762
0
{
4763
0
  offset = dissect_null_term_string(tvb, offset, pinfo, tree, drep, hf_svcctl_svcctl_ChangeServiceConfigA_display_name , 0);
4764
4765
0
  return offset;
4766
0
}
4767
4768
/* IDL: WERROR svcctl_ChangeServiceConfigA( */
4769
/* IDL: [in] [ref] policy_handle *service_handle, */
4770
/* IDL: [in] svcctl_ServiceType service_type, */
4771
/* IDL: [in] svcctl_StartType start_type, */
4772
/* IDL: [in] svcctl_ErrorControl error_control, */
4773
/* IDL: [flag(LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM)] [in] [unique(1)] string *binary_path, */
4774
/* IDL: [flag(LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM)] [in] [unique(1)] string *load_order_group, */
4775
/* IDL: [in] [out] [unique(1)] uint32 *tag_id, */
4776
/* IDL: [flag(LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM)] [in] [unique(1)] string *dependencies, */
4777
/* IDL: [flag(LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM)] [in] [unique(1)] string *service_start_name, */
4778
/* IDL: [flag(LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM)] [in] [unique(1)] string *password, */
4779
/* IDL: [flag(LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM)] [in] [unique(1)] string *display_name */
4780
/* IDL: ); */
4781
4782
static unsigned
4783
svcctl_dissect_ChangeServiceConfigA_response(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4784
0
{
4785
0
  uint32_t status;
4786
4787
0
  di->dcerpc_procedure_name="ChangeServiceConfigA";
4788
0
  offset = svcctl_dissect_element_ChangeServiceConfigA_tag_id(tvb, offset, pinfo, tree, di, drep);
4789
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
4790
4791
0
  offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_werror, &status);
4792
4793
0
  if (status != 0)
4794
0
    col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(pinfo->pool, status, &WERR_errors_ext, "Unknown DOS error 0x%08x"));
4795
4796
0
  return offset;
4797
0
}
4798
4799
static unsigned
4800
svcctl_dissect_ChangeServiceConfigA_request(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4801
0
{
4802
0
  di->dcerpc_procedure_name="ChangeServiceConfigA";
4803
0
  offset = svcctl_dissect_element_ChangeServiceConfigA_service_handle(tvb, offset, pinfo, tree, di, drep);
4804
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
4805
0
  offset = svcctl_dissect_element_ChangeServiceConfigA_service_type(tvb, offset, pinfo, tree, di, drep);
4806
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
4807
0
  offset = svcctl_dissect_element_ChangeServiceConfigA_start_type(tvb, offset, pinfo, tree, di, drep);
4808
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
4809
0
  offset = svcctl_dissect_element_ChangeServiceConfigA_error_control(tvb, offset, pinfo, tree, di, drep);
4810
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
4811
0
  offset = svcctl_dissect_element_ChangeServiceConfigA_binary_path(tvb, offset, pinfo, tree, di, drep);
4812
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
4813
0
  offset = svcctl_dissect_element_ChangeServiceConfigA_load_order_group(tvb, offset, pinfo, tree, di, drep);
4814
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
4815
0
  offset = svcctl_dissect_element_ChangeServiceConfigA_tag_id(tvb, offset, pinfo, tree, di, drep);
4816
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
4817
0
  offset = svcctl_dissect_element_ChangeServiceConfigA_dependencies(tvb, offset, pinfo, tree, di, drep);
4818
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
4819
0
  offset = svcctl_dissect_element_ChangeServiceConfigA_service_start_name(tvb, offset, pinfo, tree, di, drep);
4820
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
4821
0
  offset = svcctl_dissect_element_ChangeServiceConfigA_password(tvb, offset, pinfo, tree, di, drep);
4822
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
4823
0
  offset = svcctl_dissect_element_ChangeServiceConfigA_display_name(tvb, offset, pinfo, tree, di, drep);
4824
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
4825
0
  return offset;
4826
0
}
4827
4828
static unsigned
4829
svcctl_dissect_element_CreateServiceA_scm_handle(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4830
0
{
4831
0
  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);
4832
4833
0
  return offset;
4834
0
}
4835
4836
static unsigned
4837
svcctl_dissect_element_CreateServiceA_scm_handle_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4838
0
{
4839
0
  offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_CreateServiceA_scm_handle, 0);
4840
4841
0
  return offset;
4842
0
}
4843
4844
static unsigned
4845
svcctl_dissect_element_CreateServiceA_ServiceName(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4846
0
{
4847
0
  char *data;
4848
4849
0
  offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(uint8_t), hf_svcctl_svcctl_CreateServiceA_ServiceName, false, &data);
4850
0
  proto_item_append_text(tree, ": %s", data);
4851
4852
0
  return offset;
4853
0
}
4854
4855
static unsigned
4856
svcctl_dissect_element_CreateServiceA_DisplayName(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4857
0
{
4858
0
  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);
4859
4860
0
  return offset;
4861
0
}
4862
4863
static unsigned
4864
svcctl_dissect_element_CreateServiceA_DisplayName_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4865
0
{
4866
0
  char *data;
4867
4868
0
  offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(uint8_t), hf_svcctl_svcctl_CreateServiceA_DisplayName, false, &data);
4869
0
  proto_item_append_text(tree, ": %s", data);
4870
4871
0
  return offset;
4872
0
}
4873
4874
static unsigned
4875
svcctl_dissect_element_CreateServiceA_desired_access(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4876
0
{
4877
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_CreateServiceA_desired_access, 0);
4878
4879
0
  return offset;
4880
0
}
4881
4882
static unsigned
4883
svcctl_dissect_element_CreateServiceA_service_type(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4884
0
{
4885
0
  offset = svcctl_dissect_enum_ServiceType(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_CreateServiceA_service_type, 0);
4886
4887
0
  return offset;
4888
0
}
4889
4890
static unsigned
4891
svcctl_dissect_element_CreateServiceA_start_type(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4892
0
{
4893
0
  offset = svcctl_dissect_enum_StartType(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_CreateServiceA_start_type, 0);
4894
4895
0
  return offset;
4896
0
}
4897
4898
static unsigned
4899
svcctl_dissect_element_CreateServiceA_error_control(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4900
0
{
4901
0
  offset = svcctl_dissect_enum_ErrorControl(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_CreateServiceA_error_control, 0);
4902
4903
0
  return offset;
4904
0
}
4905
4906
static unsigned
4907
svcctl_dissect_element_CreateServiceA_binary_path(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4908
0
{
4909
0
  char *data;
4910
4911
0
  offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(uint8_t), hf_svcctl_svcctl_CreateServiceA_binary_path, false, &data);
4912
0
  proto_item_append_text(tree, ": %s", data);
4913
4914
0
  return offset;
4915
0
}
4916
4917
static unsigned
4918
svcctl_dissect_element_CreateServiceA_LoadOrderGroupKey(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4919
0
{
4920
0
  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);
4921
4922
0
  return offset;
4923
0
}
4924
4925
static unsigned
4926
svcctl_dissect_element_CreateServiceA_LoadOrderGroupKey_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4927
0
{
4928
0
  char *data;
4929
4930
0
  offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(uint8_t), hf_svcctl_svcctl_CreateServiceA_LoadOrderGroupKey, false, &data);
4931
0
  proto_item_append_text(tree, ": %s", data);
4932
4933
0
  return offset;
4934
0
}
4935
4936
static unsigned
4937
svcctl_dissect_element_CreateServiceA_tag_id(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4938
0
{
4939
0
  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);
4940
4941
0
  return offset;
4942
0
}
4943
4944
static unsigned
4945
svcctl_dissect_element_CreateServiceA_tag_id_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4946
0
{
4947
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_CreateServiceA_tag_id, 0);
4948
4949
0
  return offset;
4950
0
}
4951
4952
static unsigned
4953
svcctl_dissect_element_CreateServiceA_dependencies(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4954
0
{
4955
0
  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);
4956
4957
0
  return offset;
4958
0
}
4959
4960
static unsigned
4961
svcctl_dissect_element_CreateServiceA_dependencies_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4962
0
{
4963
0
  offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_CreateServiceA_dependencies__);
4964
4965
0
  return offset;
4966
0
}
4967
4968
static unsigned
4969
svcctl_dissect_element_CreateServiceA_dependencies__(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4970
0
{
4971
0
  offset = dissect_null_term_string(tvb, offset, pinfo, tree, drep, hf_svcctl_svcctl_CreateServiceA_dependencies , 0);
4972
4973
0
  return offset;
4974
0
}
4975
4976
static unsigned
4977
svcctl_dissect_element_CreateServiceA_dependencies_size(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4978
0
{
4979
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_CreateServiceA_dependencies_size, 0);
4980
4981
0
  return offset;
4982
0
}
4983
4984
static unsigned
4985
svcctl_dissect_element_CreateServiceA_service_start_name(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4986
0
{
4987
0
  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);
4988
4989
0
  return offset;
4990
0
}
4991
4992
static unsigned
4993
svcctl_dissect_element_CreateServiceA_service_start_name_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4994
0
{
4995
0
  char *data;
4996
4997
0
  offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(uint8_t), hf_svcctl_svcctl_CreateServiceA_service_start_name, false, &data);
4998
0
  proto_item_append_text(tree, ": %s", data);
4999
5000
0
  return offset;
5001
0
}
5002
5003
static unsigned
5004
svcctl_dissect_element_CreateServiceA_password(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5005
0
{
5006
0
  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);
5007
5008
0
  return offset;
5009
0
}
5010
5011
static unsigned
5012
svcctl_dissect_element_CreateServiceA_password_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5013
0
{
5014
0
  offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_CreateServiceA_password__);
5015
5016
0
  return offset;
5017
0
}
5018
5019
static unsigned
5020
svcctl_dissect_element_CreateServiceA_password__(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5021
0
{
5022
0
  offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_CreateServiceA_password, 0);
5023
5024
0
  return offset;
5025
0
}
5026
5027
static unsigned
5028
svcctl_dissect_element_CreateServiceA_password_size(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5029
0
{
5030
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_CreateServiceA_password_size, 0);
5031
5032
0
  return offset;
5033
0
}
5034
5035
static unsigned
5036
svcctl_dissect_element_CreateServiceA_service_handle(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5037
0
{
5038
0
  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);
5039
5040
0
  return offset;
5041
0
}
5042
5043
static unsigned
5044
svcctl_dissect_element_CreateServiceA_service_handle_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5045
0
{
5046
0
  offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_CreateServiceA_service_handle, PIDL_POLHND_OPEN);
5047
5048
0
  return offset;
5049
0
}
5050
5051
/* IDL: WERROR svcctl_CreateServiceA( */
5052
/* IDL: [in] [ref] policy_handle *scm_handle, */
5053
/* IDL: [charset(ASCII)] [in] uint8 ServiceName[*], */
5054
/* IDL: [charset(ASCII)] [in] [unique(1)] uint8 *DisplayName, */
5055
/* IDL: [in] uint32 desired_access, */
5056
/* IDL: [in] svcctl_ServiceType service_type, */
5057
/* IDL: [in] svcctl_StartType start_type, */
5058
/* IDL: [in] svcctl_ErrorControl error_control, */
5059
/* IDL: [charset(ASCII)] [in] uint8 binary_path[*], */
5060
/* IDL: [charset(ASCII)] [in] [unique(1)] uint8 *LoadOrderGroupKey, */
5061
/* IDL: [in] [out] [unique(1)] uint32 *tag_id, */
5062
/* IDL: [flag(LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM)] [in] [size_is(dependencies_size)] [unique(1)] string *dependencies, */
5063
/* IDL: [in] uint32 dependencies_size, */
5064
/* IDL: [charset(ASCII)] [in] [unique(1)] uint8 *service_start_name, */
5065
/* IDL: [in] [size_is(password_size)] [unique(1)] uint8 *password, */
5066
/* IDL: [in] uint32 password_size, */
5067
/* IDL: [out] [ref] policy_handle *service_handle */
5068
/* IDL: ); */
5069
5070
static unsigned
5071
svcctl_dissect_CreateServiceA_response(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5072
0
{
5073
0
  uint32_t status;
5074
5075
0
  di->dcerpc_procedure_name="CreateServiceA";
5076
0
  offset = svcctl_dissect_element_CreateServiceA_tag_id(tvb, offset, pinfo, tree, di, drep);
5077
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
5078
5079
0
  offset = svcctl_dissect_element_CreateServiceA_service_handle(tvb, offset, pinfo, tree, di, drep);
5080
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
5081
5082
0
  offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_werror, &status);
5083
5084
0
  if (status != 0)
5085
0
    col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(pinfo->pool, status, &WERR_errors_ext, "Unknown DOS error 0x%08x"));
5086
5087
0
  return offset;
5088
0
}
5089
5090
static unsigned
5091
svcctl_dissect_CreateServiceA_request(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5092
0
{
5093
0
  di->dcerpc_procedure_name="CreateServiceA";
5094
0
  offset = svcctl_dissect_element_CreateServiceA_scm_handle(tvb, offset, pinfo, tree, di, drep);
5095
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
5096
0
  offset = svcctl_dissect_element_CreateServiceA_ServiceName(tvb, offset, pinfo, tree, di, drep);
5097
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
5098
0
  offset = svcctl_dissect_element_CreateServiceA_DisplayName(tvb, offset, pinfo, tree, di, drep);
5099
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
5100
0
  offset = svcctl_dissect_element_CreateServiceA_desired_access(tvb, offset, pinfo, tree, di, drep);
5101
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
5102
0
  offset = svcctl_dissect_element_CreateServiceA_service_type(tvb, offset, pinfo, tree, di, drep);
5103
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
5104
0
  offset = svcctl_dissect_element_CreateServiceA_start_type(tvb, offset, pinfo, tree, di, drep);
5105
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
5106
0
  offset = svcctl_dissect_element_CreateServiceA_error_control(tvb, offset, pinfo, tree, di, drep);
5107
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
5108
0
  offset = svcctl_dissect_element_CreateServiceA_binary_path(tvb, offset, pinfo, tree, di, drep);
5109
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
5110
0
  offset = svcctl_dissect_element_CreateServiceA_LoadOrderGroupKey(tvb, offset, pinfo, tree, di, drep);
5111
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
5112
0
  offset = svcctl_dissect_element_CreateServiceA_tag_id(tvb, offset, pinfo, tree, di, drep);
5113
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
5114
0
  offset = svcctl_dissect_element_CreateServiceA_dependencies(tvb, offset, pinfo, tree, di, drep);
5115
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
5116
0
  offset = svcctl_dissect_element_CreateServiceA_dependencies_size(tvb, offset, pinfo, tree, di, drep);
5117
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
5118
0
  offset = svcctl_dissect_element_CreateServiceA_service_start_name(tvb, offset, pinfo, tree, di, drep);
5119
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
5120
0
  offset = svcctl_dissect_element_CreateServiceA_password(tvb, offset, pinfo, tree, di, drep);
5121
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
5122
0
  offset = svcctl_dissect_element_CreateServiceA_password_size(tvb, offset, pinfo, tree, di, drep);
5123
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
5124
0
  return offset;
5125
0
}
5126
5127
static unsigned
5128
svcctl_dissect_element_EnumDependentServicesA_service_handle(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5129
0
{
5130
0
  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);
5131
5132
0
  return offset;
5133
0
}
5134
5135
static unsigned
5136
svcctl_dissect_element_EnumDependentServicesA_service_handle_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5137
0
{
5138
0
  offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_EnumDependentServicesA_service_handle, 0);
5139
5140
0
  return offset;
5141
0
}
5142
5143
static unsigned
5144
svcctl_dissect_element_EnumDependentServicesA_state(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5145
0
{
5146
0
  offset = svcctl_dissect_enum_ServiceState(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_EnumDependentServicesA_state, 0);
5147
5148
0
  return offset;
5149
0
}
5150
5151
static unsigned
5152
svcctl_dissect_element_EnumDependentServicesA_service_status(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5153
0
{
5154
0
  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);
5155
5156
0
  return offset;
5157
0
}
5158
5159
static unsigned
5160
svcctl_dissect_element_EnumDependentServicesA_service_status_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5161
0
{
5162
0
  offset = svcctl_dissect_struct_ENUM_SERVICE_STATUSA(tvb,offset,pinfo,tree,di,drep,hf_svcctl_svcctl_EnumDependentServicesA_service_status,0);
5163
5164
0
  return offset;
5165
0
}
5166
5167
static unsigned
5168
svcctl_dissect_element_EnumDependentServicesA_offered(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5169
0
{
5170
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_EnumDependentServicesA_offered, 0);
5171
5172
0
  return offset;
5173
0
}
5174
5175
static unsigned
5176
svcctl_dissect_element_EnumDependentServicesA_needed(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5177
0
{
5178
0
  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);
5179
5180
0
  return offset;
5181
0
}
5182
5183
static unsigned
5184
svcctl_dissect_element_EnumDependentServicesA_needed_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5185
0
{
5186
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_EnumDependentServicesA_needed, 0);
5187
5188
0
  return offset;
5189
0
}
5190
5191
static unsigned
5192
svcctl_dissect_element_EnumDependentServicesA_services_returned(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5193
0
{
5194
0
  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);
5195
5196
0
  return offset;
5197
0
}
5198
5199
static unsigned
5200
svcctl_dissect_element_EnumDependentServicesA_services_returned_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5201
0
{
5202
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_EnumDependentServicesA_services_returned, 0);
5203
5204
0
  return offset;
5205
0
}
5206
5207
/* IDL: WERROR svcctl_EnumDependentServicesA( */
5208
/* IDL: [in] [ref] policy_handle *service_handle, */
5209
/* IDL: [in] svcctl_ServiceState state, */
5210
/* IDL: [out] [ref] ENUM_SERVICE_STATUSA *service_status, */
5211
/* IDL: [in] uint32 offered, */
5212
/* IDL: [out] [ref] uint32 *needed, */
5213
/* IDL: [out] [ref] uint32 *services_returned */
5214
/* IDL: ); */
5215
5216
static unsigned
5217
svcctl_dissect_EnumDependentServicesA_response(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5218
0
{
5219
0
  uint32_t status;
5220
5221
0
  di->dcerpc_procedure_name="EnumDependentServicesA";
5222
0
  offset = svcctl_dissect_element_EnumDependentServicesA_service_status(tvb, offset, pinfo, tree, di, drep);
5223
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
5224
5225
0
  offset = svcctl_dissect_element_EnumDependentServicesA_needed(tvb, offset, pinfo, tree, di, drep);
5226
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
5227
5228
0
  offset = svcctl_dissect_element_EnumDependentServicesA_services_returned(tvb, offset, pinfo, tree, di, drep);
5229
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
5230
5231
0
  offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_werror, &status);
5232
5233
0
  if (status != 0)
5234
0
    col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(pinfo->pool, status, &WERR_errors_ext, "Unknown DOS error 0x%08x"));
5235
5236
0
  return offset;
5237
0
}
5238
5239
static unsigned
5240
svcctl_dissect_EnumDependentServicesA_request(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5241
0
{
5242
0
  di->dcerpc_procedure_name="EnumDependentServicesA";
5243
0
  offset = svcctl_dissect_element_EnumDependentServicesA_service_handle(tvb, offset, pinfo, tree, di, drep);
5244
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
5245
0
  offset = svcctl_dissect_element_EnumDependentServicesA_state(tvb, offset, pinfo, tree, di, drep);
5246
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
5247
0
  offset = svcctl_dissect_element_EnumDependentServicesA_offered(tvb, offset, pinfo, tree, di, drep);
5248
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
5249
0
  return offset;
5250
0
}
5251
5252
static unsigned
5253
svcctl_dissect_element_EnumServicesStatusA_scm_handle(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5254
0
{
5255
0
  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);
5256
5257
0
  return offset;
5258
0
}
5259
5260
static unsigned
5261
svcctl_dissect_element_EnumServicesStatusA_scm_handle_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5262
0
{
5263
0
  offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_EnumServicesStatusA_scm_handle, 0);
5264
5265
0
  return offset;
5266
0
}
5267
5268
static unsigned
5269
svcctl_dissect_element_EnumServicesStatusA_service_type(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5270
0
{
5271
0
  offset = svcctl_dissect_enum_ServiceType(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_EnumServicesStatusA_service_type, 0);
5272
5273
0
  return offset;
5274
0
}
5275
5276
static unsigned
5277
svcctl_dissect_element_EnumServicesStatusA_service_state(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5278
0
{
5279
0
  offset = svcctl_dissect_enum_ServiceState(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_EnumServicesStatusA_service_state, 0);
5280
5281
0
  return offset;
5282
0
}
5283
5284
static unsigned
5285
svcctl_dissect_element_EnumServicesStatusA_offered(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5286
0
{
5287
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_EnumServicesStatusA_offered, 0);
5288
5289
0
  return offset;
5290
0
}
5291
5292
static unsigned
5293
svcctl_dissect_element_EnumServicesStatusA_service(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5294
0
{
5295
0
  offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_EnumServicesStatusA_service_);
5296
5297
0
  return offset;
5298
0
}
5299
5300
static unsigned
5301
svcctl_dissect_element_EnumServicesStatusA_service_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5302
0
{
5303
0
  offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_EnumServicesStatusA_service, 0);
5304
5305
0
  return offset;
5306
0
}
5307
5308
static unsigned
5309
svcctl_dissect_element_EnumServicesStatusA_needed(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5310
0
{
5311
0
  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);
5312
5313
0
  return offset;
5314
0
}
5315
5316
static unsigned
5317
svcctl_dissect_element_EnumServicesStatusA_needed_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5318
0
{
5319
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_EnumServicesStatusA_needed, 0);
5320
5321
0
  return offset;
5322
0
}
5323
5324
static unsigned
5325
svcctl_dissect_element_EnumServicesStatusA_services_returned(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5326
0
{
5327
0
  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);
5328
5329
0
  return offset;
5330
0
}
5331
5332
static unsigned
5333
svcctl_dissect_element_EnumServicesStatusA_services_returned_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5334
0
{
5335
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_EnumServicesStatusA_services_returned, 0);
5336
5337
0
  return offset;
5338
0
}
5339
5340
static unsigned
5341
svcctl_dissect_element_EnumServicesStatusA_resume_handle(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5342
0
{
5343
0
  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);
5344
5345
0
  return offset;
5346
0
}
5347
5348
static unsigned
5349
svcctl_dissect_element_EnumServicesStatusA_resume_handle_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5350
0
{
5351
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_EnumServicesStatusA_resume_handle, 0);
5352
5353
0
  return offset;
5354
0
}
5355
5356
/* IDL: WERROR svcctl_EnumServicesStatusA( */
5357
/* IDL: [in] [ref] policy_handle *scm_handle, */
5358
/* IDL: [in] svcctl_ServiceType service_type, */
5359
/* IDL: [in] svcctl_ServiceState service_state, */
5360
/* IDL: [in] uint32 offered, */
5361
/* IDL: [out] [size_is(offered)] uint8 service[*], */
5362
/* IDL: [out] [ref] uint32 *needed, */
5363
/* IDL: [out] [ref] uint32 *services_returned, */
5364
/* IDL: [in] [out] [unique(1)] uint32 *resume_handle */
5365
/* IDL: ); */
5366
5367
static unsigned
5368
svcctl_dissect_EnumServicesStatusA_response(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5369
0
{
5370
0
  uint32_t status;
5371
5372
0
  di->dcerpc_procedure_name="EnumServicesStatusA";
5373
0
  offset = svcctl_dissect_element_EnumServicesStatusA_service(tvb, offset, pinfo, tree, di, drep);
5374
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
5375
5376
0
  offset = svcctl_dissect_element_EnumServicesStatusA_needed(tvb, offset, pinfo, tree, di, drep);
5377
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
5378
5379
0
  offset = svcctl_dissect_element_EnumServicesStatusA_services_returned(tvb, offset, pinfo, tree, di, drep);
5380
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
5381
5382
0
  offset = svcctl_dissect_element_EnumServicesStatusA_resume_handle(tvb, offset, pinfo, tree, di, drep);
5383
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
5384
5385
0
  offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_werror, &status);
5386
5387
0
  if (status != 0)
5388
0
    col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(pinfo->pool, status, &WERR_errors_ext, "Unknown DOS error 0x%08x"));
5389
5390
0
  return offset;
5391
0
}
5392
5393
static unsigned
5394
svcctl_dissect_EnumServicesStatusA_request(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5395
0
{
5396
0
  di->dcerpc_procedure_name="EnumServicesStatusA";
5397
0
  offset = svcctl_dissect_element_EnumServicesStatusA_scm_handle(tvb, offset, pinfo, tree, di, drep);
5398
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
5399
0
  offset = svcctl_dissect_element_EnumServicesStatusA_service_type(tvb, offset, pinfo, tree, di, drep);
5400
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
5401
0
  offset = svcctl_dissect_element_EnumServicesStatusA_service_state(tvb, offset, pinfo, tree, di, drep);
5402
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
5403
0
  offset = svcctl_dissect_element_EnumServicesStatusA_offered(tvb, offset, pinfo, tree, di, drep);
5404
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
5405
0
  offset = svcctl_dissect_element_EnumServicesStatusA_resume_handle(tvb, offset, pinfo, tree, di, drep);
5406
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
5407
0
  return offset;
5408
0
}
5409
5410
static unsigned
5411
svcctl_dissect_element_OpenSCManagerA_MachineName(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5412
0
{
5413
0
  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);
5414
5415
0
  return offset;
5416
0
}
5417
5418
static unsigned
5419
svcctl_dissect_element_OpenSCManagerA_MachineName_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5420
0
{
5421
0
  char *data;
5422
5423
0
  offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(uint8_t), hf_svcctl_svcctl_OpenSCManagerA_MachineName, false, &data);
5424
0
  proto_item_append_text(tree, ": %s", data);
5425
5426
0
  return offset;
5427
0
}
5428
5429
static unsigned
5430
svcctl_dissect_element_OpenSCManagerA_DatabaseName(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5431
0
{
5432
0
  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);
5433
5434
0
  return offset;
5435
0
}
5436
5437
static unsigned
5438
svcctl_dissect_element_OpenSCManagerA_DatabaseName_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5439
0
{
5440
0
  char *data;
5441
5442
0
  offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(uint8_t), hf_svcctl_svcctl_OpenSCManagerA_DatabaseName, false, &data);
5443
0
  proto_item_append_text(tree, ": %s", data);
5444
5445
0
  return offset;
5446
0
}
5447
5448
static unsigned
5449
svcctl_dissect_element_OpenSCManagerA_access_mask(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5450
0
{
5451
0
  offset = svcctl_dissect_bitmap_MgrAccessMask(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_OpenSCManagerA_access_mask, 0);
5452
5453
0
  return offset;
5454
0
}
5455
5456
static unsigned
5457
svcctl_dissect_element_OpenSCManagerA_scm_handle(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5458
0
{
5459
0
  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);
5460
5461
0
  return offset;
5462
0
}
5463
5464
static unsigned
5465
svcctl_dissect_element_OpenSCManagerA_scm_handle_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5466
0
{
5467
0
  offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_OpenSCManagerA_scm_handle, PIDL_POLHND_OPEN);
5468
5469
0
  return offset;
5470
0
}
5471
5472
/* IDL: WERROR svcctl_OpenSCManagerA( */
5473
/* IDL: [charset(ASCII)] [in] [unique(1)] uint8 *MachineName, */
5474
/* IDL: [charset(ASCII)] [in] [unique(1)] uint8 *DatabaseName, */
5475
/* IDL: [in] svcctl_MgrAccessMask access_mask, */
5476
/* IDL: [out] [ref] policy_handle *scm_handle */
5477
/* IDL: ); */
5478
5479
static unsigned
5480
svcctl_dissect_OpenSCManagerA_response(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5481
0
{
5482
0
  uint32_t status;
5483
5484
0
  di->dcerpc_procedure_name="OpenSCManagerA";
5485
0
  offset = svcctl_dissect_element_OpenSCManagerA_scm_handle(tvb, offset, pinfo, tree, di, drep);
5486
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
5487
5488
0
  offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_werror, &status);
5489
5490
0
  if (status != 0)
5491
0
    col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(pinfo->pool, status, &WERR_errors_ext, "Unknown DOS error 0x%08x"));
5492
5493
0
  return offset;
5494
0
}
5495
5496
static unsigned
5497
svcctl_dissect_OpenSCManagerA_request(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5498
0
{
5499
0
  di->dcerpc_procedure_name="OpenSCManagerA";
5500
0
  offset = svcctl_dissect_element_OpenSCManagerA_MachineName(tvb, offset, pinfo, tree, di, drep);
5501
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
5502
0
  offset = svcctl_dissect_element_OpenSCManagerA_DatabaseName(tvb, offset, pinfo, tree, di, drep);
5503
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
5504
0
  offset = svcctl_dissect_element_OpenSCManagerA_access_mask(tvb, offset, pinfo, tree, di, drep);
5505
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
5506
0
  return offset;
5507
0
}
5508
5509
static unsigned
5510
svcctl_dissect_element_OpenServiceA_scm_handle(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5511
0
{
5512
0
  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);
5513
5514
0
  return offset;
5515
0
}
5516
5517
static unsigned
5518
svcctl_dissect_element_OpenServiceA_scm_handle_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5519
0
{
5520
0
  offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_OpenServiceA_scm_handle, 0);
5521
5522
0
  return offset;
5523
0
}
5524
5525
static unsigned
5526
svcctl_dissect_element_OpenServiceA_ServiceName(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5527
0
{
5528
0
  char *data;
5529
5530
0
  offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(uint8_t), hf_svcctl_svcctl_OpenServiceA_ServiceName, false, &data);
5531
0
  proto_item_append_text(tree, ": %s", data);
5532
5533
0
  return offset;
5534
0
}
5535
5536
static unsigned
5537
svcctl_dissect_element_OpenServiceA_access_mask(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5538
0
{
5539
0
  offset = svcctl_dissect_bitmap_MgrAccessMask(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_OpenServiceA_access_mask, 0);
5540
5541
0
  return offset;
5542
0
}
5543
5544
static unsigned
5545
svcctl_dissect_element_OpenServiceA_service_handle(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5546
0
{
5547
0
  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);
5548
5549
0
  return offset;
5550
0
}
5551
5552
static unsigned
5553
svcctl_dissect_element_OpenServiceA_service_handle_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5554
0
{
5555
0
  offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_OpenServiceA_service_handle, PIDL_POLHND_OPEN);
5556
5557
0
  return offset;
5558
0
}
5559
5560
/* IDL: WERROR svcctl_OpenServiceA( */
5561
/* IDL: [in] [ref] policy_handle *scm_handle, */
5562
/* IDL: [charset(ASCII)] [in] uint8 ServiceName[*], */
5563
/* IDL: [in] svcctl_MgrAccessMask access_mask, */
5564
/* IDL: [out] [ref] policy_handle *service_handle */
5565
/* IDL: ); */
5566
5567
static unsigned
5568
svcctl_dissect_OpenServiceA_response(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5569
0
{
5570
0
  uint32_t status;
5571
5572
0
  di->dcerpc_procedure_name="OpenServiceA";
5573
0
  offset = svcctl_dissect_element_OpenServiceA_service_handle(tvb, offset, pinfo, tree, di, drep);
5574
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
5575
5576
0
  offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_werror, &status);
5577
5578
0
  if (status != 0)
5579
0
    col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(pinfo->pool, status, &WERR_errors_ext, "Unknown DOS error 0x%08x"));
5580
5581
0
  return offset;
5582
0
}
5583
5584
static unsigned
5585
svcctl_dissect_OpenServiceA_request(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5586
0
{
5587
0
  di->dcerpc_procedure_name="OpenServiceA";
5588
0
  offset = svcctl_dissect_element_OpenServiceA_scm_handle(tvb, offset, pinfo, tree, di, drep);
5589
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
5590
0
  offset = svcctl_dissect_element_OpenServiceA_ServiceName(tvb, offset, pinfo, tree, di, drep);
5591
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
5592
0
  offset = svcctl_dissect_element_OpenServiceA_access_mask(tvb, offset, pinfo, tree, di, drep);
5593
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
5594
0
  return offset;
5595
0
}
5596
5597
static unsigned
5598
svcctl_dissect_element_QueryServiceConfigA_service_handle(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5599
0
{
5600
0
  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);
5601
5602
0
  return offset;
5603
0
}
5604
5605
static unsigned
5606
svcctl_dissect_element_QueryServiceConfigA_service_handle_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5607
0
{
5608
0
  offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_QueryServiceConfigA_service_handle, 0);
5609
5610
0
  return offset;
5611
0
}
5612
5613
static unsigned
5614
svcctl_dissect_element_QueryServiceConfigA_query(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5615
0
{
5616
0
  offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_QueryServiceConfigA_query_);
5617
5618
0
  return offset;
5619
0
}
5620
5621
static unsigned
5622
svcctl_dissect_element_QueryServiceConfigA_query_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5623
0
{
5624
0
  offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_QueryServiceConfigA_query, 0);
5625
5626
0
  return offset;
5627
0
}
5628
5629
static unsigned
5630
svcctl_dissect_element_QueryServiceConfigA_offered(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5631
0
{
5632
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_QueryServiceConfigA_offered, 0);
5633
5634
0
  return offset;
5635
0
}
5636
5637
static unsigned
5638
svcctl_dissect_element_QueryServiceConfigA_needed(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5639
0
{
5640
0
  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);
5641
5642
0
  return offset;
5643
0
}
5644
5645
static unsigned
5646
svcctl_dissect_element_QueryServiceConfigA_needed_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5647
0
{
5648
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_QueryServiceConfigA_needed, 0);
5649
5650
0
  return offset;
5651
0
}
5652
5653
/* IDL: WERROR svcctl_QueryServiceConfigA( */
5654
/* IDL: [in] [ref] policy_handle *service_handle, */
5655
/* IDL: [out] [size_is(cbBufSize)] uint8 query[*], */
5656
/* IDL: [in] uint32 offered, */
5657
/* IDL: [out] [ref] uint32 *needed */
5658
/* IDL: ); */
5659
5660
static unsigned
5661
svcctl_dissect_QueryServiceConfigA_response(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5662
0
{
5663
0
  uint32_t status;
5664
5665
0
  di->dcerpc_procedure_name="QueryServiceConfigA";
5666
0
  offset = svcctl_dissect_element_QueryServiceConfigA_query(tvb, offset, pinfo, tree, di, drep);
5667
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
5668
5669
0
  offset = svcctl_dissect_element_QueryServiceConfigA_needed(tvb, offset, pinfo, tree, di, drep);
5670
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
5671
5672
0
  offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_werror, &status);
5673
5674
0
  if (status != 0)
5675
0
    col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(pinfo->pool, status, &WERR_errors_ext, "Unknown DOS error 0x%08x"));
5676
5677
0
  return offset;
5678
0
}
5679
5680
static unsigned
5681
svcctl_dissect_QueryServiceConfigA_request(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5682
0
{
5683
0
  di->dcerpc_procedure_name="QueryServiceConfigA";
5684
0
  offset = svcctl_dissect_element_QueryServiceConfigA_service_handle(tvb, offset, pinfo, tree, di, drep);
5685
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
5686
0
  offset = svcctl_dissect_element_QueryServiceConfigA_offered(tvb, offset, pinfo, tree, di, drep);
5687
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
5688
0
  return offset;
5689
0
}
5690
5691
static unsigned
5692
svcctl_dissect_element_QueryServiceLockStatusA_scm_handle(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5693
0
{
5694
0
  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);
5695
5696
0
  return offset;
5697
0
}
5698
5699
static unsigned
5700
svcctl_dissect_element_QueryServiceLockStatusA_scm_handle_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5701
0
{
5702
0
  offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_QueryServiceLockStatusA_scm_handle, 0);
5703
5704
0
  return offset;
5705
0
}
5706
5707
static unsigned
5708
svcctl_dissect_element_QueryServiceLockStatusA_lock_status(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5709
0
{
5710
0
  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);
5711
5712
0
  return offset;
5713
0
}
5714
5715
static unsigned
5716
svcctl_dissect_element_QueryServiceLockStatusA_lock_status_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5717
0
{
5718
0
  offset = svcctl_dissect_struct_SERVICE_LOCK_STATUS(tvb,offset,pinfo,tree,di,drep,hf_svcctl_svcctl_QueryServiceLockStatusA_lock_status,0);
5719
5720
0
  return offset;
5721
0
}
5722
5723
static unsigned
5724
svcctl_dissect_element_QueryServiceLockStatusA_offered(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5725
0
{
5726
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_QueryServiceLockStatusA_offered, 0);
5727
5728
0
  return offset;
5729
0
}
5730
5731
static unsigned
5732
svcctl_dissect_element_QueryServiceLockStatusA_needed(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5733
0
{
5734
0
  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);
5735
5736
0
  return offset;
5737
0
}
5738
5739
static unsigned
5740
svcctl_dissect_element_QueryServiceLockStatusA_needed_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5741
0
{
5742
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_QueryServiceLockStatusA_needed, 0);
5743
5744
0
  return offset;
5745
0
}
5746
5747
/* IDL: WERROR svcctl_QueryServiceLockStatusA( */
5748
/* IDL: [in] [ref] policy_handle *scm_handle, */
5749
/* IDL: [out] [ref] SERVICE_LOCK_STATUS *lock_status, */
5750
/* IDL: [in] uint32 offered, */
5751
/* IDL: [out] [ref] uint32 *needed */
5752
/* IDL: ); */
5753
5754
static unsigned
5755
svcctl_dissect_QueryServiceLockStatusA_response(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5756
0
{
5757
0
  uint32_t status;
5758
5759
0
  di->dcerpc_procedure_name="QueryServiceLockStatusA";
5760
0
  offset = svcctl_dissect_element_QueryServiceLockStatusA_lock_status(tvb, offset, pinfo, tree, di, drep);
5761
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
5762
5763
0
  offset = svcctl_dissect_element_QueryServiceLockStatusA_needed(tvb, offset, pinfo, tree, di, drep);
5764
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
5765
5766
0
  offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_werror, &status);
5767
5768
0
  if (status != 0)
5769
0
    col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(pinfo->pool, status, &WERR_errors_ext, "Unknown DOS error 0x%08x"));
5770
5771
0
  return offset;
5772
0
}
5773
5774
static unsigned
5775
svcctl_dissect_QueryServiceLockStatusA_request(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5776
0
{
5777
0
  di->dcerpc_procedure_name="QueryServiceLockStatusA";
5778
0
  offset = svcctl_dissect_element_QueryServiceLockStatusA_scm_handle(tvb, offset, pinfo, tree, di, drep);
5779
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
5780
0
  offset = svcctl_dissect_element_QueryServiceLockStatusA_offered(tvb, offset, pinfo, tree, di, drep);
5781
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
5782
0
  return offset;
5783
0
}
5784
5785
static unsigned
5786
svcctl_dissect_element_StartServiceA_service_handle(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5787
0
{
5788
0
  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);
5789
5790
0
  return offset;
5791
0
}
5792
5793
static unsigned
5794
svcctl_dissect_element_StartServiceA_service_handle_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5795
0
{
5796
0
  offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_StartServiceA_service_handle, 0);
5797
5798
0
  return offset;
5799
0
}
5800
5801
static unsigned
5802
svcctl_dissect_element_StartServiceA_NumArgs(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5803
0
{
5804
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_StartServiceA_NumArgs, 0);
5805
5806
0
  return offset;
5807
0
}
5808
5809
static unsigned
5810
svcctl_dissect_element_StartServiceA_Arguments(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5811
0
{
5812
0
  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);
5813
5814
0
  return offset;
5815
0
}
5816
5817
static unsigned
5818
svcctl_dissect_element_StartServiceA_Arguments_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5819
0
{
5820
0
  offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_StartServiceA_Arguments__);
5821
5822
0
  return offset;
5823
0
}
5824
5825
static unsigned
5826
svcctl_dissect_element_StartServiceA_Arguments__(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5827
0
{
5828
0
  offset = svcctl_dissect_struct_ArgumentStringA(tvb,offset,pinfo,tree,di,drep,hf_svcctl_svcctl_StartServiceA_Arguments,0);
5829
5830
0
  return offset;
5831
0
}
5832
5833
/* IDL: WERROR svcctl_StartServiceA( */
5834
/* IDL: [in] [ref] policy_handle *service_handle, */
5835
/* IDL: [in] uint32 NumArgs, */
5836
/* IDL: [in] [size_is(NumArgs)] [unique(1)] svcctl_ArgumentStringA *Arguments */
5837
/* IDL: ); */
5838
5839
static unsigned
5840
svcctl_dissect_StartServiceA_response(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5841
0
{
5842
0
  uint32_t status;
5843
5844
0
  di->dcerpc_procedure_name="StartServiceA";
5845
0
  offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_werror, &status);
5846
5847
0
  if (status != 0)
5848
0
    col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(pinfo->pool, status, &WERR_errors_ext, "Unknown DOS error 0x%08x"));
5849
5850
0
  return offset;
5851
0
}
5852
5853
static unsigned
5854
svcctl_dissect_StartServiceA_request(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5855
0
{
5856
0
  di->dcerpc_procedure_name="StartServiceA";
5857
0
  offset = svcctl_dissect_element_StartServiceA_service_handle(tvb, offset, pinfo, tree, di, drep);
5858
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
5859
0
  offset = svcctl_dissect_element_StartServiceA_NumArgs(tvb, offset, pinfo, tree, di, drep);
5860
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
5861
0
  offset = svcctl_dissect_element_StartServiceA_Arguments(tvb, offset, pinfo, tree, di, drep);
5862
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
5863
0
  return offset;
5864
0
}
5865
5866
static unsigned
5867
svcctl_dissect_element_GetServiceDisplayNameA_handle(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5868
0
{
5869
0
  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);
5870
5871
0
  return offset;
5872
0
}
5873
5874
static unsigned
5875
svcctl_dissect_element_GetServiceDisplayNameA_handle_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5876
0
{
5877
0
  offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_GetServiceDisplayNameA_handle, 0);
5878
5879
0
  return offset;
5880
0
}
5881
5882
static unsigned
5883
svcctl_dissect_element_GetServiceDisplayNameA_service_name(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5884
0
{
5885
0
  offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_GetServiceDisplayNameA_service_name_, NDR_POINTER_REF, "Pointer to Service Name (string)",hf_svcctl_svcctl_GetServiceDisplayNameA_service_name);
5886
5887
0
  return offset;
5888
0
}
5889
5890
static unsigned
5891
svcctl_dissect_element_GetServiceDisplayNameA_service_name_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5892
0
{
5893
0
  offset = dissect_null_term_string(tvb, offset, pinfo, tree, drep, hf_svcctl_svcctl_GetServiceDisplayNameA_service_name , 0);
5894
5895
0
  return offset;
5896
0
}
5897
5898
static unsigned
5899
svcctl_dissect_element_GetServiceDisplayNameA_display_name(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5900
0
{
5901
0
  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);
5902
5903
0
  return offset;
5904
0
}
5905
5906
static unsigned
5907
svcctl_dissect_element_GetServiceDisplayNameA_display_name_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5908
0
{
5909
0
  char *data;
5910
5911
0
  offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(uint8_t), hf_svcctl_svcctl_GetServiceDisplayNameA_display_name, false, &data);
5912
0
  proto_item_append_text(tree, ": %s", data);
5913
5914
0
  return offset;
5915
0
}
5916
5917
static unsigned
5918
svcctl_dissect_element_GetServiceDisplayNameA_display_name_length(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5919
0
{
5920
0
  offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_GetServiceDisplayNameA_display_name_length_, NDR_POINTER_REF, "Pointer to Display Name Length (uint32)",hf_svcctl_svcctl_GetServiceDisplayNameA_display_name_length);
5921
5922
0
  return offset;
5923
0
}
5924
5925
static unsigned
5926
svcctl_dissect_element_GetServiceDisplayNameA_display_name_length_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5927
0
{
5928
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_GetServiceDisplayNameA_display_name_length, 0);
5929
5930
0
  return offset;
5931
0
}
5932
5933
/* IDL: WERROR svcctl_GetServiceDisplayNameA( */
5934
/* IDL: [in] [ref] policy_handle *handle, */
5935
/* IDL: [flag(LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM)] [in] [range(0,SC_MAX_NAME_LENGTH)] [ref] string *service_name, */
5936
/* IDL: [charset(ASCII)] [out] [ref] [size_is(*display_name_length)] uint8 *display_name, */
5937
/* IDL: [in] [out] [ref] uint32 *display_name_length */
5938
/* IDL: ); */
5939
5940
static unsigned
5941
svcctl_dissect_GetServiceDisplayNameA_response(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5942
0
{
5943
0
  uint32_t status;
5944
5945
0
  di->dcerpc_procedure_name="GetServiceDisplayNameA";
5946
0
  offset = svcctl_dissect_element_GetServiceDisplayNameA_display_name(tvb, offset, pinfo, tree, di, drep);
5947
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
5948
5949
0
  offset = svcctl_dissect_element_GetServiceDisplayNameA_display_name_length(tvb, offset, pinfo, tree, di, drep);
5950
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
5951
5952
0
  offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_werror, &status);
5953
5954
0
  if (status != 0)
5955
0
    col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(pinfo->pool, status, &WERR_errors_ext, "Unknown DOS error 0x%08x"));
5956
5957
0
  return offset;
5958
0
}
5959
5960
static unsigned
5961
svcctl_dissect_GetServiceDisplayNameA_request(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5962
0
{
5963
0
  di->dcerpc_procedure_name="GetServiceDisplayNameA";
5964
0
  offset = svcctl_dissect_element_GetServiceDisplayNameA_handle(tvb, offset, pinfo, tree, di, drep);
5965
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
5966
0
  offset = svcctl_dissect_element_GetServiceDisplayNameA_service_name(tvb, offset, pinfo, tree, di, drep);
5967
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
5968
0
  offset = svcctl_dissect_element_GetServiceDisplayNameA_display_name_length(tvb, offset, pinfo, tree, di, drep);
5969
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
5970
0
  return offset;
5971
0
}
5972
5973
static unsigned
5974
svcctl_dissect_element_GetServiceKeyNameA_scm_handle(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5975
0
{
5976
0
  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);
5977
5978
0
  return offset;
5979
0
}
5980
5981
static unsigned
5982
svcctl_dissect_element_GetServiceKeyNameA_scm_handle_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5983
0
{
5984
0
  offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_GetServiceKeyNameA_scm_handle, 0);
5985
5986
0
  return offset;
5987
0
}
5988
5989
static unsigned
5990
svcctl_dissect_element_GetServiceKeyNameA_service_name(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5991
0
{
5992
0
  offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_GetServiceKeyNameA_service_name_, NDR_POINTER_REF, "Pointer to Service Name (string)",hf_svcctl_svcctl_GetServiceKeyNameA_service_name);
5993
5994
0
  return offset;
5995
0
}
5996
5997
static unsigned
5998
svcctl_dissect_element_GetServiceKeyNameA_service_name_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5999
0
{
6000
0
  offset = dissect_null_term_string(tvb, offset, pinfo, tree, drep, hf_svcctl_svcctl_GetServiceKeyNameA_service_name , 0);
6001
6002
0
  return offset;
6003
0
}
6004
6005
static unsigned
6006
svcctl_dissect_element_GetServiceKeyNameA_key_name(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6007
0
{
6008
0
  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);
6009
6010
0
  return offset;
6011
0
}
6012
6013
static unsigned
6014
svcctl_dissect_element_GetServiceKeyNameA_key_name_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6015
0
{
6016
0
  char *data;
6017
6018
0
  offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(uint8_t), hf_svcctl_svcctl_GetServiceKeyNameA_key_name, false, &data);
6019
0
  proto_item_append_text(tree, ": %s", data);
6020
6021
0
  return offset;
6022
0
}
6023
6024
static unsigned
6025
svcctl_dissect_element_GetServiceKeyNameA_key_name_length(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6026
0
{
6027
0
  offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_GetServiceKeyNameA_key_name_length_, NDR_POINTER_REF, "Pointer to Key Name Length (uint32)",hf_svcctl_svcctl_GetServiceKeyNameA_key_name_length);
6028
6029
0
  return offset;
6030
0
}
6031
6032
static unsigned
6033
svcctl_dissect_element_GetServiceKeyNameA_key_name_length_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6034
0
{
6035
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_GetServiceKeyNameA_key_name_length, 0);
6036
6037
0
  return offset;
6038
0
}
6039
6040
/* IDL: WERROR svcctl_GetServiceKeyNameA( */
6041
/* IDL: [in] [ref] policy_handle *scm_handle, */
6042
/* IDL: [flag(LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM)] [in] [range(0,SC_MAX_NAME_LENGTH)] [ref] string *service_name, */
6043
/* IDL: [charset(ASCII)] [out] [ref] [size_is(*key_name_length)] uint8 *key_name, */
6044
/* IDL: [in] [out] [ref] uint32 *key_name_length */
6045
/* IDL: ); */
6046
6047
static unsigned
6048
svcctl_dissect_GetServiceKeyNameA_response(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6049
0
{
6050
0
  uint32_t status;
6051
6052
0
  di->dcerpc_procedure_name="GetServiceKeyNameA";
6053
0
  offset = svcctl_dissect_element_GetServiceKeyNameA_key_name(tvb, offset, pinfo, tree, di, drep);
6054
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
6055
6056
0
  offset = svcctl_dissect_element_GetServiceKeyNameA_key_name_length(tvb, offset, pinfo, tree, di, drep);
6057
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
6058
6059
0
  offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_werror, &status);
6060
6061
0
  if (status != 0)
6062
0
    col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(pinfo->pool, status, &WERR_errors_ext, "Unknown DOS error 0x%08x"));
6063
6064
0
  return offset;
6065
0
}
6066
6067
static unsigned
6068
svcctl_dissect_GetServiceKeyNameA_request(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6069
0
{
6070
0
  di->dcerpc_procedure_name="GetServiceKeyNameA";
6071
0
  offset = svcctl_dissect_element_GetServiceKeyNameA_scm_handle(tvb, offset, pinfo, tree, di, drep);
6072
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
6073
0
  offset = svcctl_dissect_element_GetServiceKeyNameA_service_name(tvb, offset, pinfo, tree, di, drep);
6074
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
6075
0
  offset = svcctl_dissect_element_GetServiceKeyNameA_key_name_length(tvb, offset, pinfo, tree, di, drep);
6076
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
6077
0
  return offset;
6078
0
}
6079
6080
static unsigned
6081
svcctl_dissect_element_GetCurrentGroupeStateW_handle(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6082
0
{
6083
0
  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);
6084
6085
0
  return offset;
6086
0
}
6087
6088
static unsigned
6089
svcctl_dissect_element_GetCurrentGroupeStateW_handle_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6090
0
{
6091
0
  offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_GetCurrentGroupeStateW_handle, 0);
6092
6093
0
  return offset;
6094
0
}
6095
6096
static unsigned
6097
svcctl_dissect_element_GetCurrentGroupeStateW_lpLoadOrderGroup(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6098
0
{
6099
0
  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);
6100
6101
0
  return offset;
6102
0
}
6103
6104
static unsigned
6105
svcctl_dissect_element_GetCurrentGroupeStateW_lpLoadOrderGroup_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6106
0
{
6107
0
  char *data;
6108
6109
0
  offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(uint16_t), hf_svcctl_svcctl_GetCurrentGroupeStateW_lpLoadOrderGroup, false, &data);
6110
0
  proto_item_append_text(tree, ": %s", data);
6111
6112
0
  return offset;
6113
0
}
6114
6115
static unsigned
6116
svcctl_dissect_element_GetCurrentGroupeStateW_state(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6117
0
{
6118
0
  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);
6119
6120
0
  return offset;
6121
0
}
6122
6123
static unsigned
6124
svcctl_dissect_element_GetCurrentGroupeStateW_state_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6125
0
{
6126
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_GetCurrentGroupeStateW_state, 0);
6127
6128
0
  return offset;
6129
0
}
6130
6131
/* IDL: WERROR svcctl_GetCurrentGroupeStateW( */
6132
/* IDL: [in] [ref] policy_handle *handle, */
6133
/* IDL: [charset(UTF16)] [in] [unique(1)] uint16 *lpLoadOrderGroup, */
6134
/* IDL: [out] [ref] uint32 *state */
6135
/* IDL: ); */
6136
6137
static unsigned
6138
svcctl_dissect_GetCurrentGroupeStateW_response(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6139
0
{
6140
0
  uint32_t status;
6141
6142
0
  di->dcerpc_procedure_name="GetCurrentGroupeStateW";
6143
0
  offset = svcctl_dissect_element_GetCurrentGroupeStateW_state(tvb, offset, pinfo, tree, di, drep);
6144
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
6145
6146
0
  offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_werror, &status);
6147
6148
0
  if (status != 0)
6149
0
    col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(pinfo->pool, status, &WERR_errors_ext, "Unknown DOS error 0x%08x"));
6150
6151
0
  return offset;
6152
0
}
6153
6154
static unsigned
6155
svcctl_dissect_GetCurrentGroupeStateW_request(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6156
0
{
6157
0
  di->dcerpc_procedure_name="GetCurrentGroupeStateW";
6158
0
  offset = svcctl_dissect_element_GetCurrentGroupeStateW_handle(tvb, offset, pinfo, tree, di, drep);
6159
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
6160
0
  offset = svcctl_dissect_element_GetCurrentGroupeStateW_lpLoadOrderGroup(tvb, offset, pinfo, tree, di, drep);
6161
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
6162
0
  return offset;
6163
0
}
6164
6165
static unsigned
6166
svcctl_dissect_element_EnumServiceGroupW_scm_handle(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6167
0
{
6168
0
  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);
6169
6170
0
  return offset;
6171
0
}
6172
6173
static unsigned
6174
svcctl_dissect_element_EnumServiceGroupW_scm_handle_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6175
0
{
6176
0
  offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_EnumServiceGroupW_scm_handle, 0);
6177
6178
0
  return offset;
6179
0
}
6180
6181
static unsigned
6182
svcctl_dissect_element_EnumServiceGroupW_service_type(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6183
0
{
6184
0
  offset = svcctl_dissect_enum_ServiceType(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_EnumServiceGroupW_service_type, 0);
6185
6186
0
  return offset;
6187
0
}
6188
6189
static unsigned
6190
svcctl_dissect_element_EnumServiceGroupW_service_state(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6191
0
{
6192
0
  offset = svcctl_dissect_enum_ServiceState(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_EnumServiceGroupW_service_state, 0);
6193
6194
0
  return offset;
6195
0
}
6196
6197
static unsigned
6198
svcctl_dissect_element_EnumServiceGroupW_lpBuffer(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6199
0
{
6200
0
  offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_EnumServiceGroupW_lpBuffer_);
6201
6202
0
  return offset;
6203
0
}
6204
6205
static unsigned
6206
svcctl_dissect_element_EnumServiceGroupW_lpBuffer_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6207
0
{
6208
0
  offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_EnumServiceGroupW_lpBuffer, 0);
6209
6210
0
  return offset;
6211
0
}
6212
6213
static unsigned
6214
svcctl_dissect_element_EnumServiceGroupW_cbBufSize(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6215
0
{
6216
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_EnumServiceGroupW_cbBufSize, 0);
6217
6218
0
  return offset;
6219
0
}
6220
6221
static unsigned
6222
svcctl_dissect_element_EnumServiceGroupW_pcbBytesNeeded(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6223
0
{
6224
0
  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);
6225
6226
0
  return offset;
6227
0
}
6228
6229
static unsigned
6230
svcctl_dissect_element_EnumServiceGroupW_pcbBytesNeeded_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6231
0
{
6232
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_EnumServiceGroupW_pcbBytesNeeded, 0);
6233
6234
0
  return offset;
6235
0
}
6236
6237
static unsigned
6238
svcctl_dissect_element_EnumServiceGroupW_lpServicesReturned(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6239
0
{
6240
0
  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);
6241
6242
0
  return offset;
6243
0
}
6244
6245
static unsigned
6246
svcctl_dissect_element_EnumServiceGroupW_lpServicesReturned_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6247
0
{
6248
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_EnumServiceGroupW_lpServicesReturned, 0);
6249
6250
0
  return offset;
6251
0
}
6252
6253
static unsigned
6254
svcctl_dissect_element_EnumServiceGroupW_ResumeIndex(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6255
0
{
6256
0
  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);
6257
6258
0
  return offset;
6259
0
}
6260
6261
static unsigned
6262
svcctl_dissect_element_EnumServiceGroupW_ResumeIndex_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6263
0
{
6264
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_EnumServiceGroupW_ResumeIndex, 0);
6265
6266
0
  return offset;
6267
0
}
6268
6269
static unsigned
6270
svcctl_dissect_element_EnumServiceGroupW_pszGroupName(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6271
0
{
6272
0
  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);
6273
6274
0
  return offset;
6275
0
}
6276
6277
static unsigned
6278
svcctl_dissect_element_EnumServiceGroupW_pszGroupName_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6279
0
{
6280
0
  char *data;
6281
6282
0
  offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(uint16_t), hf_svcctl_svcctl_EnumServiceGroupW_pszGroupName, false, &data);
6283
0
  proto_item_append_text(tree, ": %s", data);
6284
6285
0
  return offset;
6286
0
}
6287
6288
/* IDL: WERROR svcctl_EnumServiceGroupW( */
6289
/* IDL: [in] [ref] policy_handle *scm_handle, */
6290
/* IDL: [in] svcctl_ServiceType service_type, */
6291
/* IDL: [in] svcctl_ServiceState service_state, */
6292
/* IDL: [out] [size_is(cbBufSize)] uint8 lpBuffer[*], */
6293
/* IDL: [in] [range(0,1024*256)] uint32 cbBufSize, */
6294
/* IDL: [out] [range(0,1024*256)] [ref] uint32 *pcbBytesNeeded, */
6295
/* IDL: [out] [range(0,1024*256)] [ref] uint32 *lpServicesReturned, */
6296
/* IDL: [in] [out] [unique(1)] uint32 *ResumeIndex, */
6297
/* IDL: [charset(UTF16)] [in] [range(0,SC_MAX_NAME_LENGTH)] [unique(1)] uint16 *pszGroupName */
6298
/* IDL: ); */
6299
6300
static unsigned
6301
svcctl_dissect_EnumServiceGroupW_response(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6302
0
{
6303
0
  uint32_t status;
6304
6305
0
  di->dcerpc_procedure_name="EnumServiceGroupW";
6306
0
  offset = svcctl_dissect_element_EnumServiceGroupW_lpBuffer(tvb, offset, pinfo, tree, di, drep);
6307
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
6308
6309
0
  offset = svcctl_dissect_element_EnumServiceGroupW_pcbBytesNeeded(tvb, offset, pinfo, tree, di, drep);
6310
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
6311
6312
0
  offset = svcctl_dissect_element_EnumServiceGroupW_lpServicesReturned(tvb, offset, pinfo, tree, di, drep);
6313
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
6314
6315
0
  offset = svcctl_dissect_element_EnumServiceGroupW_ResumeIndex(tvb, offset, pinfo, tree, di, drep);
6316
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
6317
6318
0
  offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_werror, &status);
6319
6320
0
  if (status != 0)
6321
0
    col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(pinfo->pool, status, &WERR_errors_ext, "Unknown DOS error 0x%08x"));
6322
6323
0
  return offset;
6324
0
}
6325
6326
static unsigned
6327
svcctl_dissect_EnumServiceGroupW_request(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6328
0
{
6329
0
  di->dcerpc_procedure_name="EnumServiceGroupW";
6330
0
  offset = svcctl_dissect_element_EnumServiceGroupW_scm_handle(tvb, offset, pinfo, tree, di, drep);
6331
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
6332
0
  offset = svcctl_dissect_element_EnumServiceGroupW_service_type(tvb, offset, pinfo, tree, di, drep);
6333
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
6334
0
  offset = svcctl_dissect_element_EnumServiceGroupW_service_state(tvb, offset, pinfo, tree, di, drep);
6335
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
6336
0
  offset = svcctl_dissect_element_EnumServiceGroupW_cbBufSize(tvb, offset, pinfo, tree, di, drep);
6337
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
6338
0
  offset = svcctl_dissect_element_EnumServiceGroupW_ResumeIndex(tvb, offset, pinfo, tree, di, drep);
6339
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
6340
0
  offset = svcctl_dissect_element_EnumServiceGroupW_pszGroupName(tvb, offset, pinfo, tree, di, drep);
6341
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
6342
0
  return offset;
6343
0
}
6344
6345
static unsigned
6346
svcctl_dissect_element_ChangeServiceConfig2A_service_handle(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6347
0
{
6348
0
  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);
6349
6350
0
  return offset;
6351
0
}
6352
6353
static unsigned
6354
svcctl_dissect_element_ChangeServiceConfig2A_service_handle_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6355
0
{
6356
0
  offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_ChangeServiceConfig2A_service_handle, 0);
6357
6358
0
  return offset;
6359
0
}
6360
6361
static unsigned
6362
svcctl_dissect_element_ChangeServiceConfig2A_info_level(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6363
0
{
6364
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_ChangeServiceConfig2A_info_level, 0);
6365
6366
0
  return offset;
6367
0
}
6368
6369
static unsigned
6370
svcctl_dissect_element_ChangeServiceConfig2A_info(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6371
0
{
6372
0
  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);
6373
6374
0
  return offset;
6375
0
}
6376
6377
static unsigned
6378
svcctl_dissect_element_ChangeServiceConfig2A_info_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6379
0
{
6380
0
  offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_ChangeServiceConfig2A_info, 0);
6381
6382
0
  return offset;
6383
0
}
6384
6385
/* IDL: WERROR svcctl_ChangeServiceConfig2A( */
6386
/* IDL: [in] [ref] policy_handle *service_handle, */
6387
/* IDL: [in] uint32 info_level, */
6388
/* IDL: [in] [unique(1)] uint8 *info */
6389
/* IDL: ); */
6390
6391
static unsigned
6392
svcctl_dissect_ChangeServiceConfig2A_response(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6393
0
{
6394
0
  uint32_t status;
6395
6396
0
  di->dcerpc_procedure_name="ChangeServiceConfig2A";
6397
0
  offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_werror, &status);
6398
6399
0
  if (status != 0)
6400
0
    col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(pinfo->pool, status, &WERR_errors_ext, "Unknown DOS error 0x%08x"));
6401
6402
0
  return offset;
6403
0
}
6404
6405
static unsigned
6406
svcctl_dissect_ChangeServiceConfig2A_request(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6407
0
{
6408
0
  di->dcerpc_procedure_name="ChangeServiceConfig2A";
6409
0
  offset = svcctl_dissect_element_ChangeServiceConfig2A_service_handle(tvb, offset, pinfo, tree, di, drep);
6410
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
6411
0
  offset = svcctl_dissect_element_ChangeServiceConfig2A_info_level(tvb, offset, pinfo, tree, di, drep);
6412
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
6413
0
  offset = svcctl_dissect_element_ChangeServiceConfig2A_info(tvb, offset, pinfo, tree, di, drep);
6414
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
6415
0
  return offset;
6416
0
}
6417
6418
static unsigned
6419
svcctl_dissect_element_ChangeServiceConfig2W_handle(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6420
0
{
6421
0
  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);
6422
6423
0
  return offset;
6424
0
}
6425
6426
static unsigned
6427
svcctl_dissect_element_ChangeServiceConfig2W_handle_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6428
0
{
6429
0
  offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_ChangeServiceConfig2W_handle, 0);
6430
6431
0
  return offset;
6432
0
}
6433
6434
static unsigned
6435
svcctl_dissect_element_ChangeServiceConfig2W_info_level(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6436
0
{
6437
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_ChangeServiceConfig2W_info_level, 0);
6438
6439
0
  return offset;
6440
0
}
6441
6442
static unsigned
6443
svcctl_dissect_element_ChangeServiceConfig2W_info(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6444
0
{
6445
0
  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);
6446
6447
0
  return offset;
6448
0
}
6449
6450
static unsigned
6451
svcctl_dissect_element_ChangeServiceConfig2W_info_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6452
0
{
6453
0
  offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_ChangeServiceConfig2W_info, 0);
6454
6455
0
  return offset;
6456
0
}
6457
6458
/* IDL: WERROR svcctl_ChangeServiceConfig2W( */
6459
/* IDL: [in] [ref] policy_handle *handle, */
6460
/* IDL: [in] uint32 info_level, */
6461
/* IDL: [in] [unique(1)] uint8 *info */
6462
/* IDL: ); */
6463
6464
static unsigned
6465
svcctl_dissect_ChangeServiceConfig2W_response(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6466
0
{
6467
0
  uint32_t status;
6468
6469
0
  di->dcerpc_procedure_name="ChangeServiceConfig2W";
6470
0
  offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_werror, &status);
6471
6472
0
  if (status != 0)
6473
0
    col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(pinfo->pool, status, &WERR_errors_ext, "Unknown DOS error 0x%08x"));
6474
6475
0
  return offset;
6476
0
}
6477
6478
static unsigned
6479
svcctl_dissect_ChangeServiceConfig2W_request(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6480
0
{
6481
0
  di->dcerpc_procedure_name="ChangeServiceConfig2W";
6482
0
  offset = svcctl_dissect_element_ChangeServiceConfig2W_handle(tvb, offset, pinfo, tree, di, drep);
6483
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
6484
0
  offset = svcctl_dissect_element_ChangeServiceConfig2W_info_level(tvb, offset, pinfo, tree, di, drep);
6485
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
6486
0
  offset = svcctl_dissect_element_ChangeServiceConfig2W_info(tvb, offset, pinfo, tree, di, drep);
6487
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
6488
0
  return offset;
6489
0
}
6490
6491
static unsigned
6492
svcctl_dissect_element_QueryServiceConfig2A_handle(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6493
0
{
6494
0
  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);
6495
6496
0
  return offset;
6497
0
}
6498
6499
static unsigned
6500
svcctl_dissect_element_QueryServiceConfig2A_handle_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6501
0
{
6502
0
  offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_QueryServiceConfig2A_handle, 0);
6503
6504
0
  return offset;
6505
0
}
6506
6507
static unsigned
6508
svcctl_dissect_element_QueryServiceConfig2A_info_level(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6509
0
{
6510
0
  offset = svcctl_dissect_enum_ConfigLevel(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_QueryServiceConfig2A_info_level, 0);
6511
6512
0
  return offset;
6513
0
}
6514
6515
static unsigned
6516
svcctl_dissect_element_QueryServiceConfig2A_buffer(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6517
0
{
6518
0
  offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_QueryServiceConfig2A_buffer_);
6519
6520
0
  return offset;
6521
0
}
6522
6523
static unsigned
6524
svcctl_dissect_element_QueryServiceConfig2A_buffer_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6525
0
{
6526
0
  offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_QueryServiceConfig2A_buffer, 0);
6527
6528
0
  return offset;
6529
0
}
6530
6531
static unsigned
6532
svcctl_dissect_element_QueryServiceConfig2A_offered(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6533
0
{
6534
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_QueryServiceConfig2A_offered, 0);
6535
6536
0
  return offset;
6537
0
}
6538
6539
static unsigned
6540
svcctl_dissect_element_QueryServiceConfig2A_needed(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6541
0
{
6542
0
  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);
6543
6544
0
  return offset;
6545
0
}
6546
6547
static unsigned
6548
svcctl_dissect_element_QueryServiceConfig2A_needed_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6549
0
{
6550
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_QueryServiceConfig2A_needed, 0);
6551
6552
0
  return offset;
6553
0
}
6554
6555
/* IDL: WERROR svcctl_QueryServiceConfig2A( */
6556
/* IDL: [in] [ref] policy_handle *handle, */
6557
/* IDL: [in] svcctl_ConfigLevel info_level, */
6558
/* IDL: [out] [size_is(offered)] uint8 buffer[*], */
6559
/* IDL: [in] uint32 offered, */
6560
/* IDL: [out] [ref] uint32 *needed */
6561
/* IDL: ); */
6562
6563
static unsigned
6564
svcctl_dissect_QueryServiceConfig2A_response(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6565
0
{
6566
0
  uint32_t status;
6567
6568
0
  di->dcerpc_procedure_name="QueryServiceConfig2A";
6569
0
  offset = svcctl_dissect_element_QueryServiceConfig2A_buffer(tvb, offset, pinfo, tree, di, drep);
6570
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
6571
6572
0
  offset = svcctl_dissect_element_QueryServiceConfig2A_needed(tvb, offset, pinfo, tree, di, drep);
6573
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
6574
6575
0
  offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_werror, &status);
6576
6577
0
  if (status != 0)
6578
0
    col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(pinfo->pool, status, &WERR_errors_ext, "Unknown DOS error 0x%08x"));
6579
6580
0
  return offset;
6581
0
}
6582
6583
static unsigned
6584
svcctl_dissect_QueryServiceConfig2A_request(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6585
0
{
6586
0
  di->dcerpc_procedure_name="QueryServiceConfig2A";
6587
0
  offset = svcctl_dissect_element_QueryServiceConfig2A_handle(tvb, offset, pinfo, tree, di, drep);
6588
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
6589
0
  offset = svcctl_dissect_element_QueryServiceConfig2A_info_level(tvb, offset, pinfo, tree, di, drep);
6590
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
6591
0
  offset = svcctl_dissect_element_QueryServiceConfig2A_offered(tvb, offset, pinfo, tree, di, drep);
6592
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
6593
0
  return offset;
6594
0
}
6595
6596
static unsigned
6597
svcctl_dissect_element_QueryServiceConfig2W_handle(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6598
0
{
6599
0
  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);
6600
6601
0
  return offset;
6602
0
}
6603
6604
static unsigned
6605
svcctl_dissect_element_QueryServiceConfig2W_handle_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6606
0
{
6607
0
  offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_QueryServiceConfig2W_handle, 0);
6608
6609
0
  return offset;
6610
0
}
6611
6612
static unsigned
6613
svcctl_dissect_element_QueryServiceConfig2W_info_level(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6614
0
{
6615
0
  offset = svcctl_dissect_enum_ConfigLevel(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_QueryServiceConfig2W_info_level, 0);
6616
6617
0
  return offset;
6618
0
}
6619
6620
static unsigned
6621
svcctl_dissect_element_QueryServiceConfig2W_buffer(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6622
0
{
6623
0
  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);
6624
6625
0
  return offset;
6626
0
}
6627
6628
static unsigned
6629
svcctl_dissect_element_QueryServiceConfig2W_buffer_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6630
0
{
6631
0
  offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_QueryServiceConfig2W_buffer__);
6632
6633
0
  return offset;
6634
0
}
6635
6636
static unsigned
6637
svcctl_dissect_element_QueryServiceConfig2W_buffer__(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6638
0
{
6639
0
  offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_QueryServiceConfig2W_buffer, 0);
6640
6641
0
  return offset;
6642
0
}
6643
6644
static unsigned
6645
svcctl_dissect_element_QueryServiceConfig2W_offered(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6646
0
{
6647
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_QueryServiceConfig2W_offered, 0);
6648
6649
0
  return offset;
6650
0
}
6651
6652
static unsigned
6653
svcctl_dissect_element_QueryServiceConfig2W_needed(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6654
0
{
6655
0
  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);
6656
6657
0
  return offset;
6658
0
}
6659
6660
static unsigned
6661
svcctl_dissect_element_QueryServiceConfig2W_needed_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6662
0
{
6663
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_QueryServiceConfig2W_needed, 0);
6664
6665
0
  return offset;
6666
0
}
6667
6668
/* IDL: WERROR svcctl_QueryServiceConfig2W( */
6669
/* IDL: [in] [ref] policy_handle *handle, */
6670
/* IDL: [in] svcctl_ConfigLevel info_level, */
6671
/* IDL: [out] [ref] [size_is(offered)] uint8 *buffer, */
6672
/* IDL: [in] [range(0,8192)] uint32 offered, */
6673
/* IDL: [out] [range(0,8192)] [ref] uint32 *needed */
6674
/* IDL: ); */
6675
6676
static unsigned
6677
svcctl_dissect_QueryServiceConfig2W_response(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6678
0
{
6679
0
  uint32_t status;
6680
6681
0
  di->dcerpc_procedure_name="QueryServiceConfig2W";
6682
0
  offset = svcctl_dissect_element_QueryServiceConfig2W_buffer(tvb, offset, pinfo, tree, di, drep);
6683
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
6684
6685
0
  offset = svcctl_dissect_element_QueryServiceConfig2W_needed(tvb, offset, pinfo, tree, di, drep);
6686
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
6687
6688
0
  offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_werror, &status);
6689
6690
0
  if (status != 0)
6691
0
    col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(pinfo->pool, status, &WERR_errors_ext, "Unknown DOS error 0x%08x"));
6692
6693
0
  return offset;
6694
0
}
6695
6696
static unsigned
6697
svcctl_dissect_QueryServiceConfig2W_request(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6698
0
{
6699
0
  di->dcerpc_procedure_name="QueryServiceConfig2W";
6700
0
  offset = svcctl_dissect_element_QueryServiceConfig2W_handle(tvb, offset, pinfo, tree, di, drep);
6701
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
6702
0
  offset = svcctl_dissect_element_QueryServiceConfig2W_info_level(tvb, offset, pinfo, tree, di, drep);
6703
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
6704
0
  offset = svcctl_dissect_element_QueryServiceConfig2W_offered(tvb, offset, pinfo, tree, di, drep);
6705
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
6706
0
  return offset;
6707
0
}
6708
6709
static unsigned
6710
svcctl_dissect_element_QueryServiceStatusEx_handle(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6711
0
{
6712
0
  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);
6713
6714
0
  return offset;
6715
0
}
6716
6717
static unsigned
6718
svcctl_dissect_element_QueryServiceStatusEx_handle_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6719
0
{
6720
0
  offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_QueryServiceStatusEx_handle, 0);
6721
6722
0
  return offset;
6723
0
}
6724
6725
static unsigned
6726
svcctl_dissect_element_QueryServiceStatusEx_info_level(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6727
0
{
6728
0
  offset = svcctl_dissect_enum_StatusLevel(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_QueryServiceStatusEx_info_level, 0);
6729
6730
0
  return offset;
6731
0
}
6732
6733
static unsigned
6734
svcctl_dissect_element_QueryServiceStatusEx_buffer(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6735
0
{
6736
0
  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);
6737
6738
0
  return offset;
6739
0
}
6740
6741
static unsigned
6742
svcctl_dissect_element_QueryServiceStatusEx_buffer_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6743
0
{
6744
0
  offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_QueryServiceStatusEx_buffer__);
6745
6746
0
  return offset;
6747
0
}
6748
6749
static unsigned
6750
svcctl_dissect_element_QueryServiceStatusEx_buffer__(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6751
0
{
6752
0
  offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_QueryServiceStatusEx_buffer, 0);
6753
6754
0
  return offset;
6755
0
}
6756
6757
static unsigned
6758
svcctl_dissect_element_QueryServiceStatusEx_offered(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6759
0
{
6760
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_QueryServiceStatusEx_offered, 0);
6761
6762
0
  return offset;
6763
0
}
6764
6765
static unsigned
6766
svcctl_dissect_element_QueryServiceStatusEx_needed(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6767
0
{
6768
0
  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);
6769
6770
0
  return offset;
6771
0
}
6772
6773
static unsigned
6774
svcctl_dissect_element_QueryServiceStatusEx_needed_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6775
0
{
6776
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_QueryServiceStatusEx_needed, 0);
6777
6778
0
  return offset;
6779
0
}
6780
6781
/* IDL: WERROR svcctl_QueryServiceStatusEx( */
6782
/* IDL: [in] [ref] policy_handle *handle, */
6783
/* IDL: [in] svcctl_StatusLevel info_level, */
6784
/* IDL: [out] [ref] [size_is(offered)] uint8 *buffer, */
6785
/* IDL: [in] [range(0,8192)] uint32 offered, */
6786
/* IDL: [out] [range(0,8192)] [ref] uint32 *needed */
6787
/* IDL: ); */
6788
6789
static unsigned
6790
svcctl_dissect_QueryServiceStatusEx_response(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6791
0
{
6792
0
  uint32_t status;
6793
6794
0
  di->dcerpc_procedure_name="QueryServiceStatusEx";
6795
0
  offset = svcctl_dissect_element_QueryServiceStatusEx_buffer(tvb, offset, pinfo, tree, di, drep);
6796
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
6797
6798
0
  offset = svcctl_dissect_element_QueryServiceStatusEx_needed(tvb, offset, pinfo, tree, di, drep);
6799
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
6800
6801
0
  offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_werror, &status);
6802
6803
0
  if (status != 0)
6804
0
    col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(pinfo->pool, status, &WERR_errors_ext, "Unknown DOS error 0x%08x"));
6805
6806
0
  return offset;
6807
0
}
6808
6809
static unsigned
6810
svcctl_dissect_QueryServiceStatusEx_request(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6811
0
{
6812
0
  di->dcerpc_procedure_name="QueryServiceStatusEx";
6813
0
  offset = svcctl_dissect_element_QueryServiceStatusEx_handle(tvb, offset, pinfo, tree, di, drep);
6814
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
6815
0
  offset = svcctl_dissect_element_QueryServiceStatusEx_info_level(tvb, offset, pinfo, tree, di, drep);
6816
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
6817
0
  offset = svcctl_dissect_element_QueryServiceStatusEx_offered(tvb, offset, pinfo, tree, di, drep);
6818
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
6819
0
  return offset;
6820
0
}
6821
6822
static unsigned
6823
svcctl_dissect_element_EnumServicesStatusExA_scm_handle(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6824
0
{
6825
0
  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);
6826
6827
0
  return offset;
6828
0
}
6829
6830
static unsigned
6831
svcctl_dissect_element_EnumServicesStatusExA_scm_handle_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6832
0
{
6833
0
  offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_svcctl_EnumServicesStatusExA_scm_handle, 0);
6834
6835
0
  return offset;
6836
0
}
6837
6838
static unsigned
6839
svcctl_dissect_element_EnumServicesStatusExA_info_level(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6840
0
{
6841
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_EnumServicesStatusExA_info_level, 0);
6842
6843
0
  return offset;
6844
0
}
6845
6846
static unsigned
6847
svcctl_dissect_element_EnumServicesStatusExA_service_type(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6848
0
{
6849
0
  offset = svcctl_dissect_enum_ServiceType(tvb, offset, pinfo, tree, di, drep, hf_svcctl_EnumServicesStatusExA_service_type, 0);
6850
6851
0
  return offset;
6852
0
}
6853
6854
static unsigned
6855
svcctl_dissect_element_EnumServicesStatusExA_state(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6856
0
{
6857
0
  offset = svcctl_dissect_enum_ServiceState(tvb, offset, pinfo, tree, di, drep, hf_svcctl_EnumServicesStatusExA_state, 0);
6858
6859
0
  return offset;
6860
0
}
6861
6862
static unsigned
6863
svcctl_dissect_element_EnumServicesStatusExA_services(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6864
0
{
6865
0
  offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_EnumServicesStatusExA_services_);
6866
6867
0
  return offset;
6868
0
}
6869
6870
static unsigned
6871
svcctl_dissect_element_EnumServicesStatusExA_services_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6872
0
{
6873
0
  offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_svcctl_EnumServicesStatusExA_services, 0);
6874
6875
0
  return offset;
6876
0
}
6877
6878
static unsigned
6879
svcctl_dissect_element_EnumServicesStatusExA_offered(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6880
0
{
6881
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_EnumServicesStatusExA_offered, 0);
6882
6883
0
  return offset;
6884
0
}
6885
6886
static unsigned
6887
svcctl_dissect_element_EnumServicesStatusExA_needed(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6888
0
{
6889
0
  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);
6890
6891
0
  return offset;
6892
0
}
6893
6894
static unsigned
6895
svcctl_dissect_element_EnumServicesStatusExA_needed_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6896
0
{
6897
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_EnumServicesStatusExA_needed, 0);
6898
6899
0
  return offset;
6900
0
}
6901
6902
static unsigned
6903
svcctl_dissect_element_EnumServicesStatusExA_service_returned(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6904
0
{
6905
0
  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);
6906
6907
0
  return offset;
6908
0
}
6909
6910
static unsigned
6911
svcctl_dissect_element_EnumServicesStatusExA_service_returned_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6912
0
{
6913
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_EnumServicesStatusExA_service_returned, 0);
6914
6915
0
  return offset;
6916
0
}
6917
6918
static unsigned
6919
svcctl_dissect_element_EnumServicesStatusExA_resume_handle(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6920
0
{
6921
0
  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);
6922
6923
0
  return offset;
6924
0
}
6925
6926
static unsigned
6927
svcctl_dissect_element_EnumServicesStatusExA_resume_handle_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6928
0
{
6929
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_EnumServicesStatusExA_resume_handle, 0);
6930
6931
0
  return offset;
6932
0
}
6933
6934
static unsigned
6935
svcctl_dissect_element_EnumServicesStatusExA_group_name(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6936
0
{
6937
0
  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);
6938
6939
0
  return offset;
6940
0
}
6941
6942
static unsigned
6943
svcctl_dissect_element_EnumServicesStatusExA_group_name_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6944
0
{
6945
0
  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);
6946
6947
0
  return offset;
6948
0
}
6949
6950
static unsigned
6951
svcctl_dissect_element_EnumServicesStatusExA_group_name__(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6952
0
{
6953
0
  char *data;
6954
6955
0
  offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(uint16_t), hf_svcctl_EnumServicesStatusExA_group_name, false, &data);
6956
0
  proto_item_append_text(tree, ": %s", data);
6957
6958
0
  return offset;
6959
0
}
6960
6961
/* IDL: WERROR EnumServicesStatusExA( */
6962
/* IDL: [in] [ref] policy_handle *scm_handle, */
6963
/* IDL: [in] uint32 info_level, */
6964
/* IDL: [in] svcctl_ServiceType service_type, */
6965
/* IDL: [in] svcctl_ServiceState state, */
6966
/* IDL: [out] [size_is(offered)] uint8 services[*], */
6967
/* IDL: [in] uint32 offered, */
6968
/* IDL: [out] [ref] uint32 *needed, */
6969
/* IDL: [out] [ref] uint32 *service_returned, */
6970
/* IDL: [in] [out] [unique(1)] uint32 *resume_handle, */
6971
/* IDL: [charset(UTF16)] [out] [ref] uint16 **group_name */
6972
/* IDL: ); */
6973
6974
static unsigned
6975
svcctl_dissect_EnumServicesStatusExA_response(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6976
0
{
6977
0
  uint32_t status;
6978
6979
0
  di->dcerpc_procedure_name="EnumServicesStatusExA";
6980
0
  offset = svcctl_dissect_element_EnumServicesStatusExA_services(tvb, offset, pinfo, tree, di, drep);
6981
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
6982
6983
0
  offset = svcctl_dissect_element_EnumServicesStatusExA_needed(tvb, offset, pinfo, tree, di, drep);
6984
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
6985
6986
0
  offset = svcctl_dissect_element_EnumServicesStatusExA_service_returned(tvb, offset, pinfo, tree, di, drep);
6987
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
6988
6989
0
  offset = svcctl_dissect_element_EnumServicesStatusExA_resume_handle(tvb, offset, pinfo, tree, di, drep);
6990
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
6991
6992
0
  offset = svcctl_dissect_element_EnumServicesStatusExA_group_name(tvb, offset, pinfo, tree, di, drep);
6993
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
6994
6995
0
  offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_werror, &status);
6996
6997
0
  if (status != 0)
6998
0
    col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(pinfo->pool, status, &WERR_errors_ext, "Unknown DOS error 0x%08x"));
6999
7000
0
  return offset;
7001
0
}
7002
7003
static unsigned
7004
svcctl_dissect_EnumServicesStatusExA_request(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
7005
0
{
7006
0
  di->dcerpc_procedure_name="EnumServicesStatusExA";
7007
0
  offset = svcctl_dissect_element_EnumServicesStatusExA_scm_handle(tvb, offset, pinfo, tree, di, drep);
7008
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
7009
0
  offset = svcctl_dissect_element_EnumServicesStatusExA_info_level(tvb, offset, pinfo, tree, di, drep);
7010
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
7011
0
  offset = svcctl_dissect_element_EnumServicesStatusExA_service_type(tvb, offset, pinfo, tree, di, drep);
7012
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
7013
0
  offset = svcctl_dissect_element_EnumServicesStatusExA_state(tvb, offset, pinfo, tree, di, drep);
7014
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
7015
0
  offset = svcctl_dissect_element_EnumServicesStatusExA_offered(tvb, offset, pinfo, tree, di, drep);
7016
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
7017
0
  offset = svcctl_dissect_element_EnumServicesStatusExA_resume_handle(tvb, offset, pinfo, tree, di, drep);
7018
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
7019
0
  return offset;
7020
0
}
7021
7022
static unsigned
7023
svcctl_dissect_element_EnumServicesStatusExW_scmanager(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
7024
0
{
7025
0
  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);
7026
7027
0
  return offset;
7028
0
}
7029
7030
static unsigned
7031
svcctl_dissect_element_EnumServicesStatusExW_scmanager_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
7032
0
{
7033
0
  offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_svcctl_EnumServicesStatusExW_scmanager, 0);
7034
7035
0
  return offset;
7036
0
}
7037
7038
static unsigned
7039
svcctl_dissect_element_EnumServicesStatusExW_info_level(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
7040
0
{
7041
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_EnumServicesStatusExW_info_level, 0);
7042
7043
0
  return offset;
7044
0
}
7045
7046
static unsigned
7047
svcctl_dissect_element_EnumServicesStatusExW_service_type(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
7048
0
{
7049
0
  offset = svcctl_dissect_enum_ServiceType(tvb, offset, pinfo, tree, di, drep, hf_svcctl_EnumServicesStatusExW_service_type, 0);
7050
7051
0
  return offset;
7052
0
}
7053
7054
static unsigned
7055
svcctl_dissect_element_EnumServicesStatusExW_state(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
7056
0
{
7057
0
  offset = svcctl_dissect_enum_ServiceState(tvb, offset, pinfo, tree, di, drep, hf_svcctl_EnumServicesStatusExW_state, 0);
7058
7059
0
  return offset;
7060
0
}
7061
7062
static unsigned
7063
svcctl_dissect_element_EnumServicesStatusExW_services(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
7064
0
{
7065
0
  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);
7066
7067
0
  return offset;
7068
0
}
7069
7070
static unsigned
7071
svcctl_dissect_element_EnumServicesStatusExW_services_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
7072
0
{
7073
0
  offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_EnumServicesStatusExW_services__);
7074
7075
0
  return offset;
7076
0
}
7077
7078
static unsigned
7079
svcctl_dissect_element_EnumServicesStatusExW_services__(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
7080
0
{
7081
0
  offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_svcctl_EnumServicesStatusExW_services, 0);
7082
7083
0
  return offset;
7084
0
}
7085
7086
static unsigned
7087
svcctl_dissect_element_EnumServicesStatusExW_offered(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
7088
0
{
7089
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_EnumServicesStatusExW_offered, 0);
7090
7091
0
  return offset;
7092
0
}
7093
7094
static unsigned
7095
svcctl_dissect_element_EnumServicesStatusExW_needed(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
7096
0
{
7097
0
  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);
7098
7099
0
  return offset;
7100
0
}
7101
7102
static unsigned
7103
svcctl_dissect_element_EnumServicesStatusExW_needed_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
7104
0
{
7105
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_EnumServicesStatusExW_needed, 0);
7106
7107
0
  return offset;
7108
0
}
7109
7110
static unsigned
7111
svcctl_dissect_element_EnumServicesStatusExW_service_returned(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
7112
0
{
7113
0
  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);
7114
7115
0
  return offset;
7116
0
}
7117
7118
static unsigned
7119
svcctl_dissect_element_EnumServicesStatusExW_service_returned_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
7120
0
{
7121
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_EnumServicesStatusExW_service_returned, 0);
7122
7123
0
  return offset;
7124
0
}
7125
7126
static unsigned
7127
svcctl_dissect_element_EnumServicesStatusExW_resume_handle(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
7128
0
{
7129
0
  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);
7130
7131
0
  return offset;
7132
0
}
7133
7134
static unsigned
7135
svcctl_dissect_element_EnumServicesStatusExW_resume_handle_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
7136
0
{
7137
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_EnumServicesStatusExW_resume_handle, 0);
7138
7139
0
  return offset;
7140
0
}
7141
7142
static unsigned
7143
svcctl_dissect_element_EnumServicesStatusExW_group_name(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
7144
0
{
7145
0
  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);
7146
7147
0
  return offset;
7148
0
}
7149
7150
static unsigned
7151
svcctl_dissect_element_EnumServicesStatusExW_group_name_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
7152
0
{
7153
0
  char *data;
7154
7155
0
  offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(uint16_t), hf_svcctl_EnumServicesStatusExW_group_name, false, &data);
7156
0
  proto_item_append_text(tree, ": %s", data);
7157
7158
0
  return offset;
7159
0
}
7160
7161
/* IDL: WERROR EnumServicesStatusExW( */
7162
/* IDL: [in] [ref] policy_handle *scmanager, */
7163
/* IDL: [in] uint32 info_level, */
7164
/* IDL: [in] svcctl_ServiceType service_type, */
7165
/* IDL: [in] svcctl_ServiceState state, */
7166
/* IDL: [out] [ref] [size_is(offered)] uint8 *services, */
7167
/* IDL: [in] [range(0,0x40000)] uint32 offered, */
7168
/* IDL: [out] [range(0,0x40000)] [ref] uint32 *needed, */
7169
/* IDL: [out] [range(0,0x40000)] [ref] uint32 *service_returned, */
7170
/* IDL: [in] [out] [range(0,0x40000)] [unique(1)] uint32 *resume_handle, */
7171
/* IDL: [charset(UTF16)] [in] [unique(1)] uint16 *group_name */
7172
/* IDL: ); */
7173
7174
static unsigned
7175
svcctl_dissect_EnumServicesStatusExW_response(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
7176
0
{
7177
0
  uint32_t status;
7178
7179
0
  di->dcerpc_procedure_name="EnumServicesStatusExW";
7180
0
  offset = svcctl_dissect_element_EnumServicesStatusExW_services(tvb, offset, pinfo, tree, di, drep);
7181
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
7182
7183
0
  offset = svcctl_dissect_element_EnumServicesStatusExW_needed(tvb, offset, pinfo, tree, di, drep);
7184
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
7185
7186
0
  offset = svcctl_dissect_element_EnumServicesStatusExW_service_returned(tvb, offset, pinfo, tree, di, drep);
7187
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
7188
7189
0
  offset = svcctl_dissect_element_EnumServicesStatusExW_resume_handle(tvb, offset, pinfo, tree, di, drep);
7190
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
7191
7192
0
  offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_werror, &status);
7193
7194
0
  if (status != 0)
7195
0
    col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(pinfo->pool, status, &WERR_errors_ext, "Unknown DOS error 0x%08x"));
7196
7197
0
  return offset;
7198
0
}
7199
7200
static unsigned
7201
svcctl_dissect_EnumServicesStatusExW_request(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
7202
0
{
7203
0
  di->dcerpc_procedure_name="EnumServicesStatusExW";
7204
0
  offset = svcctl_dissect_element_EnumServicesStatusExW_scmanager(tvb, offset, pinfo, tree, di, drep);
7205
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
7206
0
  offset = svcctl_dissect_element_EnumServicesStatusExW_info_level(tvb, offset, pinfo, tree, di, drep);
7207
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
7208
0
  offset = svcctl_dissect_element_EnumServicesStatusExW_service_type(tvb, offset, pinfo, tree, di, drep);
7209
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
7210
0
  offset = svcctl_dissect_element_EnumServicesStatusExW_state(tvb, offset, pinfo, tree, di, drep);
7211
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
7212
0
  offset = svcctl_dissect_element_EnumServicesStatusExW_offered(tvb, offset, pinfo, tree, di, drep);
7213
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
7214
0
  offset = svcctl_dissect_element_EnumServicesStatusExW_resume_handle(tvb, offset, pinfo, tree, di, drep);
7215
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
7216
0
  offset = svcctl_dissect_element_EnumServicesStatusExW_group_name(tvb, offset, pinfo, tree, di, drep);
7217
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
7218
0
  return offset;
7219
0
}
7220
7221
/* IDL: WERROR svcctl_ScBroadcastServiceControlMessage( */
7222
/* IDL:  */
7223
/* IDL: ); */
7224
7225
static unsigned
7226
svcctl_dissect_ScBroadcastServiceControlMessage_response(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
7227
0
{
7228
0
  uint32_t status;
7229
7230
0
  di->dcerpc_procedure_name="ScBroadcastServiceControlMessage";
7231
0
  offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_werror, &status);
7232
7233
0
  if (status != 0)
7234
0
    col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(pinfo->pool, status, &WERR_errors_ext, "Unknown DOS error 0x%08x"));
7235
7236
0
  return offset;
7237
0
}
7238
7239
static unsigned
7240
svcctl_dissect_ScBroadcastServiceControlMessage_request(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
7241
0
{
7242
0
  di->dcerpc_procedure_name="ScBroadcastServiceControlMessage";
7243
0
  return offset;
7244
0
}
7245
7246
static unsigned
7247
svcctl_dissect_element_CreateServiceWOW64A_scm_handle(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
7248
0
{
7249
0
  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);
7250
7251
0
  return offset;
7252
0
}
7253
7254
static unsigned
7255
svcctl_dissect_element_CreateServiceWOW64A_scm_handle_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
7256
0
{
7257
0
  offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_CreateServiceWOW64A_scm_handle, 0);
7258
7259
0
  return offset;
7260
0
}
7261
7262
static unsigned
7263
svcctl_dissect_element_CreateServiceWOW64A_ServiceName(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
7264
0
{
7265
0
  char *data;
7266
7267
0
  offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(uint8_t), hf_svcctl_svcctl_CreateServiceWOW64A_ServiceName, false, &data);
7268
0
  proto_item_append_text(tree, ": %s", data);
7269
7270
0
  return offset;
7271
0
}
7272
7273
static unsigned
7274
svcctl_dissect_element_CreateServiceWOW64A_DisplayName(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
7275
0
{
7276
0
  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);
7277
7278
0
  return offset;
7279
0
}
7280
7281
static unsigned
7282
svcctl_dissect_element_CreateServiceWOW64A_DisplayName_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
7283
0
{
7284
0
  char *data;
7285
7286
0
  offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(uint8_t), hf_svcctl_svcctl_CreateServiceWOW64A_DisplayName, false, &data);
7287
0
  proto_item_append_text(tree, ": %s", data);
7288
7289
0
  return offset;
7290
0
}
7291
7292
static unsigned
7293
svcctl_dissect_element_CreateServiceWOW64A_desired_access(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
7294
0
{
7295
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_CreateServiceWOW64A_desired_access, 0);
7296
7297
0
  return offset;
7298
0
}
7299
7300
static unsigned
7301
svcctl_dissect_element_CreateServiceWOW64A_service_type(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
7302
0
{
7303
0
  offset = svcctl_dissect_enum_ServiceType(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_CreateServiceWOW64A_service_type, 0);
7304
7305
0
  return offset;
7306
0
}
7307
7308
static unsigned
7309
svcctl_dissect_element_CreateServiceWOW64A_start_type(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
7310
0
{
7311
0
  offset = svcctl_dissect_enum_StartType(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_CreateServiceWOW64A_start_type, 0);
7312
7313
0
  return offset;
7314
0
}
7315
7316
static unsigned
7317
svcctl_dissect_element_CreateServiceWOW64A_error_control(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
7318
0
{
7319
0
  offset = svcctl_dissect_enum_ErrorControl(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_CreateServiceWOW64A_error_control, 0);
7320
7321
0
  return offset;
7322
0
}
7323
7324
static unsigned
7325
svcctl_dissect_element_CreateServiceWOW64A_binary_path(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
7326
0
{
7327
0
  char *data;
7328
7329
0
  offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(uint8_t), hf_svcctl_svcctl_CreateServiceWOW64A_binary_path, false, &data);
7330
0
  proto_item_append_text(tree, ": %s", data);
7331
7332
0
  return offset;
7333
0
}
7334
7335
static unsigned
7336
svcctl_dissect_element_CreateServiceWOW64A_LoadOrderGroupKey(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
7337
0
{
7338
0
  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);
7339
7340
0
  return offset;
7341
0
}
7342
7343
static unsigned
7344
svcctl_dissect_element_CreateServiceWOW64A_LoadOrderGroupKey_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
7345
0
{
7346
0
  char *data;
7347
7348
0
  offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(uint8_t), hf_svcctl_svcctl_CreateServiceWOW64A_LoadOrderGroupKey, false, &data);
7349
0
  proto_item_append_text(tree, ": %s", data);
7350
7351
0
  return offset;
7352
0
}
7353
7354
static unsigned
7355
svcctl_dissect_element_CreateServiceWOW64A_tag_id(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
7356
0
{
7357
0
  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);
7358
7359
0
  return offset;
7360
0
}
7361
7362
static unsigned
7363
svcctl_dissect_element_CreateServiceWOW64A_tag_id_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
7364
0
{
7365
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_CreateServiceWOW64A_tag_id, 0);
7366
7367
0
  return offset;
7368
0
}
7369
7370
static unsigned
7371
svcctl_dissect_element_CreateServiceWOW64A_dependencies(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
7372
0
{
7373
0
  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);
7374
7375
0
  return offset;
7376
0
}
7377
7378
static unsigned
7379
svcctl_dissect_element_CreateServiceWOW64A_dependencies_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
7380
0
{
7381
0
  offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_CreateServiceWOW64A_dependencies__);
7382
7383
0
  return offset;
7384
0
}
7385
7386
static unsigned
7387
svcctl_dissect_element_CreateServiceWOW64A_dependencies__(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
7388
0
{
7389
0
  offset = dissect_null_term_string(tvb, offset, pinfo, tree, drep, hf_svcctl_svcctl_CreateServiceWOW64A_dependencies , 0);
7390
7391
0
  return offset;
7392
0
}
7393
7394
static unsigned
7395
svcctl_dissect_element_CreateServiceWOW64A_dependencies_size(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
7396
0
{
7397
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_CreateServiceWOW64A_dependencies_size, 0);
7398
7399
0
  return offset;
7400
0
}
7401
7402
static unsigned
7403
svcctl_dissect_element_CreateServiceWOW64A_service_start_name(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
7404
0
{
7405
0
  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);
7406
7407
0
  return offset;
7408
0
}
7409
7410
static unsigned
7411
svcctl_dissect_element_CreateServiceWOW64A_service_start_name_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
7412
0
{
7413
0
  char *data;
7414
7415
0
  offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(uint8_t), hf_svcctl_svcctl_CreateServiceWOW64A_service_start_name, false, &data);
7416
0
  proto_item_append_text(tree, ": %s", data);
7417
7418
0
  return offset;
7419
0
}
7420
7421
static unsigned
7422
svcctl_dissect_element_CreateServiceWOW64A_password(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
7423
0
{
7424
0
  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);
7425
7426
0
  return offset;
7427
0
}
7428
7429
static unsigned
7430
svcctl_dissect_element_CreateServiceWOW64A_password_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
7431
0
{
7432
0
  offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_CreateServiceWOW64A_password__);
7433
7434
0
  return offset;
7435
0
}
7436
7437
static unsigned
7438
svcctl_dissect_element_CreateServiceWOW64A_password__(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
7439
0
{
7440
0
  offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_CreateServiceWOW64A_password, 0);
7441
7442
0
  return offset;
7443
0
}
7444
7445
static unsigned
7446
svcctl_dissect_element_CreateServiceWOW64A_password_size(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
7447
0
{
7448
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_CreateServiceWOW64A_password_size, 0);
7449
7450
0
  return offset;
7451
0
}
7452
7453
static unsigned
7454
svcctl_dissect_element_CreateServiceWOW64A_handle(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
7455
0
{
7456
0
  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);
7457
7458
0
  return offset;
7459
0
}
7460
7461
static unsigned
7462
svcctl_dissect_element_CreateServiceWOW64A_handle_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
7463
0
{
7464
0
  offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_CreateServiceWOW64A_handle, PIDL_POLHND_OPEN);
7465
7466
0
  return offset;
7467
0
}
7468
7469
/* IDL: WERROR svcctl_CreateServiceWOW64A( */
7470
/* IDL: [in] [ref] policy_handle *scm_handle, */
7471
/* IDL: [charset(ASCII)] [in] uint8 ServiceName[*], */
7472
/* IDL: [charset(ASCII)] [in] [unique(1)] uint8 *DisplayName, */
7473
/* IDL: [in] uint32 desired_access, */
7474
/* IDL: [in] svcctl_ServiceType service_type, */
7475
/* IDL: [in] svcctl_StartType start_type, */
7476
/* IDL: [in] svcctl_ErrorControl error_control, */
7477
/* IDL: [charset(ASCII)] [in] uint8 binary_path[*], */
7478
/* IDL: [charset(ASCII)] [in] [unique(1)] uint8 *LoadOrderGroupKey, */
7479
/* IDL: [in] [out] [unique(1)] uint32 *tag_id, */
7480
/* IDL: [flag(LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM)] [in] [size_is(dependencies_size)] [unique(1)] string *dependencies, */
7481
/* IDL: [in] uint32 dependencies_size, */
7482
/* IDL: [charset(ASCII)] [in] [unique(1)] uint8 *service_start_name, */
7483
/* IDL: [in] [size_is(password_size)] [unique(1)] uint8 *password, */
7484
/* IDL: [in] uint32 password_size, */
7485
/* IDL: [out] [ref] policy_handle *handle */
7486
/* IDL: ); */
7487
7488
static unsigned
7489
svcctl_dissect_CreateServiceWOW64A_response(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
7490
0
{
7491
0
  uint32_t status;
7492
7493
0
  di->dcerpc_procedure_name="CreateServiceWOW64A";
7494
0
  offset = svcctl_dissect_element_CreateServiceWOW64A_tag_id(tvb, offset, pinfo, tree, di, drep);
7495
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
7496
7497
0
  offset = svcctl_dissect_element_CreateServiceWOW64A_handle(tvb, offset, pinfo, tree, di, drep);
7498
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
7499
7500
0
  offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_werror, &status);
7501
7502
0
  if (status != 0)
7503
0
    col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(pinfo->pool, status, &WERR_errors_ext, "Unknown DOS error 0x%08x"));
7504
7505
0
  return offset;
7506
0
}
7507
7508
static unsigned
7509
svcctl_dissect_CreateServiceWOW64A_request(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
7510
0
{
7511
0
  di->dcerpc_procedure_name="CreateServiceWOW64A";
7512
0
  offset = svcctl_dissect_element_CreateServiceWOW64A_scm_handle(tvb, offset, pinfo, tree, di, drep);
7513
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
7514
0
  offset = svcctl_dissect_element_CreateServiceWOW64A_ServiceName(tvb, offset, pinfo, tree, di, drep);
7515
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
7516
0
  offset = svcctl_dissect_element_CreateServiceWOW64A_DisplayName(tvb, offset, pinfo, tree, di, drep);
7517
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
7518
0
  offset = svcctl_dissect_element_CreateServiceWOW64A_desired_access(tvb, offset, pinfo, tree, di, drep);
7519
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
7520
0
  offset = svcctl_dissect_element_CreateServiceWOW64A_service_type(tvb, offset, pinfo, tree, di, drep);
7521
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
7522
0
  offset = svcctl_dissect_element_CreateServiceWOW64A_start_type(tvb, offset, pinfo, tree, di, drep);
7523
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
7524
0
  offset = svcctl_dissect_element_CreateServiceWOW64A_error_control(tvb, offset, pinfo, tree, di, drep);
7525
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
7526
0
  offset = svcctl_dissect_element_CreateServiceWOW64A_binary_path(tvb, offset, pinfo, tree, di, drep);
7527
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
7528
0
  offset = svcctl_dissect_element_CreateServiceWOW64A_LoadOrderGroupKey(tvb, offset, pinfo, tree, di, drep);
7529
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
7530
0
  offset = svcctl_dissect_element_CreateServiceWOW64A_tag_id(tvb, offset, pinfo, tree, di, drep);
7531
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
7532
0
  offset = svcctl_dissect_element_CreateServiceWOW64A_dependencies(tvb, offset, pinfo, tree, di, drep);
7533
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
7534
0
  offset = svcctl_dissect_element_CreateServiceWOW64A_dependencies_size(tvb, offset, pinfo, tree, di, drep);
7535
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
7536
0
  offset = svcctl_dissect_element_CreateServiceWOW64A_service_start_name(tvb, offset, pinfo, tree, di, drep);
7537
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
7538
0
  offset = svcctl_dissect_element_CreateServiceWOW64A_password(tvb, offset, pinfo, tree, di, drep);
7539
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
7540
0
  offset = svcctl_dissect_element_CreateServiceWOW64A_password_size(tvb, offset, pinfo, tree, di, drep);
7541
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
7542
0
  return offset;
7543
0
}
7544
7545
static unsigned
7546
svcctl_dissect_element_CreateServiceWOW64W_scm_handle(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
7547
0
{
7548
0
  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);
7549
7550
0
  return offset;
7551
0
}
7552
7553
static unsigned
7554
svcctl_dissect_element_CreateServiceWOW64W_scm_handle_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
7555
0
{
7556
0
  offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_CreateServiceWOW64W_scm_handle, 0);
7557
7558
0
  return offset;
7559
0
}
7560
7561
static unsigned
7562
svcctl_dissect_element_CreateServiceWOW64W_ServiceName(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
7563
0
{
7564
0
  char *data;
7565
7566
0
  offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(uint16_t), hf_svcctl_svcctl_CreateServiceWOW64W_ServiceName, false, &data);
7567
0
  proto_item_append_text(tree, ": %s", data);
7568
7569
0
  return offset;
7570
0
}
7571
7572
static unsigned
7573
svcctl_dissect_element_CreateServiceWOW64W_DisplayName(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
7574
0
{
7575
0
  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);
7576
7577
0
  return offset;
7578
0
}
7579
7580
static unsigned
7581
svcctl_dissect_element_CreateServiceWOW64W_DisplayName_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
7582
0
{
7583
0
  char *data;
7584
7585
0
  offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(uint16_t), hf_svcctl_svcctl_CreateServiceWOW64W_DisplayName, false, &data);
7586
0
  proto_item_append_text(tree, ": %s", data);
7587
7588
0
  return offset;
7589
0
}
7590
7591
static unsigned
7592
svcctl_dissect_element_CreateServiceWOW64W_desired_access(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
7593
0
{
7594
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_CreateServiceWOW64W_desired_access, 0);
7595
7596
0
  return offset;
7597
0
}
7598
7599
static unsigned
7600
svcctl_dissect_element_CreateServiceWOW64W_service_type(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
7601
0
{
7602
0
  offset = svcctl_dissect_enum_ServiceType(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_CreateServiceWOW64W_service_type, 0);
7603
7604
0
  return offset;
7605
0
}
7606
7607
static unsigned
7608
svcctl_dissect_element_CreateServiceWOW64W_start_type(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
7609
0
{
7610
0
  offset = svcctl_dissect_enum_StartType(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_CreateServiceWOW64W_start_type, 0);
7611
7612
0
  return offset;
7613
0
}
7614
7615
static unsigned
7616
svcctl_dissect_element_CreateServiceWOW64W_error_control(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
7617
0
{
7618
0
  offset = svcctl_dissect_enum_ErrorControl(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_CreateServiceWOW64W_error_control, 0);
7619
7620
0
  return offset;
7621
0
}
7622
7623
static unsigned
7624
svcctl_dissect_element_CreateServiceWOW64W_binary_path(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
7625
0
{
7626
0
  char *data;
7627
7628
0
  offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(uint16_t), hf_svcctl_svcctl_CreateServiceWOW64W_binary_path, false, &data);
7629
0
  proto_item_append_text(tree, ": %s", data);
7630
7631
0
  return offset;
7632
0
}
7633
7634
static unsigned
7635
svcctl_dissect_element_CreateServiceWOW64W_LoadOrderGroupKey(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
7636
0
{
7637
0
  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);
7638
7639
0
  return offset;
7640
0
}
7641
7642
static unsigned
7643
svcctl_dissect_element_CreateServiceWOW64W_LoadOrderGroupKey_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
7644
0
{
7645
0
  char *data;
7646
7647
0
  offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(uint16_t), hf_svcctl_svcctl_CreateServiceWOW64W_LoadOrderGroupKey, false, &data);
7648
0
  proto_item_append_text(tree, ": %s", data);
7649
7650
0
  return offset;
7651
0
}
7652
7653
static unsigned
7654
svcctl_dissect_element_CreateServiceWOW64W_tag_id(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
7655
0
{
7656
0
  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);
7657
7658
0
  return offset;
7659
0
}
7660
7661
static unsigned
7662
svcctl_dissect_element_CreateServiceWOW64W_tag_id_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
7663
0
{
7664
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_CreateServiceWOW64W_tag_id, 0);
7665
7666
0
  return offset;
7667
0
}
7668
7669
static unsigned
7670
svcctl_dissect_element_CreateServiceWOW64W_dependencies(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
7671
0
{
7672
0
  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);
7673
7674
0
  return offset;
7675
0
}
7676
7677
static unsigned
7678
svcctl_dissect_element_CreateServiceWOW64W_dependencies_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
7679
0
{
7680
0
  offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_CreateServiceWOW64W_dependencies__);
7681
7682
0
  return offset;
7683
0
}
7684
7685
static unsigned
7686
svcctl_dissect_element_CreateServiceWOW64W_dependencies__(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
7687
0
{
7688
0
  offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_CreateServiceWOW64W_dependencies, 0);
7689
7690
0
  return offset;
7691
0
}
7692
7693
static unsigned
7694
svcctl_dissect_element_CreateServiceWOW64W_dependencies_size(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
7695
0
{
7696
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_CreateServiceWOW64W_dependencies_size, 0);
7697
7698
0
  return offset;
7699
0
}
7700
7701
static unsigned
7702
svcctl_dissect_element_CreateServiceWOW64W_service_start_name(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
7703
0
{
7704
0
  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);
7705
7706
0
  return offset;
7707
0
}
7708
7709
static unsigned
7710
svcctl_dissect_element_CreateServiceWOW64W_service_start_name_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
7711
0
{
7712
0
  char *data;
7713
7714
0
  offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(uint16_t), hf_svcctl_svcctl_CreateServiceWOW64W_service_start_name, false, &data);
7715
0
  proto_item_append_text(tree, ": %s", data);
7716
7717
0
  return offset;
7718
0
}
7719
7720
static unsigned
7721
svcctl_dissect_element_CreateServiceWOW64W_password(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
7722
0
{
7723
0
  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);
7724
7725
0
  return offset;
7726
0
}
7727
7728
static unsigned
7729
svcctl_dissect_element_CreateServiceWOW64W_password_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
7730
0
{
7731
0
  offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_CreateServiceWOW64W_password__);
7732
7733
0
  return offset;
7734
0
}
7735
7736
static unsigned
7737
svcctl_dissect_element_CreateServiceWOW64W_password__(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
7738
0
{
7739
0
  offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_CreateServiceWOW64W_password, 0);
7740
7741
0
  return offset;
7742
0
}
7743
7744
static unsigned
7745
svcctl_dissect_element_CreateServiceWOW64W_password_size(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
7746
0
{
7747
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_CreateServiceWOW64W_password_size, 0);
7748
7749
0
  return offset;
7750
0
}
7751
7752
static unsigned
7753
svcctl_dissect_element_CreateServiceWOW64W_handle(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
7754
0
{
7755
0
  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);
7756
7757
0
  return offset;
7758
0
}
7759
7760
static unsigned
7761
svcctl_dissect_element_CreateServiceWOW64W_handle_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
7762
0
{
7763
0
  offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_CreateServiceWOW64W_handle, PIDL_POLHND_OPEN);
7764
7765
0
  return offset;
7766
0
}
7767
7768
/* IDL: WERROR svcctl_CreateServiceWOW64W( */
7769
/* IDL: [in] [ref] policy_handle *scm_handle, */
7770
/* IDL: [charset(UTF16)] [in] uint16 ServiceName[*], */
7771
/* IDL: [charset(UTF16)] [in] [unique(1)] uint16 *DisplayName, */
7772
/* IDL: [in] uint32 desired_access, */
7773
/* IDL: [in] svcctl_ServiceType service_type, */
7774
/* IDL: [in] svcctl_StartType start_type, */
7775
/* IDL: [in] svcctl_ErrorControl error_control, */
7776
/* IDL: [charset(UTF16)] [in] uint16 binary_path[*], */
7777
/* IDL: [charset(UTF16)] [in] [unique(1)] uint16 *LoadOrderGroupKey, */
7778
/* IDL: [in] [out] [unique(1)] uint32 *tag_id, */
7779
/* IDL: [in] [size_is(dependencies_size)] [unique(1)] uint8 *dependencies, */
7780
/* IDL: [in] uint32 dependencies_size, */
7781
/* IDL: [charset(UTF16)] [in] [unique(1)] uint16 *service_start_name, */
7782
/* IDL: [in] [size_is(password_size)] [unique(1)] uint8 *password, */
7783
/* IDL: [in] uint32 password_size, */
7784
/* IDL: [out] [ref] policy_handle *handle */
7785
/* IDL: ); */
7786
7787
static unsigned
7788
svcctl_dissect_CreateServiceWOW64W_response(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
7789
0
{
7790
0
  uint32_t status;
7791
7792
0
  di->dcerpc_procedure_name="CreateServiceWOW64W";
7793
0
  offset = svcctl_dissect_element_CreateServiceWOW64W_tag_id(tvb, offset, pinfo, tree, di, drep);
7794
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
7795
7796
0
  offset = svcctl_dissect_element_CreateServiceWOW64W_handle(tvb, offset, pinfo, tree, di, drep);
7797
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
7798
7799
0
  offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_werror, &status);
7800
7801
0
  if (status != 0)
7802
0
    col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(pinfo->pool, status, &WERR_errors_ext, "Unknown DOS error 0x%08x"));
7803
7804
0
  return offset;
7805
0
}
7806
7807
static unsigned
7808
svcctl_dissect_CreateServiceWOW64W_request(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
7809
0
{
7810
0
  di->dcerpc_procedure_name="CreateServiceWOW64W";
7811
0
  offset = svcctl_dissect_element_CreateServiceWOW64W_scm_handle(tvb, offset, pinfo, tree, di, drep);
7812
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
7813
0
  offset = svcctl_dissect_element_CreateServiceWOW64W_ServiceName(tvb, offset, pinfo, tree, di, drep);
7814
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
7815
0
  offset = svcctl_dissect_element_CreateServiceWOW64W_DisplayName(tvb, offset, pinfo, tree, di, drep);
7816
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
7817
0
  offset = svcctl_dissect_element_CreateServiceWOW64W_desired_access(tvb, offset, pinfo, tree, di, drep);
7818
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
7819
0
  offset = svcctl_dissect_element_CreateServiceWOW64W_service_type(tvb, offset, pinfo, tree, di, drep);
7820
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
7821
0
  offset = svcctl_dissect_element_CreateServiceWOW64W_start_type(tvb, offset, pinfo, tree, di, drep);
7822
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
7823
0
  offset = svcctl_dissect_element_CreateServiceWOW64W_error_control(tvb, offset, pinfo, tree, di, drep);
7824
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
7825
0
  offset = svcctl_dissect_element_CreateServiceWOW64W_binary_path(tvb, offset, pinfo, tree, di, drep);
7826
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
7827
0
  offset = svcctl_dissect_element_CreateServiceWOW64W_LoadOrderGroupKey(tvb, offset, pinfo, tree, di, drep);
7828
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
7829
0
  offset = svcctl_dissect_element_CreateServiceWOW64W_tag_id(tvb, offset, pinfo, tree, di, drep);
7830
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
7831
0
  offset = svcctl_dissect_element_CreateServiceWOW64W_dependencies(tvb, offset, pinfo, tree, di, drep);
7832
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
7833
0
  offset = svcctl_dissect_element_CreateServiceWOW64W_dependencies_size(tvb, offset, pinfo, tree, di, drep);
7834
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
7835
0
  offset = svcctl_dissect_element_CreateServiceWOW64W_service_start_name(tvb, offset, pinfo, tree, di, drep);
7836
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
7837
0
  offset = svcctl_dissect_element_CreateServiceWOW64W_password(tvb, offset, pinfo, tree, di, drep);
7838
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
7839
0
  offset = svcctl_dissect_element_CreateServiceWOW64W_password_size(tvb, offset, pinfo, tree, di, drep);
7840
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
7841
0
  return offset;
7842
0
}
7843
7844
/* IDL: WERROR svcctl_ScQueryServiceTagInfo( */
7845
/* IDL:  */
7846
/* IDL: ); */
7847
7848
static unsigned
7849
svcctl_dissect_ScQueryServiceTagInfo_response(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
7850
0
{
7851
0
  uint32_t status;
7852
7853
0
  di->dcerpc_procedure_name="ScQueryServiceTagInfo";
7854
0
  offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_werror, &status);
7855
7856
0
  if (status != 0)
7857
0
    col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(pinfo->pool, status, &WERR_errors_ext, "Unknown DOS error 0x%08x"));
7858
7859
0
  return offset;
7860
0
}
7861
7862
static unsigned
7863
svcctl_dissect_ScQueryServiceTagInfo_request(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
7864
0
{
7865
0
  di->dcerpc_procedure_name="ScQueryServiceTagInfo";
7866
0
  return offset;
7867
0
}
7868
7869
/* IDL: WERROR svcctl_NotifyServiceStatusChange( */
7870
/* IDL:  */
7871
/* IDL: ); */
7872
7873
static unsigned
7874
svcctl_dissect_NotifyServiceStatusChange_response(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
7875
0
{
7876
0
  uint32_t status;
7877
7878
0
  di->dcerpc_procedure_name="NotifyServiceStatusChange";
7879
0
  offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_werror, &status);
7880
7881
0
  if (status != 0)
7882
0
    col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(pinfo->pool, status, &WERR_errors_ext, "Unknown DOS error 0x%08x"));
7883
7884
0
  return offset;
7885
0
}
7886
7887
static unsigned
7888
svcctl_dissect_NotifyServiceStatusChange_request(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
7889
0
{
7890
0
  di->dcerpc_procedure_name="NotifyServiceStatusChange";
7891
0
  return offset;
7892
0
}
7893
7894
/* IDL: WERROR svcctl_GetNotifyResults( */
7895
/* IDL:  */
7896
/* IDL: ); */
7897
7898
static unsigned
7899
svcctl_dissect_GetNotifyResults_response(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
7900
0
{
7901
0
  uint32_t status;
7902
7903
0
  di->dcerpc_procedure_name="GetNotifyResults";
7904
0
  offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_werror, &status);
7905
7906
0
  if (status != 0)
7907
0
    col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(pinfo->pool, status, &WERR_errors_ext, "Unknown DOS error 0x%08x"));
7908
7909
0
  return offset;
7910
0
}
7911
7912
static unsigned
7913
svcctl_dissect_GetNotifyResults_request(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
7914
0
{
7915
0
  di->dcerpc_procedure_name="GetNotifyResults";
7916
0
  return offset;
7917
0
}
7918
7919
/* IDL: WERROR svcctl_CloseNotifyHandle( */
7920
/* IDL:  */
7921
/* IDL: ); */
7922
7923
static unsigned
7924
svcctl_dissect_CloseNotifyHandle_response(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
7925
0
{
7926
0
  uint32_t status;
7927
7928
0
  di->dcerpc_procedure_name="CloseNotifyHandle";
7929
0
  offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_werror, &status);
7930
7931
0
  if (status != 0)
7932
0
    col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(pinfo->pool, status, &WERR_errors_ext, "Unknown DOS error 0x%08x"));
7933
7934
0
  return offset;
7935
0
}
7936
7937
static unsigned
7938
svcctl_dissect_CloseNotifyHandle_request(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
7939
0
{
7940
0
  di->dcerpc_procedure_name="CloseNotifyHandle";
7941
0
  return offset;
7942
0
}
7943
7944
/* IDL: WERROR svcctl_ControlServiceExA( */
7945
/* IDL:  */
7946
/* IDL: ); */
7947
7948
static unsigned
7949
svcctl_dissect_ControlServiceExA_response(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
7950
0
{
7951
0
  uint32_t status;
7952
7953
0
  di->dcerpc_procedure_name="ControlServiceExA";
7954
0
  offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_werror, &status);
7955
7956
0
  if (status != 0)
7957
0
    col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(pinfo->pool, status, &WERR_errors_ext, "Unknown DOS error 0x%08x"));
7958
7959
0
  return offset;
7960
0
}
7961
7962
static unsigned
7963
svcctl_dissect_ControlServiceExA_request(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
7964
0
{
7965
0
  di->dcerpc_procedure_name="ControlServiceExA";
7966
0
  return offset;
7967
0
}
7968
7969
/* IDL: WERROR svcctl_ControlServiceExW( */
7970
/* IDL:  */
7971
/* IDL: ); */
7972
7973
static unsigned
7974
svcctl_dissect_ControlServiceExW_response(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
7975
0
{
7976
0
  uint32_t status;
7977
7978
0
  di->dcerpc_procedure_name="ControlServiceExW";
7979
0
  offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_werror, &status);
7980
7981
0
  if (status != 0)
7982
0
    col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(pinfo->pool, status, &WERR_errors_ext, "Unknown DOS error 0x%08x"));
7983
7984
0
  return offset;
7985
0
}
7986
7987
static unsigned
7988
svcctl_dissect_ControlServiceExW_request(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
7989
0
{
7990
0
  di->dcerpc_procedure_name="ControlServiceExW";
7991
0
  return offset;
7992
0
}
7993
7994
/* IDL: WERROR svcctl_ScSendPnPMessage( */
7995
/* IDL:  */
7996
/* IDL: ); */
7997
7998
static unsigned
7999
svcctl_dissect_ScSendPnPMessage_response(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
8000
0
{
8001
0
  uint32_t status;
8002
8003
0
  di->dcerpc_procedure_name="ScSendPnPMessage";
8004
0
  offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_werror, &status);
8005
8006
0
  if (status != 0)
8007
0
    col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(pinfo->pool, status, &WERR_errors_ext, "Unknown DOS error 0x%08x"));
8008
8009
0
  return offset;
8010
0
}
8011
8012
static unsigned
8013
svcctl_dissect_ScSendPnPMessage_request(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
8014
0
{
8015
0
  di->dcerpc_procedure_name="ScSendPnPMessage";
8016
0
  return offset;
8017
0
}
8018
8019
/* IDL: WERROR svcctl_ScValidatePnPService( */
8020
/* IDL:  */
8021
/* IDL: ); */
8022
8023
static unsigned
8024
svcctl_dissect_ScValidatePnPService_response(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
8025
0
{
8026
0
  uint32_t status;
8027
8028
0
  di->dcerpc_procedure_name="ScValidatePnPService";
8029
0
  offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_werror, &status);
8030
8031
0
  if (status != 0)
8032
0
    col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(pinfo->pool, status, &WERR_errors_ext, "Unknown DOS error 0x%08x"));
8033
8034
0
  return offset;
8035
0
}
8036
8037
static unsigned
8038
svcctl_dissect_ScValidatePnPService_request(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
8039
0
{
8040
0
  di->dcerpc_procedure_name="ScValidatePnPService";
8041
0
  return offset;
8042
0
}
8043
8044
/* IDL: WERROR svcctl_ScOpenServiceStatusHandle( */
8045
/* IDL:  */
8046
/* IDL: ); */
8047
8048
static unsigned
8049
svcctl_dissect_ScOpenServiceStatusHandle_response(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
8050
0
{
8051
0
  uint32_t status;
8052
8053
0
  di->dcerpc_procedure_name="ScOpenServiceStatusHandle";
8054
0
  offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_werror, &status);
8055
8056
0
  if (status != 0)
8057
0
    col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(pinfo->pool, status, &WERR_errors_ext, "Unknown DOS error 0x%08x"));
8058
8059
0
  return offset;
8060
0
}
8061
8062
static unsigned
8063
svcctl_dissect_ScOpenServiceStatusHandle_request(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
8064
0
{
8065
0
  di->dcerpc_procedure_name="ScOpenServiceStatusHandle";
8066
0
  return offset;
8067
0
}
8068
8069
/* IDL: WERROR svcctl_ScQueryServiceConfig( */
8070
/* IDL:  */
8071
/* IDL: ); */
8072
8073
static unsigned
8074
svcctl_dissect_ScQueryServiceConfig_response(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
8075
0
{
8076
0
  uint32_t status;
8077
8078
0
  di->dcerpc_procedure_name="ScQueryServiceConfig";
8079
0
  offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_werror, &status);
8080
8081
0
  if (status != 0)
8082
0
    col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(pinfo->pool, status, &WERR_errors_ext, "Unknown DOS error 0x%08x"));
8083
8084
0
  return offset;
8085
0
}
8086
8087
static unsigned
8088
svcctl_dissect_ScQueryServiceConfig_request(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
8089
0
{
8090
0
  di->dcerpc_procedure_name="ScQueryServiceConfig";
8091
0
  return offset;
8092
0
}
8093
8094
static unsigned
8095
svcctl_dissect_element_QueryServiceConfigEx_service_handle(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
8096
0
{
8097
0
  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);
8098
8099
0
  return offset;
8100
0
}
8101
8102
static unsigned
8103
svcctl_dissect_element_QueryServiceConfigEx_service_handle_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
8104
0
{
8105
0
  offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_QueryServiceConfigEx_service_handle, 0);
8106
8107
0
  return offset;
8108
0
}
8109
8110
static unsigned
8111
svcctl_dissect_element_QueryServiceConfigEx_info_level(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
8112
0
{
8113
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_QueryServiceConfigEx_info_level, 0);
8114
8115
0
  return offset;
8116
0
}
8117
8118
/* IDL: WERROR svcctl_QueryServiceConfigEx( */
8119
/* IDL: [in] [ref] policy_handle *service_handle, */
8120
/* IDL: [in] uint32 info_level */
8121
/* IDL: ); */
8122
8123
static unsigned
8124
svcctl_dissect_QueryServiceConfigEx_response(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
8125
0
{
8126
0
  uint32_t status;
8127
8128
0
  di->dcerpc_procedure_name="QueryServiceConfigEx";
8129
0
  offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_werror, &status);
8130
8131
0
  if (status != 0)
8132
0
    col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(pinfo->pool, status, &WERR_errors_ext, "Unknown DOS error 0x%08x"));
8133
8134
0
  return offset;
8135
0
}
8136
8137
static unsigned
8138
svcctl_dissect_QueryServiceConfigEx_request(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
8139
0
{
8140
0
  di->dcerpc_procedure_name="QueryServiceConfigEx";
8141
0
  offset = svcctl_dissect_element_QueryServiceConfigEx_service_handle(tvb, offset, pinfo, tree, di, drep);
8142
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
8143
0
  offset = svcctl_dissect_element_QueryServiceConfigEx_info_level(tvb, offset, pinfo, tree, di, drep);
8144
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
8145
0
  return offset;
8146
0
}
8147
8148
/* IDL: WERROR svcctl_ScRegisterPreshutdownRestart( */
8149
/* IDL:  */
8150
/* IDL: ); */
8151
8152
static unsigned
8153
svcctl_dissect_ScRegisterPreshutdownRestart_response(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
8154
0
{
8155
0
  uint32_t status;
8156
8157
0
  di->dcerpc_procedure_name="ScRegisterPreshutdownRestart";
8158
0
  offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_werror, &status);
8159
8160
0
  if (status != 0)
8161
0
    col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(pinfo->pool, status, &WERR_errors_ext, "Unknown DOS error 0x%08x"));
8162
8163
0
  return offset;
8164
0
}
8165
8166
static unsigned
8167
svcctl_dissect_ScRegisterPreshutdownRestart_request(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
8168
0
{
8169
0
  di->dcerpc_procedure_name="ScRegisterPreshutdownRestart";
8170
0
  return offset;
8171
0
}
8172
8173
/* IDL: WERROR svcctl_ScReparseServiceDatabase( */
8174
/* IDL:  */
8175
/* IDL: ); */
8176
8177
static unsigned
8178
svcctl_dissect_ScReparseServiceDatabase_response(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
8179
0
{
8180
0
  uint32_t status;
8181
8182
0
  di->dcerpc_procedure_name="ScReparseServiceDatabase";
8183
0
  offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_werror, &status);
8184
8185
0
  if (status != 0)
8186
0
    col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(pinfo->pool, status, &WERR_errors_ext, "Unknown DOS error 0x%08x"));
8187
8188
0
  return offset;
8189
0
}
8190
8191
static unsigned
8192
svcctl_dissect_ScReparseServiceDatabase_request(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
8193
0
{
8194
0
  di->dcerpc_procedure_name="ScReparseServiceDatabase";
8195
0
  return offset;
8196
0
}
8197
8198
/* IDL: WERROR svcctl_QueryUserServiceName( */
8199
/* IDL:  */
8200
/* IDL: ); */
8201
8202
static unsigned
8203
svcctl_dissect_QueryUserServiceName_response(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
8204
0
{
8205
0
  uint32_t status;
8206
8207
0
  di->dcerpc_procedure_name="QueryUserServiceName";
8208
0
  offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_werror, &status);
8209
8210
0
  if (status != 0)
8211
0
    col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(pinfo->pool, status, &WERR_errors_ext, "Unknown DOS error 0x%08x"));
8212
8213
0
  return offset;
8214
0
}
8215
8216
static unsigned
8217
svcctl_dissect_QueryUserServiceName_request(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
8218
0
{
8219
0
  di->dcerpc_procedure_name="QueryUserServiceName";
8220
0
  return offset;
8221
0
}
8222
8223
static unsigned
8224
svcctl_dissect_element_CreateWowService_scm_handle(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
8225
0
{
8226
0
  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);
8227
8228
0
  return offset;
8229
0
}
8230
8231
static unsigned
8232
svcctl_dissect_element_CreateWowService_scm_handle_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
8233
0
{
8234
0
  offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_CreateWowService_scm_handle, 0);
8235
8236
0
  return offset;
8237
0
}
8238
8239
static unsigned
8240
svcctl_dissect_element_CreateWowService_ServiceName(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
8241
0
{
8242
0
  char *data;
8243
8244
0
  offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(uint16_t), hf_svcctl_svcctl_CreateWowService_ServiceName, false, &data);
8245
0
  proto_item_append_text(tree, ": %s", data);
8246
8247
0
  return offset;
8248
0
}
8249
8250
static unsigned
8251
svcctl_dissect_element_CreateWowService_DisplayName(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
8252
0
{
8253
0
  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);
8254
8255
0
  return offset;
8256
0
}
8257
8258
static unsigned
8259
svcctl_dissect_element_CreateWowService_DisplayName_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
8260
0
{
8261
0
  char *data;
8262
8263
0
  offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(uint16_t), hf_svcctl_svcctl_CreateWowService_DisplayName, false, &data);
8264
0
  proto_item_append_text(tree, ": %s", data);
8265
8266
0
  return offset;
8267
0
}
8268
8269
static unsigned
8270
svcctl_dissect_element_CreateWowService_desired_access(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
8271
0
{
8272
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_CreateWowService_desired_access, 0);
8273
8274
0
  return offset;
8275
0
}
8276
8277
static unsigned
8278
svcctl_dissect_element_CreateWowService_service_type(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
8279
0
{
8280
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_CreateWowService_service_type, 0);
8281
8282
0
  return offset;
8283
0
}
8284
8285
static unsigned
8286
svcctl_dissect_element_CreateWowService_start_type(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
8287
0
{
8288
0
  offset = svcctl_dissect_enum_StartType(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_CreateWowService_start_type, 0);
8289
8290
0
  return offset;
8291
0
}
8292
8293
static unsigned
8294
svcctl_dissect_element_CreateWowService_error_control(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
8295
0
{
8296
0
  offset = svcctl_dissect_enum_ErrorControl(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_CreateWowService_error_control, 0);
8297
8298
0
  return offset;
8299
0
}
8300
8301
static unsigned
8302
svcctl_dissect_element_CreateWowService_binary_path(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
8303
0
{
8304
0
  char *data;
8305
8306
0
  offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(uint16_t), hf_svcctl_svcctl_CreateWowService_binary_path, false, &data);
8307
0
  proto_item_append_text(tree, ": %s", data);
8308
8309
0
  return offset;
8310
0
}
8311
8312
static unsigned
8313
svcctl_dissect_element_CreateWowService_LoadOrderGroupKey(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
8314
0
{
8315
0
  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);
8316
8317
0
  return offset;
8318
0
}
8319
8320
static unsigned
8321
svcctl_dissect_element_CreateWowService_LoadOrderGroupKey_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
8322
0
{
8323
0
  char *data;
8324
8325
0
  offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(uint16_t), hf_svcctl_svcctl_CreateWowService_LoadOrderGroupKey, false, &data);
8326
0
  proto_item_append_text(tree, ": %s", data);
8327
8328
0
  return offset;
8329
0
}
8330
8331
static unsigned
8332
svcctl_dissect_element_CreateWowService_tag_id(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
8333
0
{
8334
0
  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);
8335
8336
0
  return offset;
8337
0
}
8338
8339
static unsigned
8340
svcctl_dissect_element_CreateWowService_tag_id_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
8341
0
{
8342
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_CreateWowService_tag_id, 0);
8343
8344
0
  return offset;
8345
0
}
8346
8347
static unsigned
8348
svcctl_dissect_element_CreateWowService_dependencies(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
8349
0
{
8350
0
  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);
8351
8352
0
  return offset;
8353
0
}
8354
8355
static unsigned
8356
svcctl_dissect_element_CreateWowService_dependencies_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
8357
0
{
8358
0
  offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_CreateWowService_dependencies__);
8359
8360
0
  return offset;
8361
0
}
8362
8363
static unsigned
8364
svcctl_dissect_element_CreateWowService_dependencies__(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
8365
0
{
8366
0
  offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_CreateWowService_dependencies, 0);
8367
8368
0
  return offset;
8369
0
}
8370
8371
static unsigned
8372
svcctl_dissect_element_CreateWowService_dependencies_size(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
8373
0
{
8374
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_CreateWowService_dependencies_size, 0);
8375
8376
0
  return offset;
8377
0
}
8378
8379
static unsigned
8380
svcctl_dissect_element_CreateWowService_service_start_name(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
8381
0
{
8382
0
  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);
8383
8384
0
  return offset;
8385
0
}
8386
8387
static unsigned
8388
svcctl_dissect_element_CreateWowService_service_start_name_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
8389
0
{
8390
0
  char *data;
8391
8392
0
  offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(uint16_t), hf_svcctl_svcctl_CreateWowService_service_start_name, false, &data);
8393
0
  proto_item_append_text(tree, ": %s", data);
8394
8395
0
  return offset;
8396
0
}
8397
8398
static unsigned
8399
svcctl_dissect_element_CreateWowService_password(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
8400
0
{
8401
0
  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);
8402
8403
0
  return offset;
8404
0
}
8405
8406
static unsigned
8407
svcctl_dissect_element_CreateWowService_password_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
8408
0
{
8409
0
  offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, svcctl_dissect_element_CreateWowService_password__);
8410
8411
0
  return offset;
8412
0
}
8413
8414
static unsigned
8415
svcctl_dissect_element_CreateWowService_password__(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
8416
0
{
8417
0
  offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_CreateWowService_password, 0);
8418
8419
0
  return offset;
8420
0
}
8421
8422
static unsigned
8423
svcctl_dissect_element_CreateWowService_password_size(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
8424
0
{
8425
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_CreateWowService_password_size, 0);
8426
8427
0
  return offset;
8428
0
}
8429
8430
static unsigned
8431
svcctl_dissect_element_CreateWowService_service_wow_type(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
8432
0
{
8433
0
  offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_CreateWowService_service_wow_type, 0);
8434
8435
0
  return offset;
8436
0
}
8437
8438
static unsigned
8439
svcctl_dissect_element_CreateWowService_handle(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
8440
0
{
8441
0
  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);
8442
8443
0
  return offset;
8444
0
}
8445
8446
static unsigned
8447
svcctl_dissect_element_CreateWowService_handle_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
8448
0
{
8449
0
  offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_CreateWowService_handle, PIDL_POLHND_OPEN);
8450
8451
0
  return offset;
8452
0
}
8453
8454
/* IDL: WERROR svcctl_CreateWowService( */
8455
/* IDL: [in] [ref] policy_handle *scm_handle, */
8456
/* IDL: [charset(UTF16)] [in] uint16 ServiceName[*], */
8457
/* IDL: [charset(UTF16)] [in] [unique(1)] uint16 *DisplayName, */
8458
/* IDL: [in] uint32 desired_access, */
8459
/* IDL: [in] uint32 service_type, */
8460
/* IDL: [in] svcctl_StartType start_type, */
8461
/* IDL: [in] svcctl_ErrorControl error_control, */
8462
/* IDL: [charset(UTF16)] [in] uint16 binary_path[*], */
8463
/* IDL: [charset(UTF16)] [in] [unique(1)] uint16 *LoadOrderGroupKey, */
8464
/* IDL: [in] [out] [unique(1)] uint32 *tag_id, */
8465
/* IDL: [in] [size_is(dependencies_size)] [unique(1)] uint8 *dependencies, */
8466
/* IDL: [in] uint32 dependencies_size, */
8467
/* IDL: [charset(UTF16)] [in] [unique(1)] uint16 *service_start_name, */
8468
/* IDL: [in] [size_is(password_size)] [unique(1)] uint8 *password, */
8469
/* IDL: [in] uint32 password_size, */
8470
/* IDL: [in] uint16 service_wow_type, */
8471
/* IDL: [out] [ref] policy_handle *handle */
8472
/* IDL: ); */
8473
8474
static unsigned
8475
svcctl_dissect_CreateWowService_response(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
8476
0
{
8477
0
  uint32_t status;
8478
8479
0
  di->dcerpc_procedure_name="CreateWowService";
8480
0
  offset = svcctl_dissect_element_CreateWowService_tag_id(tvb, offset, pinfo, tree, di, drep);
8481
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
8482
8483
0
  offset = svcctl_dissect_element_CreateWowService_handle(tvb, offset, pinfo, tree, di, drep);
8484
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
8485
8486
0
  offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_werror, &status);
8487
8488
0
  if (status != 0)
8489
0
    col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(pinfo->pool, status, &WERR_errors_ext, "Unknown DOS error 0x%08x"));
8490
8491
0
  return offset;
8492
0
}
8493
8494
static unsigned
8495
svcctl_dissect_CreateWowService_request(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
8496
0
{
8497
0
  di->dcerpc_procedure_name="CreateWowService";
8498
0
  offset = svcctl_dissect_element_CreateWowService_scm_handle(tvb, offset, pinfo, tree, di, drep);
8499
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
8500
0
  offset = svcctl_dissect_element_CreateWowService_ServiceName(tvb, offset, pinfo, tree, di, drep);
8501
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
8502
0
  offset = svcctl_dissect_element_CreateWowService_DisplayName(tvb, offset, pinfo, tree, di, drep);
8503
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
8504
0
  offset = svcctl_dissect_element_CreateWowService_desired_access(tvb, offset, pinfo, tree, di, drep);
8505
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
8506
0
  offset = svcctl_dissect_element_CreateWowService_service_type(tvb, offset, pinfo, tree, di, drep);
8507
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
8508
0
  offset = svcctl_dissect_element_CreateWowService_start_type(tvb, offset, pinfo, tree, di, drep);
8509
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
8510
0
  offset = svcctl_dissect_element_CreateWowService_error_control(tvb, offset, pinfo, tree, di, drep);
8511
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
8512
0
  offset = svcctl_dissect_element_CreateWowService_binary_path(tvb, offset, pinfo, tree, di, drep);
8513
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
8514
0
  offset = svcctl_dissect_element_CreateWowService_LoadOrderGroupKey(tvb, offset, pinfo, tree, di, drep);
8515
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
8516
0
  offset = svcctl_dissect_element_CreateWowService_tag_id(tvb, offset, pinfo, tree, di, drep);
8517
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
8518
0
  offset = svcctl_dissect_element_CreateWowService_dependencies(tvb, offset, pinfo, tree, di, drep);
8519
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
8520
0
  offset = svcctl_dissect_element_CreateWowService_dependencies_size(tvb, offset, pinfo, tree, di, drep);
8521
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
8522
0
  offset = svcctl_dissect_element_CreateWowService_service_start_name(tvb, offset, pinfo, tree, di, drep);
8523
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
8524
0
  offset = svcctl_dissect_element_CreateWowService_password(tvb, offset, pinfo, tree, di, drep);
8525
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
8526
0
  offset = svcctl_dissect_element_CreateWowService_password_size(tvb, offset, pinfo, tree, di, drep);
8527
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
8528
0
  offset = svcctl_dissect_element_CreateWowService_service_wow_type(tvb, offset, pinfo, tree, di, drep);
8529
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
8530
0
  return offset;
8531
0
}
8532
8533
/* IDL: WERROR svcctl_GetServiceRegistryStateKey( */
8534
/* IDL:  */
8535
/* IDL: ); */
8536
8537
static unsigned
8538
svcctl_dissect_GetServiceRegistryStateKey_response(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
8539
0
{
8540
0
  uint32_t status;
8541
8542
0
  di->dcerpc_procedure_name="GetServiceRegistryStateKey";
8543
0
  offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_werror, &status);
8544
8545
0
  if (status != 0)
8546
0
    col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(pinfo->pool, status, &WERR_errors_ext, "Unknown DOS error 0x%08x"));
8547
8548
0
  return offset;
8549
0
}
8550
8551
static unsigned
8552
svcctl_dissect_GetServiceRegistryStateKey_request(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
8553
0
{
8554
0
  di->dcerpc_procedure_name="GetServiceRegistryStateKey";
8555
0
  return offset;
8556
0
}
8557
8558
/* IDL: WERROR svcctl_GetServiceDirectory( */
8559
/* IDL:  */
8560
/* IDL: ); */
8561
8562
static unsigned
8563
svcctl_dissect_GetServiceDirectory_response(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
8564
0
{
8565
0
  uint32_t status;
8566
8567
0
  di->dcerpc_procedure_name="GetServiceDirectory";
8568
0
  offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_werror, &status);
8569
8570
0
  if (status != 0)
8571
0
    col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(pinfo->pool, status, &WERR_errors_ext, "Unknown DOS error 0x%08x"));
8572
8573
0
  return offset;
8574
0
}
8575
8576
static unsigned
8577
svcctl_dissect_GetServiceDirectory_request(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
8578
0
{
8579
0
  di->dcerpc_procedure_name="GetServiceDirectory";
8580
0
  return offset;
8581
0
}
8582
8583
/* IDL: WERROR svcctl_GetServiceProcessToken( */
8584
/* IDL:  */
8585
/* IDL: ); */
8586
8587
static unsigned
8588
svcctl_dissect_GetServiceProcessToken_response(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
8589
0
{
8590
0
  uint32_t status;
8591
8592
0
  di->dcerpc_procedure_name="GetServiceProcessToken";
8593
0
  offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_werror, &status);
8594
8595
0
  if (status != 0)
8596
0
    col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(pinfo->pool, status, &WERR_errors_ext, "Unknown DOS error 0x%08x"));
8597
8598
0
  return offset;
8599
0
}
8600
8601
static unsigned
8602
svcctl_dissect_GetServiceProcessToken_request(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
8603
0
{
8604
0
  di->dcerpc_procedure_name="GetServiceProcessToken";
8605
0
  return offset;
8606
0
}
8607
8608
static unsigned
8609
svcctl_dissect_element_OpenSCManager2_database_name(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
8610
0
{
8611
0
  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);
8612
8613
0
  return offset;
8614
0
}
8615
8616
static unsigned
8617
svcctl_dissect_element_OpenSCManager2_database_name_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
8618
0
{
8619
0
  char *data;
8620
8621
0
  offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(uint16_t), hf_svcctl_svcctl_OpenSCManager2_database_name, false, &data);
8622
0
  proto_item_append_text(tree, ": %s", data);
8623
8624
0
  return offset;
8625
0
}
8626
8627
static unsigned
8628
svcctl_dissect_element_OpenSCManager2_desired_access(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
8629
0
{
8630
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_OpenSCManager2_desired_access, 0);
8631
8632
0
  return offset;
8633
0
}
8634
8635
static unsigned
8636
svcctl_dissect_element_OpenSCManager2_handle(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
8637
0
{
8638
0
  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);
8639
8640
0
  return offset;
8641
0
}
8642
8643
static unsigned
8644
svcctl_dissect_element_OpenSCManager2_handle_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
8645
0
{
8646
0
  offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_svcctl_svcctl_OpenSCManager2_handle, PIDL_POLHND_OPEN);
8647
8648
0
  return offset;
8649
0
}
8650
8651
/* IDL: WERROR svcctl_OpenSCManager2( */
8652
/* IDL: [charset(UTF16)] [in] [unique(1)] uint16 *database_name, */
8653
/* IDL: [in] uint32 desired_access, */
8654
/* IDL: [out] [ref] policy_handle *handle */
8655
/* IDL: ); */
8656
8657
static unsigned
8658
svcctl_dissect_OpenSCManager2_response(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
8659
0
{
8660
0
  uint32_t status;
8661
8662
0
  di->dcerpc_procedure_name="OpenSCManager2";
8663
0
  offset = svcctl_dissect_element_OpenSCManager2_handle(tvb, offset, pinfo, tree, di, drep);
8664
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
8665
8666
0
  offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_werror, &status);
8667
8668
0
  if (status != 0)
8669
0
    col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(pinfo->pool, status, &WERR_errors_ext, "Unknown DOS error 0x%08x"));
8670
8671
0
  return offset;
8672
0
}
8673
8674
static unsigned
8675
svcctl_dissect_OpenSCManager2_request(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
8676
0
{
8677
0
  di->dcerpc_procedure_name="OpenSCManager2";
8678
0
  offset = svcctl_dissect_element_OpenSCManager2_database_name(tvb, offset, pinfo, tree, di, drep);
8679
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
8680
0
  offset = svcctl_dissect_element_OpenSCManager2_desired_access(tvb, offset, pinfo, tree, di, drep);
8681
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
8682
0
  return offset;
8683
0
}
8684
8685
/* IDL: WERROR svcctl_GetSharedServiceRegistryStateKey( */
8686
/* IDL:  */
8687
/* IDL: ); */
8688
8689
static unsigned
8690
svcctl_dissect_GetSharedServiceRegistryStateKey_response(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
8691
0
{
8692
0
  uint32_t status;
8693
8694
0
  di->dcerpc_procedure_name="GetSharedServiceRegistryStateKey";
8695
0
  offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_werror, &status);
8696
8697
0
  if (status != 0)
8698
0
    col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(pinfo->pool, status, &WERR_errors_ext, "Unknown DOS error 0x%08x"));
8699
8700
0
  return offset;
8701
0
}
8702
8703
static unsigned
8704
svcctl_dissect_GetSharedServiceRegistryStateKey_request(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
8705
0
{
8706
0
  di->dcerpc_procedure_name="GetSharedServiceRegistryStateKey";
8707
0
  return offset;
8708
0
}
8709
8710
/* IDL: WERROR svcctl_GetSharedServiceDirectory( */
8711
/* IDL:  */
8712
/* IDL: ); */
8713
8714
static unsigned
8715
svcctl_dissect_GetSharedServiceDirectory_response(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
8716
0
{
8717
0
  uint32_t status;
8718
8719
0
  di->dcerpc_procedure_name="GetSharedServiceDirectory";
8720
0
  offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_svcctl_werror, &status);
8721
8722
0
  if (status != 0)
8723
0
    col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(pinfo->pool, status, &WERR_errors_ext, "Unknown DOS error 0x%08x"));
8724
8725
0
  return offset;
8726
0
}
8727
8728
static unsigned
8729
svcctl_dissect_GetSharedServiceDirectory_request(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
8730
0
{
8731
0
  di->dcerpc_procedure_name="GetSharedServiceDirectory";
8732
0
  return offset;
8733
0
}
8734
8735
8736
static const dcerpc_sub_dissector svcctl_dissectors[] = {
8737
  { 0, "CloseServiceHandle",
8738
     svcctl_dissect_CloseServiceHandle_request, svcctl_dissect_CloseServiceHandle_response},
8739
  { 1, "ControlService",
8740
     svcctl_dissect_ControlService_request, svcctl_dissect_ControlService_response},
8741
  { 2, "DeleteService",
8742
     svcctl_dissect_DeleteService_request, svcctl_dissect_DeleteService_response},
8743
  { 3, "LockServiceDatabase",
8744
     svcctl_dissect_LockServiceDatabase_request, svcctl_dissect_LockServiceDatabase_response},
8745
  { 4, "QueryServiceObjectSecurity",
8746
     svcctl_dissect_QueryServiceObjectSecurity_request, svcctl_dissect_QueryServiceObjectSecurity_response},
8747
  { 5, "SetServiceObjectSecurity",
8748
     svcctl_dissect_SetServiceObjectSecurity_request, svcctl_dissect_SetServiceObjectSecurity_response},
8749
  { 6, "QueryServiceStatus",
8750
     svcctl_dissect_QueryServiceStatus_request, svcctl_dissect_QueryServiceStatus_response},
8751
  { 7, "SetServiceStatus",
8752
     svcctl_dissect_SetServiceStatus_request, svcctl_dissect_SetServiceStatus_response},
8753
  { 8, "UnlockServiceDatabase",
8754
     svcctl_dissect_UnlockServiceDatabase_request, svcctl_dissect_UnlockServiceDatabase_response},
8755
  { 9, "NotifyBootConfigStatus",
8756
     svcctl_dissect_NotifyBootConfigStatus_request, svcctl_dissect_NotifyBootConfigStatus_response},
8757
  { 10, "SCSetServiceBitsW",
8758
     svcctl_dissect_SCSetServiceBitsW_request, svcctl_dissect_SCSetServiceBitsW_response},
8759
  { 11, "ChangeServiceConfigW",
8760
     svcctl_dissect_ChangeServiceConfigW_request, svcctl_dissect_ChangeServiceConfigW_response},
8761
  { 12, "CreateServiceW",
8762
     svcctl_dissect_CreateServiceW_request, svcctl_dissect_CreateServiceW_response},
8763
  { 13, "EnumDependentServicesW",
8764
     svcctl_dissect_EnumDependentServicesW_request, svcctl_dissect_EnumDependentServicesW_response},
8765
  { 14, "EnumServicesStatusW",
8766
     svcctl_dissect_EnumServicesStatusW_request, svcctl_dissect_EnumServicesStatusW_response},
8767
  { 15, "OpenSCManagerW",
8768
     svcctl_dissect_OpenSCManagerW_request, svcctl_dissect_OpenSCManagerW_response},
8769
  { 16, "OpenServiceW",
8770
     svcctl_dissect_OpenServiceW_request, svcctl_dissect_OpenServiceW_response},
8771
  { 17, "QueryServiceConfigW",
8772
     svcctl_dissect_QueryServiceConfigW_request, svcctl_dissect_QueryServiceConfigW_response},
8773
  { 18, "QueryServiceLockStatusW",
8774
     svcctl_dissect_QueryServiceLockStatusW_request, svcctl_dissect_QueryServiceLockStatusW_response},
8775
  { 19, "StartServiceW",
8776
     svcctl_dissect_StartServiceW_request, svcctl_dissect_StartServiceW_response},
8777
  { 20, "GetServiceDisplayNameW",
8778
     svcctl_dissect_GetServiceDisplayNameW_request, svcctl_dissect_GetServiceDisplayNameW_response},
8779
  { 21, "GetServiceKeyNameW",
8780
     svcctl_dissect_GetServiceKeyNameW_request, svcctl_dissect_GetServiceKeyNameW_response},
8781
  { 22, "SCSetServiceBitsA",
8782
     svcctl_dissect_SCSetServiceBitsA_request, svcctl_dissect_SCSetServiceBitsA_response},
8783
  { 23, "ChangeServiceConfigA",
8784
     svcctl_dissect_ChangeServiceConfigA_request, svcctl_dissect_ChangeServiceConfigA_response},
8785
  { 24, "CreateServiceA",
8786
     svcctl_dissect_CreateServiceA_request, svcctl_dissect_CreateServiceA_response},
8787
  { 25, "EnumDependentServicesA",
8788
     svcctl_dissect_EnumDependentServicesA_request, svcctl_dissect_EnumDependentServicesA_response},
8789
  { 26, "EnumServicesStatusA",
8790
     svcctl_dissect_EnumServicesStatusA_request, svcctl_dissect_EnumServicesStatusA_response},
8791
  { 27, "OpenSCManagerA",
8792
     svcctl_dissect_OpenSCManagerA_request, svcctl_dissect_OpenSCManagerA_response},
8793
  { 28, "OpenServiceA",
8794
     svcctl_dissect_OpenServiceA_request, svcctl_dissect_OpenServiceA_response},
8795
  { 29, "QueryServiceConfigA",
8796
     svcctl_dissect_QueryServiceConfigA_request, svcctl_dissect_QueryServiceConfigA_response},
8797
  { 30, "QueryServiceLockStatusA",
8798
     svcctl_dissect_QueryServiceLockStatusA_request, svcctl_dissect_QueryServiceLockStatusA_response},
8799
  { 31, "StartServiceA",
8800
     svcctl_dissect_StartServiceA_request, svcctl_dissect_StartServiceA_response},
8801
  { 32, "GetServiceDisplayNameA",
8802
     svcctl_dissect_GetServiceDisplayNameA_request, svcctl_dissect_GetServiceDisplayNameA_response},
8803
  { 33, "GetServiceKeyNameA",
8804
     svcctl_dissect_GetServiceKeyNameA_request, svcctl_dissect_GetServiceKeyNameA_response},
8805
  { 34, "GetCurrentGroupeStateW",
8806
     svcctl_dissect_GetCurrentGroupeStateW_request, svcctl_dissect_GetCurrentGroupeStateW_response},
8807
  { 35, "EnumServiceGroupW",
8808
     svcctl_dissect_EnumServiceGroupW_request, svcctl_dissect_EnumServiceGroupW_response},
8809
  { 36, "ChangeServiceConfig2A",
8810
     svcctl_dissect_ChangeServiceConfig2A_request, svcctl_dissect_ChangeServiceConfig2A_response},
8811
  { 37, "ChangeServiceConfig2W",
8812
     svcctl_dissect_ChangeServiceConfig2W_request, svcctl_dissect_ChangeServiceConfig2W_response},
8813
  { 38, "QueryServiceConfig2A",
8814
     svcctl_dissect_QueryServiceConfig2A_request, svcctl_dissect_QueryServiceConfig2A_response},
8815
  { 39, "QueryServiceConfig2W",
8816
     svcctl_dissect_QueryServiceConfig2W_request, svcctl_dissect_QueryServiceConfig2W_response},
8817
  { 40, "QueryServiceStatusEx",
8818
     svcctl_dissect_QueryServiceStatusEx_request, svcctl_dissect_QueryServiceStatusEx_response},
8819
  { 41, "EnumServicesStatusExA",
8820
     svcctl_dissect_EnumServicesStatusExA_request, svcctl_dissect_EnumServicesStatusExA_response},
8821
  { 42, "EnumServicesStatusExW",
8822
     svcctl_dissect_EnumServicesStatusExW_request, svcctl_dissect_EnumServicesStatusExW_response},
8823
  { 43, "ScBroadcastServiceControlMessage",
8824
     svcctl_dissect_ScBroadcastServiceControlMessage_request, svcctl_dissect_ScBroadcastServiceControlMessage_response},
8825
  { 44, "CreateServiceWOW64A",
8826
     svcctl_dissect_CreateServiceWOW64A_request, svcctl_dissect_CreateServiceWOW64A_response},
8827
  { 45, "CreateServiceWOW64W",
8828
     svcctl_dissect_CreateServiceWOW64W_request, svcctl_dissect_CreateServiceWOW64W_response},
8829
  { 46, "ScQueryServiceTagInfo",
8830
     svcctl_dissect_ScQueryServiceTagInfo_request, svcctl_dissect_ScQueryServiceTagInfo_response},
8831
  { 47, "NotifyServiceStatusChange",
8832
     svcctl_dissect_NotifyServiceStatusChange_request, svcctl_dissect_NotifyServiceStatusChange_response},
8833
  { 48, "GetNotifyResults",
8834
     svcctl_dissect_GetNotifyResults_request, svcctl_dissect_GetNotifyResults_response},
8835
  { 49, "CloseNotifyHandle",
8836
     svcctl_dissect_CloseNotifyHandle_request, svcctl_dissect_CloseNotifyHandle_response},
8837
  { 50, "ControlServiceExA",
8838
     svcctl_dissect_ControlServiceExA_request, svcctl_dissect_ControlServiceExA_response},
8839
  { 51, "ControlServiceExW",
8840
     svcctl_dissect_ControlServiceExW_request, svcctl_dissect_ControlServiceExW_response},
8841
  { 52, "ScSendPnPMessage",
8842
     svcctl_dissect_ScSendPnPMessage_request, svcctl_dissect_ScSendPnPMessage_response},
8843
  { 53, "ScValidatePnPService",
8844
     svcctl_dissect_ScValidatePnPService_request, svcctl_dissect_ScValidatePnPService_response},
8845
  { 54, "ScOpenServiceStatusHandle",
8846
     svcctl_dissect_ScOpenServiceStatusHandle_request, svcctl_dissect_ScOpenServiceStatusHandle_response},
8847
  { 55, "ScQueryServiceConfig",
8848
     svcctl_dissect_ScQueryServiceConfig_request, svcctl_dissect_ScQueryServiceConfig_response},
8849
  { 56, "QueryServiceConfigEx",
8850
     svcctl_dissect_QueryServiceConfigEx_request, svcctl_dissect_QueryServiceConfigEx_response},
8851
  { 57, "ScRegisterPreshutdownRestart",
8852
     svcctl_dissect_ScRegisterPreshutdownRestart_request, svcctl_dissect_ScRegisterPreshutdownRestart_response},
8853
  { 58, "ScReparseServiceDatabase",
8854
     svcctl_dissect_ScReparseServiceDatabase_request, svcctl_dissect_ScReparseServiceDatabase_response},
8855
  { 59, "QueryUserServiceName",
8856
     svcctl_dissect_QueryUserServiceName_request, svcctl_dissect_QueryUserServiceName_response},
8857
  { 60, "CreateWowService",
8858
     svcctl_dissect_CreateWowService_request, svcctl_dissect_CreateWowService_response},
8859
  { 61, "GetServiceRegistryStateKey",
8860
     svcctl_dissect_GetServiceRegistryStateKey_request, svcctl_dissect_GetServiceRegistryStateKey_response},
8861
  { 62, "GetServiceDirectory",
8862
     svcctl_dissect_GetServiceDirectory_request, svcctl_dissect_GetServiceDirectory_response},
8863
  { 63, "GetServiceProcessToken",
8864
     svcctl_dissect_GetServiceProcessToken_request, svcctl_dissect_GetServiceProcessToken_response},
8865
  { 64, "OpenSCManager2",
8866
     svcctl_dissect_OpenSCManager2_request, svcctl_dissect_OpenSCManager2_response},
8867
  { 65, "GetSharedServiceRegistryStateKey",
8868
     svcctl_dissect_GetSharedServiceRegistryStateKey_request, svcctl_dissect_GetSharedServiceRegistryStateKey_response},
8869
  { 66, "GetSharedServiceDirectory",
8870
     svcctl_dissect_GetSharedServiceDirectory_request, svcctl_dissect_GetSharedServiceDirectory_response},
8871
  { 0, NULL, NULL, NULL }
8872
};
8873
8874
void proto_register_dcerpc_svcctl(void)
8875
14
{
8876
14
  static hf_register_info hf[] = {
8877
14
  { &hf_svcctl_ENUM_SERVICE_STATUSA_display_name,
8878
14
    { "Display Name", "svcctl.ENUM_SERVICE_STATUSA.display_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
8879
14
  { &hf_svcctl_ENUM_SERVICE_STATUSA_service_name,
8880
14
    { "Service Name", "svcctl.ENUM_SERVICE_STATUSA.service_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
8881
14
  { &hf_svcctl_ENUM_SERVICE_STATUSA_status,
8882
14
    { "Status", "svcctl.ENUM_SERVICE_STATUSA.status", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
8883
14
  { &hf_svcctl_ENUM_SERVICE_STATUSW_display_name,
8884
14
    { "Display Name", "svcctl.ENUM_SERVICE_STATUSW.display_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
8885
14
  { &hf_svcctl_ENUM_SERVICE_STATUSW_service_name,
8886
14
    { "Service Name", "svcctl.ENUM_SERVICE_STATUSW.service_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
8887
14
  { &hf_svcctl_ENUM_SERVICE_STATUSW_status,
8888
14
    { "Status", "svcctl.ENUM_SERVICE_STATUSW.status", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
8889
14
  { &hf_svcctl_EnumServicesStatusExA_group_name,
8890
14
    { "Group Name", "svcctl.EnumServicesStatusExA.group_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
8891
14
  { &hf_svcctl_EnumServicesStatusExA_info_level,
8892
14
    { "Info Level", "svcctl.EnumServicesStatusExA.info_level", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
8893
14
  { &hf_svcctl_EnumServicesStatusExA_needed,
8894
14
    { "Needed", "svcctl.EnumServicesStatusExA.needed", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
8895
14
  { &hf_svcctl_EnumServicesStatusExA_offered,
8896
14
    { "Offered", "svcctl.EnumServicesStatusExA.offered", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
8897
14
  { &hf_svcctl_EnumServicesStatusExA_resume_handle,
8898
14
    { "Resume Handle", "svcctl.EnumServicesStatusExA.resume_handle", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
8899
14
  { &hf_svcctl_EnumServicesStatusExA_scm_handle,
8900
14
    { "Scm Handle", "svcctl.EnumServicesStatusExA.scm_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
8901
14
  { &hf_svcctl_EnumServicesStatusExA_service_returned,
8902
14
    { "Service Returned", "svcctl.EnumServicesStatusExA.service_returned", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
8903
14
  { &hf_svcctl_EnumServicesStatusExA_service_type,
8904
14
    { "Service Type", "svcctl.EnumServicesStatusExA.service_type", FT_UINT32, BASE_DEC, VALS(svcctl_svcctl_ServiceType_vals), 0, NULL, HFILL }},
8905
14
  { &hf_svcctl_EnumServicesStatusExA_services,
8906
14
    { "Services", "svcctl.EnumServicesStatusExA.services", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
8907
14
  { &hf_svcctl_EnumServicesStatusExA_state,
8908
14
    { "State", "svcctl.EnumServicesStatusExA.state", FT_UINT32, BASE_DEC, VALS(svcctl_svcctl_ServiceState_vals), 0, NULL, HFILL }},
8909
14
  { &hf_svcctl_EnumServicesStatusExW_group_name,
8910
14
    { "Group Name", "svcctl.EnumServicesStatusExW.group_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
8911
14
  { &hf_svcctl_EnumServicesStatusExW_info_level,
8912
14
    { "Info Level", "svcctl.EnumServicesStatusExW.info_level", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
8913
14
  { &hf_svcctl_EnumServicesStatusExW_needed,
8914
14
    { "Needed", "svcctl.EnumServicesStatusExW.needed", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
8915
14
  { &hf_svcctl_EnumServicesStatusExW_offered,
8916
14
    { "Offered", "svcctl.EnumServicesStatusExW.offered", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
8917
14
  { &hf_svcctl_EnumServicesStatusExW_resume_handle,
8918
14
    { "Resume Handle", "svcctl.EnumServicesStatusExW.resume_handle", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
8919
14
  { &hf_svcctl_EnumServicesStatusExW_scmanager,
8920
14
    { "Scmanager", "svcctl.EnumServicesStatusExW.scmanager", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
8921
14
  { &hf_svcctl_EnumServicesStatusExW_service_returned,
8922
14
    { "Service Returned", "svcctl.EnumServicesStatusExW.service_returned", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
8923
14
  { &hf_svcctl_EnumServicesStatusExW_service_type,
8924
14
    { "Service Type", "svcctl.EnumServicesStatusExW.service_type", FT_UINT32, BASE_DEC, VALS(svcctl_svcctl_ServiceType_vals), 0, NULL, HFILL }},
8925
14
  { &hf_svcctl_EnumServicesStatusExW_services,
8926
14
    { "Services", "svcctl.EnumServicesStatusExW.services", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
8927
14
  { &hf_svcctl_EnumServicesStatusExW_state,
8928
14
    { "State", "svcctl.EnumServicesStatusExW.state", FT_UINT32, BASE_DEC, VALS(svcctl_svcctl_ServiceState_vals), 0, NULL, HFILL }},
8929
14
  { &hf_svcctl_QUERY_SERVICE_CONFIG_dependencies,
8930
14
    { "Dependencies", "svcctl.QUERY_SERVICE_CONFIG.dependencies", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
8931
14
  { &hf_svcctl_QUERY_SERVICE_CONFIG_displayname,
8932
14
    { "Displayname", "svcctl.QUERY_SERVICE_CONFIG.displayname", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
8933
14
  { &hf_svcctl_QUERY_SERVICE_CONFIG_error_control,
8934
14
    { "Error Control", "svcctl.QUERY_SERVICE_CONFIG.error_control", FT_UINT32, BASE_DEC, VALS(svcctl_svcctl_ErrorControl_vals), 0, NULL, HFILL }},
8935
14
  { &hf_svcctl_QUERY_SERVICE_CONFIG_executablepath,
8936
14
    { "Executablepath", "svcctl.QUERY_SERVICE_CONFIG.executablepath", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
8937
14
  { &hf_svcctl_QUERY_SERVICE_CONFIG_loadordergroup,
8938
14
    { "Loadordergroup", "svcctl.QUERY_SERVICE_CONFIG.loadordergroup", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
8939
14
  { &hf_svcctl_QUERY_SERVICE_CONFIG_service_type,
8940
14
    { "Service Type", "svcctl.QUERY_SERVICE_CONFIG.service_type", FT_UINT32, BASE_DEC, VALS(svcctl_svcctl_ServiceType_vals), 0, NULL, HFILL }},
8941
14
  { &hf_svcctl_QUERY_SERVICE_CONFIG_start_type,
8942
14
    { "Start Type", "svcctl.QUERY_SERVICE_CONFIG.start_type", FT_UINT32, BASE_DEC, VALS(svcctl_svcctl_StartType_vals), 0, NULL, HFILL }},
8943
14
  { &hf_svcctl_QUERY_SERVICE_CONFIG_startname,
8944
14
    { "Startname", "svcctl.QUERY_SERVICE_CONFIG.startname", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
8945
14
  { &hf_svcctl_QUERY_SERVICE_CONFIG_tag_id,
8946
14
    { "Tag Id", "svcctl.QUERY_SERVICE_CONFIG.tag_id", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
8947
14
  { &hf_svcctl_SERVICE_LOCK_STATUS_is_locked,
8948
14
    { "Is Locked", "svcctl.SERVICE_LOCK_STATUS.is_locked", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
8949
14
  { &hf_svcctl_SERVICE_LOCK_STATUS_lock_duration,
8950
14
    { "Lock Duration", "svcctl.SERVICE_LOCK_STATUS.lock_duration", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
8951
14
  { &hf_svcctl_SERVICE_LOCK_STATUS_lock_owner,
8952
14
    { "Lock Owner", "svcctl.SERVICE_LOCK_STATUS.lock_owner", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
8953
14
  { &hf_svcctl_SERVICE_STATUS_PROCESS_check_point,
8954
14
    { "Check Point", "svcctl.SERVICE_STATUS_PROCESS.check_point", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
8955
14
  { &hf_svcctl_SERVICE_STATUS_PROCESS_controls_accepted,
8956
14
    { "Controls Accepted", "svcctl.SERVICE_STATUS_PROCESS.controls_accepted", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
8957
14
  { &hf_svcctl_SERVICE_STATUS_PROCESS_process_id,
8958
14
    { "Process Id", "svcctl.SERVICE_STATUS_PROCESS.process_id", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
8959
14
  { &hf_svcctl_SERVICE_STATUS_PROCESS_service_exit_code,
8960
14
    { "Service Exit Code", "svcctl.SERVICE_STATUS_PROCESS.service_exit_code", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
8961
14
  { &hf_svcctl_SERVICE_STATUS_PROCESS_service_flags,
8962
14
    { "Service Flags", "svcctl.SERVICE_STATUS_PROCESS.service_flags", FT_UINT32, BASE_DEC, VALS(svcctl_svcctl_ServiceFlags_vals), 0, NULL, HFILL }},
8963
14
  { &hf_svcctl_SERVICE_STATUS_PROCESS_state,
8964
14
    { "State", "svcctl.SERVICE_STATUS_PROCESS.state", FT_UINT32, BASE_DEC, VALS(svcctl_svcctl_ServiceStatus_vals), 0, NULL, HFILL }},
8965
14
  { &hf_svcctl_SERVICE_STATUS_PROCESS_type,
8966
14
    { "Type", "svcctl.SERVICE_STATUS_PROCESS.type", FT_UINT32, BASE_DEC, VALS(svcctl_svcctl_ServiceType_vals), 0, NULL, HFILL }},
8967
14
  { &hf_svcctl_SERVICE_STATUS_PROCESS_wait_hint,
8968
14
    { "Wait Hint", "svcctl.SERVICE_STATUS_PROCESS.wait_hint", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
8969
14
  { &hf_svcctl_SERVICE_STATUS_PROCESS_win32_exit_code,
8970
14
    { "Win32 Exit Code", "svcctl.SERVICE_STATUS_PROCESS.win32_exit_code", FT_UINT32, BASE_HEX|BASE_EXT_STRING, &WERR_errors_ext, 0, NULL, HFILL }},
8971
14
  { &hf_svcctl_SERVICE_STATUS_check_point,
8972
14
    { "Check Point", "svcctl.SERVICE_STATUS.check_point", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
8973
14
  { &hf_svcctl_SERVICE_STATUS_controls_accepted,
8974
14
    { "Controls Accepted", "svcctl.SERVICE_STATUS.controls_accepted", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
8975
14
  { &hf_svcctl_SERVICE_STATUS_service_exit_code,
8976
14
    { "Service Exit Code", "svcctl.SERVICE_STATUS.service_exit_code", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
8977
14
  { &hf_svcctl_SERVICE_STATUS_state,
8978
14
    { "State", "svcctl.SERVICE_STATUS.state", FT_UINT32, BASE_DEC, VALS(svcctl_svcctl_ServiceStatus_vals), 0, NULL, HFILL }},
8979
14
  { &hf_svcctl_SERVICE_STATUS_type,
8980
14
    { "Type", "svcctl.SERVICE_STATUS.type", FT_UINT32, BASE_DEC, VALS(svcctl_svcctl_ServiceType_vals), 0, NULL, HFILL }},
8981
14
  { &hf_svcctl_SERVICE_STATUS_wait_hint,
8982
14
    { "Wait Hint", "svcctl.SERVICE_STATUS.wait_hint", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
8983
14
  { &hf_svcctl_SERVICE_STATUS_win32_exit_code,
8984
14
    { "Win32 Exit Code", "svcctl.SERVICE_STATUS.win32_exit_code", FT_UINT32, BASE_HEX|BASE_EXT_STRING, &WERR_errors_ext, 0, NULL, HFILL }},
8985
14
  { &hf_svcctl_opnum,
8986
14
    { "Operation", "svcctl.opnum", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
8987
14
  { &hf_svcctl_service_buffer_size,
8988
14
    { "Buffer Size", "svcctl.services.buffer_size", FT_UINT32, BASE_DEC, NULL, 0, "NULL", HFILL }},
8989
14
  { &hf_svcctl_service_referent_id,
8990
14
    { "Referent ID(offset)", "svcctl.ENUM_SERVICE_STATUSW.referent_id", FT_UINT32, BASE_DEC, NULL, 0, "NULL", HFILL }},
8991
14
  { &hf_svcctl_svcctl_ArgumentStringA_string,
8992
14
    { "String", "svcctl.svcctl_ArgumentStringA.string", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
8993
14
  { &hf_svcctl_svcctl_ArgumentString_string,
8994
14
    { "String", "svcctl.svcctl_ArgumentString.string", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
8995
14
  { &hf_svcctl_svcctl_ChangeServiceConfig2A_info,
8996
14
    { "Info", "svcctl.svcctl_ChangeServiceConfig2A.info", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
8997
14
  { &hf_svcctl_svcctl_ChangeServiceConfig2A_info_level,
8998
14
    { "Info Level", "svcctl.svcctl_ChangeServiceConfig2A.info_level", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
8999
14
  { &hf_svcctl_svcctl_ChangeServiceConfig2A_service_handle,
9000
14
    { "Service Handle", "svcctl.svcctl_ChangeServiceConfig2A.service_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
9001
14
  { &hf_svcctl_svcctl_ChangeServiceConfig2W_handle,
9002
14
    { "Handle", "svcctl.svcctl_ChangeServiceConfig2W.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
9003
14
  { &hf_svcctl_svcctl_ChangeServiceConfig2W_info,
9004
14
    { "Info", "svcctl.svcctl_ChangeServiceConfig2W.info", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
9005
14
  { &hf_svcctl_svcctl_ChangeServiceConfig2W_info_level,
9006
14
    { "Info Level", "svcctl.svcctl_ChangeServiceConfig2W.info_level", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
9007
14
  { &hf_svcctl_svcctl_ChangeServiceConfigA_binary_path,
9008
14
    { "Binary Path", "svcctl.svcctl_ChangeServiceConfigA.binary_path", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
9009
14
  { &hf_svcctl_svcctl_ChangeServiceConfigA_dependencies,
9010
14
    { "Dependencies", "svcctl.svcctl_ChangeServiceConfigA.dependencies", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
9011
14
  { &hf_svcctl_svcctl_ChangeServiceConfigA_display_name,
9012
14
    { "Display Name", "svcctl.svcctl_ChangeServiceConfigA.display_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
9013
14
  { &hf_svcctl_svcctl_ChangeServiceConfigA_error_control,
9014
14
    { "Error Control", "svcctl.svcctl_ChangeServiceConfigA.error_control", FT_UINT32, BASE_DEC, VALS(svcctl_svcctl_ErrorControl_vals), 0, NULL, HFILL }},
9015
14
  { &hf_svcctl_svcctl_ChangeServiceConfigA_load_order_group,
9016
14
    { "Load Order Group", "svcctl.svcctl_ChangeServiceConfigA.load_order_group", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
9017
14
  { &hf_svcctl_svcctl_ChangeServiceConfigA_password,
9018
14
    { "Password", "svcctl.svcctl_ChangeServiceConfigA.password", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
9019
14
  { &hf_svcctl_svcctl_ChangeServiceConfigA_service_handle,
9020
14
    { "Service Handle", "svcctl.svcctl_ChangeServiceConfigA.service_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
9021
14
  { &hf_svcctl_svcctl_ChangeServiceConfigA_service_start_name,
9022
14
    { "Service Start Name", "svcctl.svcctl_ChangeServiceConfigA.service_start_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
9023
14
  { &hf_svcctl_svcctl_ChangeServiceConfigA_service_type,
9024
14
    { "Service Type", "svcctl.svcctl_ChangeServiceConfigA.service_type", FT_UINT32, BASE_DEC, VALS(svcctl_svcctl_ServiceType_vals), 0, NULL, HFILL }},
9025
14
  { &hf_svcctl_svcctl_ChangeServiceConfigA_start_type,
9026
14
    { "Start Type", "svcctl.svcctl_ChangeServiceConfigA.start_type", FT_UINT32, BASE_DEC, VALS(svcctl_svcctl_StartType_vals), 0, NULL, HFILL }},
9027
14
  { &hf_svcctl_svcctl_ChangeServiceConfigA_tag_id,
9028
14
    { "Tag Id", "svcctl.svcctl_ChangeServiceConfigA.tag_id", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
9029
14
  { &hf_svcctl_svcctl_ChangeServiceConfigW_binary_path,
9030
14
    { "Binary Path", "svcctl.svcctl_ChangeServiceConfigW.binary_path", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
9031
14
  { &hf_svcctl_svcctl_ChangeServiceConfigW_dependencies,
9032
14
    { "Dependencies", "svcctl.svcctl_ChangeServiceConfigW.dependencies", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
9033
14
  { &hf_svcctl_svcctl_ChangeServiceConfigW_display_name,
9034
14
    { "Display Name", "svcctl.svcctl_ChangeServiceConfigW.display_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
9035
14
  { &hf_svcctl_svcctl_ChangeServiceConfigW_dwDependSize,
9036
14
    { "DwDependSize", "svcctl.svcctl_ChangeServiceConfigW.dwDependSize", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
9037
14
  { &hf_svcctl_svcctl_ChangeServiceConfigW_dwPwSize,
9038
14
    { "DwPwSize", "svcctl.svcctl_ChangeServiceConfigW.dwPwSize", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
9039
14
  { &hf_svcctl_svcctl_ChangeServiceConfigW_error_control,
9040
14
    { "Error Control", "svcctl.svcctl_ChangeServiceConfigW.error_control", FT_UINT32, BASE_DEC, VALS(svcctl_svcctl_ErrorControl_vals), 0, NULL, HFILL }},
9041
14
  { &hf_svcctl_svcctl_ChangeServiceConfigW_load_order_group,
9042
14
    { "Load Order Group", "svcctl.svcctl_ChangeServiceConfigW.load_order_group", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
9043
14
  { &hf_svcctl_svcctl_ChangeServiceConfigW_password,
9044
14
    { "Password", "svcctl.svcctl_ChangeServiceConfigW.password", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
9045
14
  { &hf_svcctl_svcctl_ChangeServiceConfigW_service_handle,
9046
14
    { "Service Handle", "svcctl.svcctl_ChangeServiceConfigW.service_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
9047
14
  { &hf_svcctl_svcctl_ChangeServiceConfigW_service_start_name,
9048
14
    { "Service Start Name", "svcctl.svcctl_ChangeServiceConfigW.service_start_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
9049
14
  { &hf_svcctl_svcctl_ChangeServiceConfigW_service_type,
9050
14
    { "Service Type", "svcctl.svcctl_ChangeServiceConfigW.service_type", FT_UINT32, BASE_DEC, VALS(svcctl_svcctl_ServiceType_vals), 0, NULL, HFILL }},
9051
14
  { &hf_svcctl_svcctl_ChangeServiceConfigW_start_type,
9052
14
    { "Start Type", "svcctl.svcctl_ChangeServiceConfigW.start_type", FT_UINT32, BASE_DEC, VALS(svcctl_svcctl_StartType_vals), 0, NULL, HFILL }},
9053
14
  { &hf_svcctl_svcctl_ChangeServiceConfigW_tag_id,
9054
14
    { "Tag Id", "svcctl.svcctl_ChangeServiceConfigW.tag_id", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
9055
14
  { &hf_svcctl_svcctl_CloseServiceHandle_object_handle,
9056
14
    { "Object Handle", "svcctl.svcctl_CloseServiceHandle.object_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
9057
14
  { &hf_svcctl_svcctl_ControlService_control,
9058
14
    { "Control", "svcctl.svcctl_ControlService.control", FT_UINT32, BASE_DEC, VALS(svcctl_SERVICE_CONTROL_vals), 0, NULL, HFILL }},
9059
14
  { &hf_svcctl_svcctl_ControlService_service_handle,
9060
14
    { "Service Handle", "svcctl.svcctl_ControlService.service_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
9061
14
  { &hf_svcctl_svcctl_ControlService_service_status,
9062
14
    { "Service Status", "svcctl.svcctl_ControlService.service_status", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
9063
14
  { &hf_svcctl_svcctl_ControlsAccepted_SERVICE_ACCEPT_HARDWAREPROFILECHANGE,
9064
14
    { "SERVICE ACCEPT HARDWAREPROFILECHANGE", "svcctl.svcctl_ControlsAccepted.SERVICE_ACCEPT_HARDWAREPROFILECHANGE", FT_BOOLEAN, 32, TFS(&svcctl_ControlsAccepted_SERVICE_ACCEPT_HARDWAREPROFILECHANGE_tfs), ( 0x00000020 ), NULL, HFILL }},
9065
14
  { &hf_svcctl_svcctl_ControlsAccepted_SERVICE_ACCEPT_NETBINDCHANGE,
9066
14
    { "SERVICE ACCEPT NETBINDCHANGE", "svcctl.svcctl_ControlsAccepted.SERVICE_ACCEPT_NETBINDCHANGE", FT_BOOLEAN, 32, TFS(&svcctl_ControlsAccepted_SERVICE_ACCEPT_NETBINDCHANGE_tfs), ( 0x00000010 ), NULL, HFILL }},
9067
14
  { &hf_svcctl_svcctl_ControlsAccepted_SERVICE_ACCEPT_PARAMCHANGE,
9068
14
    { "SERVICE ACCEPT PARAMCHANGE", "svcctl.svcctl_ControlsAccepted.SERVICE_ACCEPT_PARAMCHANGE", FT_BOOLEAN, 32, TFS(&svcctl_ControlsAccepted_SERVICE_ACCEPT_PARAMCHANGE_tfs), ( 0x00000008 ), NULL, HFILL }},
9069
14
  { &hf_svcctl_svcctl_ControlsAccepted_SERVICE_ACCEPT_PAUSE_CONTINUE,
9070
14
    { "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 }},
9071
14
  { &hf_svcctl_svcctl_ControlsAccepted_SERVICE_ACCEPT_POWEREVENT,
9072
14
    { "SERVICE ACCEPT POWEREVENT", "svcctl.svcctl_ControlsAccepted.SERVICE_ACCEPT_POWEREVENT", FT_BOOLEAN, 32, TFS(&svcctl_ControlsAccepted_SERVICE_ACCEPT_POWEREVENT_tfs), ( 0x00000040 ), NULL, HFILL }},
9073
14
  { &hf_svcctl_svcctl_ControlsAccepted_SERVICE_ACCEPT_PRESHUTDOWN,
9074
14
    { "SERVICE ACCEPT PRESHUTDOWN", "svcctl.svcctl_ControlsAccepted.SERVICE_ACCEPT_PRESHUTDOWN", FT_BOOLEAN, 32, TFS(&svcctl_ControlsAccepted_SERVICE_ACCEPT_PRESHUTDOWN_tfs), ( 0x00000100 ), NULL, HFILL }},
9075
14
  { &hf_svcctl_svcctl_ControlsAccepted_SERVICE_ACCEPT_SESSIONCHANGE,
9076
14
    { "SERVICE ACCEPT SESSIONCHANGE", "svcctl.svcctl_ControlsAccepted.SERVICE_ACCEPT_SESSIONCHANGE", FT_BOOLEAN, 32, TFS(&svcctl_ControlsAccepted_SERVICE_ACCEPT_SESSIONCHANGE_tfs), ( 0x00000080 ), NULL, HFILL }},
9077
14
  { &hf_svcctl_svcctl_ControlsAccepted_SERVICE_ACCEPT_SHUTDOWN,
9078
14
    { "SERVICE ACCEPT SHUTDOWN", "svcctl.svcctl_ControlsAccepted.SERVICE_ACCEPT_SHUTDOWN", FT_BOOLEAN, 32, TFS(&svcctl_ControlsAccepted_SERVICE_ACCEPT_SHUTDOWN_tfs), ( 0x00000004 ), NULL, HFILL }},
9079
14
  { &hf_svcctl_svcctl_ControlsAccepted_SERVICE_ACCEPT_STOP,
9080
14
    { "SERVICE ACCEPT STOP", "svcctl.svcctl_ControlsAccepted.SERVICE_ACCEPT_STOP", FT_BOOLEAN, 32, TFS(&svcctl_ControlsAccepted_SERVICE_ACCEPT_STOP_tfs), ( 0x00000001 ), NULL, HFILL }},
9081
14
  { &hf_svcctl_svcctl_ControlsAccepted_SERVICE_ACCEPT_TIMECHANGE,
9082
14
    { "SERVICE ACCEPT TIMECHANGE", "svcctl.svcctl_ControlsAccepted.SERVICE_ACCEPT_TIMECHANGE", FT_BOOLEAN, 32, TFS(&svcctl_ControlsAccepted_SERVICE_ACCEPT_TIMECHANGE_tfs), ( 0x00000200 ), NULL, HFILL }},
9083
14
  { &hf_svcctl_svcctl_ControlsAccepted_SERVICE_ACCEPT_TRIGGEREVENT,
9084
14
    { "SERVICE ACCEPT TRIGGEREVENT", "svcctl.svcctl_ControlsAccepted.SERVICE_ACCEPT_TRIGGEREVENT", FT_BOOLEAN, 32, TFS(&svcctl_ControlsAccepted_SERVICE_ACCEPT_TRIGGEREVENT_tfs), ( 0x00000400 ), NULL, HFILL }},
9085
14
  { &hf_svcctl_svcctl_ControlsAccepted_SERVICE_ACCEPT_USERMODEREBOOT,
9086
14
    { "SERVICE ACCEPT USERMODEREBOOT", "svcctl.svcctl_ControlsAccepted.SERVICE_ACCEPT_USERMODEREBOOT", FT_BOOLEAN, 32, TFS(&svcctl_ControlsAccepted_SERVICE_ACCEPT_USERMODEREBOOT_tfs), ( 0x00000800 ), NULL, HFILL }},
9087
14
  { &hf_svcctl_svcctl_CreateServiceA_DisplayName,
9088
14
    { "DisplayName", "svcctl.svcctl_CreateServiceA.DisplayName", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
9089
14
  { &hf_svcctl_svcctl_CreateServiceA_LoadOrderGroupKey,
9090
14
    { "LoadOrderGroupKey", "svcctl.svcctl_CreateServiceA.LoadOrderGroupKey", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
9091
14
  { &hf_svcctl_svcctl_CreateServiceA_ServiceName,
9092
14
    { "ServiceName", "svcctl.svcctl_CreateServiceA.ServiceName", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
9093
14
  { &hf_svcctl_svcctl_CreateServiceA_binary_path,
9094
14
    { "Binary Path", "svcctl.svcctl_CreateServiceA.binary_path", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
9095
14
  { &hf_svcctl_svcctl_CreateServiceA_dependencies,
9096
14
    { "Dependencies", "svcctl.svcctl_CreateServiceA.dependencies", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
9097
14
  { &hf_svcctl_svcctl_CreateServiceA_dependencies_size,
9098
14
    { "Dependencies Size", "svcctl.svcctl_CreateServiceA.dependencies_size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
9099
14
  { &hf_svcctl_svcctl_CreateServiceA_desired_access,
9100
14
    { "Desired Access", "svcctl.svcctl_CreateServiceA.desired_access", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
9101
14
  { &hf_svcctl_svcctl_CreateServiceA_error_control,
9102
14
    { "Error Control", "svcctl.svcctl_CreateServiceA.error_control", FT_UINT32, BASE_DEC, VALS(svcctl_svcctl_ErrorControl_vals), 0, NULL, HFILL }},
9103
14
  { &hf_svcctl_svcctl_CreateServiceA_password,
9104
14
    { "Password", "svcctl.svcctl_CreateServiceA.password", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
9105
14
  { &hf_svcctl_svcctl_CreateServiceA_password_size,
9106
14
    { "Password Size", "svcctl.svcctl_CreateServiceA.password_size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
9107
14
  { &hf_svcctl_svcctl_CreateServiceA_scm_handle,
9108
14
    { "Scm Handle", "svcctl.svcctl_CreateServiceA.scm_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
9109
14
  { &hf_svcctl_svcctl_CreateServiceA_service_handle,
9110
14
    { "Service Handle", "svcctl.svcctl_CreateServiceA.service_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
9111
14
  { &hf_svcctl_svcctl_CreateServiceA_service_start_name,
9112
14
    { "Service Start Name", "svcctl.svcctl_CreateServiceA.service_start_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
9113
14
  { &hf_svcctl_svcctl_CreateServiceA_service_type,
9114
14
    { "Service Type", "svcctl.svcctl_CreateServiceA.service_type", FT_UINT32, BASE_DEC, VALS(svcctl_svcctl_ServiceType_vals), 0, NULL, HFILL }},
9115
14
  { &hf_svcctl_svcctl_CreateServiceA_start_type,
9116
14
    { "Start Type", "svcctl.svcctl_CreateServiceA.start_type", FT_UINT32, BASE_DEC, VALS(svcctl_svcctl_StartType_vals), 0, NULL, HFILL }},
9117
14
  { &hf_svcctl_svcctl_CreateServiceA_tag_id,
9118
14
    { "Tag Id", "svcctl.svcctl_CreateServiceA.tag_id", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
9119
14
  { &hf_svcctl_svcctl_CreateServiceWOW64A_DisplayName,
9120
14
    { "DisplayName", "svcctl.svcctl_CreateServiceWOW64A.DisplayName", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
9121
14
  { &hf_svcctl_svcctl_CreateServiceWOW64A_LoadOrderGroupKey,
9122
14
    { "LoadOrderGroupKey", "svcctl.svcctl_CreateServiceWOW64A.LoadOrderGroupKey", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
9123
14
  { &hf_svcctl_svcctl_CreateServiceWOW64A_ServiceName,
9124
14
    { "ServiceName", "svcctl.svcctl_CreateServiceWOW64A.ServiceName", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
9125
14
  { &hf_svcctl_svcctl_CreateServiceWOW64A_binary_path,
9126
14
    { "Binary Path", "svcctl.svcctl_CreateServiceWOW64A.binary_path", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
9127
14
  { &hf_svcctl_svcctl_CreateServiceWOW64A_dependencies,
9128
14
    { "Dependencies", "svcctl.svcctl_CreateServiceWOW64A.dependencies", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
9129
14
  { &hf_svcctl_svcctl_CreateServiceWOW64A_dependencies_size,
9130
14
    { "Dependencies Size", "svcctl.svcctl_CreateServiceWOW64A.dependencies_size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
9131
14
  { &hf_svcctl_svcctl_CreateServiceWOW64A_desired_access,
9132
14
    { "Desired Access", "svcctl.svcctl_CreateServiceWOW64A.desired_access", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
9133
14
  { &hf_svcctl_svcctl_CreateServiceWOW64A_error_control,
9134
14
    { "Error Control", "svcctl.svcctl_CreateServiceWOW64A.error_control", FT_UINT32, BASE_DEC, VALS(svcctl_svcctl_ErrorControl_vals), 0, NULL, HFILL }},
9135
14
  { &hf_svcctl_svcctl_CreateServiceWOW64A_handle,
9136
14
    { "Handle", "svcctl.svcctl_CreateServiceWOW64A.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
9137
14
  { &hf_svcctl_svcctl_CreateServiceWOW64A_password,
9138
14
    { "Password", "svcctl.svcctl_CreateServiceWOW64A.password", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
9139
14
  { &hf_svcctl_svcctl_CreateServiceWOW64A_password_size,
9140
14
    { "Password Size", "svcctl.svcctl_CreateServiceWOW64A.password_size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
9141
14
  { &hf_svcctl_svcctl_CreateServiceWOW64A_scm_handle,
9142
14
    { "Scm Handle", "svcctl.svcctl_CreateServiceWOW64A.scm_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
9143
14
  { &hf_svcctl_svcctl_CreateServiceWOW64A_service_start_name,
9144
14
    { "Service Start Name", "svcctl.svcctl_CreateServiceWOW64A.service_start_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
9145
14
  { &hf_svcctl_svcctl_CreateServiceWOW64A_service_type,
9146
14
    { "Service Type", "svcctl.svcctl_CreateServiceWOW64A.service_type", FT_UINT32, BASE_DEC, VALS(svcctl_svcctl_ServiceType_vals), 0, NULL, HFILL }},
9147
14
  { &hf_svcctl_svcctl_CreateServiceWOW64A_start_type,
9148
14
    { "Start Type", "svcctl.svcctl_CreateServiceWOW64A.start_type", FT_UINT32, BASE_DEC, VALS(svcctl_svcctl_StartType_vals), 0, NULL, HFILL }},
9149
14
  { &hf_svcctl_svcctl_CreateServiceWOW64A_tag_id,
9150
14
    { "Tag Id", "svcctl.svcctl_CreateServiceWOW64A.tag_id", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
9151
14
  { &hf_svcctl_svcctl_CreateServiceWOW64W_DisplayName,
9152
14
    { "DisplayName", "svcctl.svcctl_CreateServiceWOW64W.DisplayName", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
9153
14
  { &hf_svcctl_svcctl_CreateServiceWOW64W_LoadOrderGroupKey,
9154
14
    { "LoadOrderGroupKey", "svcctl.svcctl_CreateServiceWOW64W.LoadOrderGroupKey", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
9155
14
  { &hf_svcctl_svcctl_CreateServiceWOW64W_ServiceName,
9156
14
    { "ServiceName", "svcctl.svcctl_CreateServiceWOW64W.ServiceName", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
9157
14
  { &hf_svcctl_svcctl_CreateServiceWOW64W_binary_path,
9158
14
    { "Binary Path", "svcctl.svcctl_CreateServiceWOW64W.binary_path", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
9159
14
  { &hf_svcctl_svcctl_CreateServiceWOW64W_dependencies,
9160
14
    { "Dependencies", "svcctl.svcctl_CreateServiceWOW64W.dependencies", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
9161
14
  { &hf_svcctl_svcctl_CreateServiceWOW64W_dependencies_size,
9162
14
    { "Dependencies Size", "svcctl.svcctl_CreateServiceWOW64W.dependencies_size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
9163
14
  { &hf_svcctl_svcctl_CreateServiceWOW64W_desired_access,
9164
14
    { "Desired Access", "svcctl.svcctl_CreateServiceWOW64W.desired_access", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
9165
14
  { &hf_svcctl_svcctl_CreateServiceWOW64W_error_control,
9166
14
    { "Error Control", "svcctl.svcctl_CreateServiceWOW64W.error_control", FT_UINT32, BASE_DEC, VALS(svcctl_svcctl_ErrorControl_vals), 0, NULL, HFILL }},
9167
14
  { &hf_svcctl_svcctl_CreateServiceWOW64W_handle,
9168
14
    { "Handle", "svcctl.svcctl_CreateServiceWOW64W.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
9169
14
  { &hf_svcctl_svcctl_CreateServiceWOW64W_password,
9170
14
    { "Password", "svcctl.svcctl_CreateServiceWOW64W.password", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
9171
14
  { &hf_svcctl_svcctl_CreateServiceWOW64W_password_size,
9172
14
    { "Password Size", "svcctl.svcctl_CreateServiceWOW64W.password_size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
9173
14
  { &hf_svcctl_svcctl_CreateServiceWOW64W_scm_handle,
9174
14
    { "Scm Handle", "svcctl.svcctl_CreateServiceWOW64W.scm_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
9175
14
  { &hf_svcctl_svcctl_CreateServiceWOW64W_service_start_name,
9176
14
    { "Service Start Name", "svcctl.svcctl_CreateServiceWOW64W.service_start_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
9177
14
  { &hf_svcctl_svcctl_CreateServiceWOW64W_service_type,
9178
14
    { "Service Type", "svcctl.svcctl_CreateServiceWOW64W.service_type", FT_UINT32, BASE_DEC, VALS(svcctl_svcctl_ServiceType_vals), 0, NULL, HFILL }},
9179
14
  { &hf_svcctl_svcctl_CreateServiceWOW64W_start_type,
9180
14
    { "Start Type", "svcctl.svcctl_CreateServiceWOW64W.start_type", FT_UINT32, BASE_DEC, VALS(svcctl_svcctl_StartType_vals), 0, NULL, HFILL }},
9181
14
  { &hf_svcctl_svcctl_CreateServiceWOW64W_tag_id,
9182
14
    { "Tag Id", "svcctl.svcctl_CreateServiceWOW64W.tag_id", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
9183
14
  { &hf_svcctl_svcctl_CreateServiceW_DisplayName,
9184
14
    { "DisplayName", "svcctl.svcctl_CreateServiceW.DisplayName", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
9185
14
  { &hf_svcctl_svcctl_CreateServiceW_LoadOrderGroup,
9186
14
    { "LoadOrderGroup", "svcctl.svcctl_CreateServiceW.LoadOrderGroup", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
9187
14
  { &hf_svcctl_svcctl_CreateServiceW_ServiceName,
9188
14
    { "ServiceName", "svcctl.svcctl_CreateServiceW.ServiceName", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
9189
14
  { &hf_svcctl_svcctl_CreateServiceW_binary_path,
9190
14
    { "Binary Path", "svcctl.svcctl_CreateServiceW.binary_path", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
9191
14
  { &hf_svcctl_svcctl_CreateServiceW_dependencies,
9192
14
    { "Dependencies", "svcctl.svcctl_CreateServiceW.dependencies", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
9193
14
  { &hf_svcctl_svcctl_CreateServiceW_dependencies_size,
9194
14
    { "Dependencies Size", "svcctl.svcctl_CreateServiceW.dependencies_size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
9195
14
  { &hf_svcctl_svcctl_CreateServiceW_desired_access,
9196
14
    { "Desired Access", "svcctl.svcctl_CreateServiceW.desired_access", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
9197
14
  { &hf_svcctl_svcctl_CreateServiceW_error_control,
9198
14
    { "Error Control", "svcctl.svcctl_CreateServiceW.error_control", FT_UINT32, BASE_DEC, VALS(svcctl_svcctl_ErrorControl_vals), 0, NULL, HFILL }},
9199
14
  { &hf_svcctl_svcctl_CreateServiceW_password,
9200
14
    { "Password", "svcctl.svcctl_CreateServiceW.password", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
9201
14
  { &hf_svcctl_svcctl_CreateServiceW_password_size,
9202
14
    { "Password Size", "svcctl.svcctl_CreateServiceW.password_size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
9203
14
  { &hf_svcctl_svcctl_CreateServiceW_scm_handle,
9204
14
    { "Scm Handle", "svcctl.svcctl_CreateServiceW.scm_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
9205
14
  { &hf_svcctl_svcctl_CreateServiceW_service_handle,
9206
14
    { "Service Handle", "svcctl.svcctl_CreateServiceW.service_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
9207
14
  { &hf_svcctl_svcctl_CreateServiceW_service_start_name,
9208
14
    { "Service Start Name", "svcctl.svcctl_CreateServiceW.service_start_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
9209
14
  { &hf_svcctl_svcctl_CreateServiceW_service_type,
9210
14
    { "Service Type", "svcctl.svcctl_CreateServiceW.service_type", FT_UINT32, BASE_DEC, VALS(svcctl_svcctl_ServiceType_vals), 0, NULL, HFILL }},
9211
14
  { &hf_svcctl_svcctl_CreateServiceW_start_type,
9212
14
    { "Start Type", "svcctl.svcctl_CreateServiceW.start_type", FT_UINT32, BASE_DEC, VALS(svcctl_svcctl_StartType_vals), 0, NULL, HFILL }},
9213
14
  { &hf_svcctl_svcctl_CreateServiceW_tag_id,
9214
14
    { "Tag Id", "svcctl.svcctl_CreateServiceW.tag_id", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
9215
14
  { &hf_svcctl_svcctl_CreateWowService_DisplayName,
9216
14
    { "DisplayName", "svcctl.svcctl_CreateWowService.DisplayName", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
9217
14
  { &hf_svcctl_svcctl_CreateWowService_LoadOrderGroupKey,
9218
14
    { "LoadOrderGroupKey", "svcctl.svcctl_CreateWowService.LoadOrderGroupKey", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
9219
14
  { &hf_svcctl_svcctl_CreateWowService_ServiceName,
9220
14
    { "ServiceName", "svcctl.svcctl_CreateWowService.ServiceName", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
9221
14
  { &hf_svcctl_svcctl_CreateWowService_binary_path,
9222
14
    { "Binary Path", "svcctl.svcctl_CreateWowService.binary_path", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
9223
14
  { &hf_svcctl_svcctl_CreateWowService_dependencies,
9224
14
    { "Dependencies", "svcctl.svcctl_CreateWowService.dependencies", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
9225
14
  { &hf_svcctl_svcctl_CreateWowService_dependencies_size,
9226
14
    { "Dependencies Size", "svcctl.svcctl_CreateWowService.dependencies_size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
9227
14
  { &hf_svcctl_svcctl_CreateWowService_desired_access,
9228
14
    { "Desired Access", "svcctl.svcctl_CreateWowService.desired_access", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
9229
14
  { &hf_svcctl_svcctl_CreateWowService_error_control,
9230
14
    { "Error Control", "svcctl.svcctl_CreateWowService.error_control", FT_UINT32, BASE_DEC, VALS(svcctl_svcctl_ErrorControl_vals), 0, NULL, HFILL }},
9231
14
  { &hf_svcctl_svcctl_CreateWowService_handle,
9232
14
    { "Handle", "svcctl.svcctl_CreateWowService.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
9233
14
  { &hf_svcctl_svcctl_CreateWowService_password,
9234
14
    { "Password", "svcctl.svcctl_CreateWowService.password", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
9235
14
  { &hf_svcctl_svcctl_CreateWowService_password_size,
9236
14
    { "Password Size", "svcctl.svcctl_CreateWowService.password_size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
9237
14
  { &hf_svcctl_svcctl_CreateWowService_scm_handle,
9238
14
    { "Scm Handle", "svcctl.svcctl_CreateWowService.scm_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
9239
14
  { &hf_svcctl_svcctl_CreateWowService_service_start_name,
9240
14
    { "Service Start Name", "svcctl.svcctl_CreateWowService.service_start_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
9241
14
  { &hf_svcctl_svcctl_CreateWowService_service_type,
9242
14
    { "Service Type", "svcctl.svcctl_CreateWowService.service_type", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
9243
14
  { &hf_svcctl_svcctl_CreateWowService_service_wow_type,
9244
14
    { "Service Wow Type", "svcctl.svcctl_CreateWowService.service_wow_type", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
9245
14
  { &hf_svcctl_svcctl_CreateWowService_start_type,
9246
14
    { "Start Type", "svcctl.svcctl_CreateWowService.start_type", FT_UINT32, BASE_DEC, VALS(svcctl_svcctl_StartType_vals), 0, NULL, HFILL }},
9247
14
  { &hf_svcctl_svcctl_CreateWowService_tag_id,
9248
14
    { "Tag Id", "svcctl.svcctl_CreateWowService.tag_id", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
9249
14
  { &hf_svcctl_svcctl_DeleteService_service_handle,
9250
14
    { "Service Handle", "svcctl.svcctl_DeleteService.service_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
9251
14
  { &hf_svcctl_svcctl_EnumDependentServicesA_needed,
9252
14
    { "Needed", "svcctl.svcctl_EnumDependentServicesA.needed", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
9253
14
  { &hf_svcctl_svcctl_EnumDependentServicesA_offered,
9254
14
    { "Offered", "svcctl.svcctl_EnumDependentServicesA.offered", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
9255
14
  { &hf_svcctl_svcctl_EnumDependentServicesA_service_handle,
9256
14
    { "Service Handle", "svcctl.svcctl_EnumDependentServicesA.service_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
9257
14
  { &hf_svcctl_svcctl_EnumDependentServicesA_service_status,
9258
14
    { "Service Status", "svcctl.svcctl_EnumDependentServicesA.service_status", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
9259
14
  { &hf_svcctl_svcctl_EnumDependentServicesA_services_returned,
9260
14
    { "Services Returned", "svcctl.svcctl_EnumDependentServicesA.services_returned", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
9261
14
  { &hf_svcctl_svcctl_EnumDependentServicesA_state,
9262
14
    { "State", "svcctl.svcctl_EnumDependentServicesA.state", FT_UINT32, BASE_DEC, VALS(svcctl_svcctl_ServiceState_vals), 0, NULL, HFILL }},
9263
14
  { &hf_svcctl_svcctl_EnumDependentServicesW_bytesneeded,
9264
14
    { "Bytesneeded", "svcctl.svcctl_EnumDependentServicesW.bytesneeded", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
9265
14
  { &hf_svcctl_svcctl_EnumDependentServicesW_offered,
9266
14
    { "Offered", "svcctl.svcctl_EnumDependentServicesW.offered", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
9267
14
  { &hf_svcctl_svcctl_EnumDependentServicesW_service_handle,
9268
14
    { "Service Handle", "svcctl.svcctl_EnumDependentServicesW.service_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
9269
14
  { &hf_svcctl_svcctl_EnumDependentServicesW_service_state,
9270
14
    { "Service State", "svcctl.svcctl_EnumDependentServicesW.service_state", FT_UINT32, BASE_DEC, VALS(svcctl_svcctl_ServiceState_vals), 0, NULL, HFILL }},
9271
14
  { &hf_svcctl_svcctl_EnumDependentServicesW_service_status,
9272
14
    { "Service Status", "svcctl.svcctl_EnumDependentServicesW.service_status", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
9273
14
  { &hf_svcctl_svcctl_EnumDependentServicesW_services_returned,
9274
14
    { "Services Returned", "svcctl.svcctl_EnumDependentServicesW.services_returned", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
9275
14
  { &hf_svcctl_svcctl_EnumServiceGroupW_ResumeIndex,
9276
14
    { "ResumeIndex", "svcctl.svcctl_EnumServiceGroupW.ResumeIndex", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
9277
14
  { &hf_svcctl_svcctl_EnumServiceGroupW_cbBufSize,
9278
14
    { "CbBufSize", "svcctl.svcctl_EnumServiceGroupW.cbBufSize", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
9279
14
  { &hf_svcctl_svcctl_EnumServiceGroupW_lpBuffer,
9280
14
    { "LpBuffer", "svcctl.svcctl_EnumServiceGroupW.lpBuffer", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
9281
14
  { &hf_svcctl_svcctl_EnumServiceGroupW_lpServicesReturned,
9282
14
    { "LpServicesReturned", "svcctl.svcctl_EnumServiceGroupW.lpServicesReturned", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
9283
14
  { &hf_svcctl_svcctl_EnumServiceGroupW_pcbBytesNeeded,
9284
14
    { "PcbBytesNeeded", "svcctl.svcctl_EnumServiceGroupW.pcbBytesNeeded", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
9285
14
  { &hf_svcctl_svcctl_EnumServiceGroupW_pszGroupName,
9286
14
    { "PszGroupName", "svcctl.svcctl_EnumServiceGroupW.pszGroupName", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
9287
14
  { &hf_svcctl_svcctl_EnumServiceGroupW_scm_handle,
9288
14
    { "Scm Handle", "svcctl.svcctl_EnumServiceGroupW.scm_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
9289
14
  { &hf_svcctl_svcctl_EnumServiceGroupW_service_state,
9290
14
    { "Service State", "svcctl.svcctl_EnumServiceGroupW.service_state", FT_UINT32, BASE_DEC, VALS(svcctl_svcctl_ServiceState_vals), 0, NULL, HFILL }},
9291
14
  { &hf_svcctl_svcctl_EnumServiceGroupW_service_type,
9292
14
    { "Service Type", "svcctl.svcctl_EnumServiceGroupW.service_type", FT_UINT32, BASE_DEC, VALS(svcctl_svcctl_ServiceType_vals), 0, NULL, HFILL }},
9293
14
  { &hf_svcctl_svcctl_EnumServicesStatusA_needed,
9294
14
    { "Needed", "svcctl.svcctl_EnumServicesStatusA.needed", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
9295
14
  { &hf_svcctl_svcctl_EnumServicesStatusA_offered,
9296
14
    { "Offered", "svcctl.svcctl_EnumServicesStatusA.offered", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
9297
14
  { &hf_svcctl_svcctl_EnumServicesStatusA_resume_handle,
9298
14
    { "Resume Handle", "svcctl.svcctl_EnumServicesStatusA.resume_handle", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
9299
14
  { &hf_svcctl_svcctl_EnumServicesStatusA_scm_handle,
9300
14
    { "Scm Handle", "svcctl.svcctl_EnumServicesStatusA.scm_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
9301
14
  { &hf_svcctl_svcctl_EnumServicesStatusA_service,
9302
14
    { "Service", "svcctl.svcctl_EnumServicesStatusA.service", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
9303
14
  { &hf_svcctl_svcctl_EnumServicesStatusA_service_state,
9304
14
    { "Service State", "svcctl.svcctl_EnumServicesStatusA.service_state", FT_UINT32, BASE_DEC, VALS(svcctl_svcctl_ServiceState_vals), 0, NULL, HFILL }},
9305
14
  { &hf_svcctl_svcctl_EnumServicesStatusA_service_type,
9306
14
    { "Service Type", "svcctl.svcctl_EnumServicesStatusA.service_type", FT_UINT32, BASE_DEC, VALS(svcctl_svcctl_ServiceType_vals), 0, NULL, HFILL }},
9307
14
  { &hf_svcctl_svcctl_EnumServicesStatusA_services_returned,
9308
14
    { "Services Returned", "svcctl.svcctl_EnumServicesStatusA.services_returned", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
9309
14
  { &hf_svcctl_svcctl_EnumServicesStatusW_bytes_needed,
9310
14
    { "Bytes Needed", "svcctl.svcctl_EnumServicesStatusW.bytes_needed", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
9311
14
  { &hf_svcctl_svcctl_EnumServicesStatusW_offered,
9312
14
    { "Offered", "svcctl.svcctl_EnumServicesStatusW.offered", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
9313
14
  { &hf_svcctl_svcctl_EnumServicesStatusW_resume_index,
9314
14
    { "Resume Index", "svcctl.svcctl_EnumServicesStatusW.resume_index", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
9315
14
  { &hf_svcctl_svcctl_EnumServicesStatusW_scm_handle,
9316
14
    { "Scm Handle", "svcctl.svcctl_EnumServicesStatusW.scm_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
9317
14
  { &hf_svcctl_svcctl_EnumServicesStatusW_service_state,
9318
14
    { "Service State", "svcctl.svcctl_EnumServicesStatusW.service_state", FT_UINT32, BASE_DEC, VALS(svcctl_svcctl_ServiceState_vals), 0, NULL, HFILL }},
9319
14
  { &hf_svcctl_svcctl_EnumServicesStatusW_service_type,
9320
14
    { "Service Type", "svcctl.svcctl_EnumServicesStatusW.service_type", FT_UINT32, BASE_DEC, VALS(svcctl_svcctl_ServiceType_vals), 0, NULL, HFILL }},
9321
14
  { &hf_svcctl_svcctl_EnumServicesStatusW_services,
9322
14
    { "Services", "svcctl.svcctl_EnumServicesStatusW.services", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
9323
14
  { &hf_svcctl_svcctl_EnumServicesStatusW_services_returned,
9324
14
    { "Services Returned", "svcctl.svcctl_EnumServicesStatusW.services_returned", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
9325
14
  { &hf_svcctl_svcctl_GetCurrentGroupeStateW_handle,
9326
14
    { "Handle", "svcctl.svcctl_GetCurrentGroupeStateW.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
9327
14
  { &hf_svcctl_svcctl_GetCurrentGroupeStateW_lpLoadOrderGroup,
9328
14
    { "LpLoadOrderGroup", "svcctl.svcctl_GetCurrentGroupeStateW.lpLoadOrderGroup", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
9329
14
  { &hf_svcctl_svcctl_GetCurrentGroupeStateW_state,
9330
14
    { "State", "svcctl.svcctl_GetCurrentGroupeStateW.state", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
9331
14
  { &hf_svcctl_svcctl_GetServiceDisplayNameA_display_name,
9332
14
    { "Display Name", "svcctl.svcctl_GetServiceDisplayNameA.display_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
9333
14
  { &hf_svcctl_svcctl_GetServiceDisplayNameA_display_name_length,
9334
14
    { "Display Name Length", "svcctl.svcctl_GetServiceDisplayNameA.display_name_length", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
9335
14
  { &hf_svcctl_svcctl_GetServiceDisplayNameA_handle,
9336
14
    { "Handle", "svcctl.svcctl_GetServiceDisplayNameA.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
9337
14
  { &hf_svcctl_svcctl_GetServiceDisplayNameA_service_name,
9338
14
    { "Service Name", "svcctl.svcctl_GetServiceDisplayNameA.service_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
9339
14
  { &hf_svcctl_svcctl_GetServiceDisplayNameW_display_name,
9340
14
    { "Display Name", "svcctl.svcctl_GetServiceDisplayNameW.display_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
9341
14
  { &hf_svcctl_svcctl_GetServiceDisplayNameW_display_name_length,
9342
14
    { "Display Name Length", "svcctl.svcctl_GetServiceDisplayNameW.display_name_length", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
9343
14
  { &hf_svcctl_svcctl_GetServiceDisplayNameW_scm_handle,
9344
14
    { "Scm Handle", "svcctl.svcctl_GetServiceDisplayNameW.scm_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
9345
14
  { &hf_svcctl_svcctl_GetServiceDisplayNameW_service_name,
9346
14
    { "Service Name", "svcctl.svcctl_GetServiceDisplayNameW.service_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
9347
14
  { &hf_svcctl_svcctl_GetServiceKeyNameA_key_name,
9348
14
    { "Key Name", "svcctl.svcctl_GetServiceKeyNameA.key_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
9349
14
  { &hf_svcctl_svcctl_GetServiceKeyNameA_key_name_length,
9350
14
    { "Key Name Length", "svcctl.svcctl_GetServiceKeyNameA.key_name_length", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
9351
14
  { &hf_svcctl_svcctl_GetServiceKeyNameA_scm_handle,
9352
14
    { "Scm Handle", "svcctl.svcctl_GetServiceKeyNameA.scm_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
9353
14
  { &hf_svcctl_svcctl_GetServiceKeyNameA_service_name,
9354
14
    { "Service Name", "svcctl.svcctl_GetServiceKeyNameA.service_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
9355
14
  { &hf_svcctl_svcctl_GetServiceKeyNameW_display_name,
9356
14
    { "Display Name", "svcctl.svcctl_GetServiceKeyNameW.display_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
9357
14
  { &hf_svcctl_svcctl_GetServiceKeyNameW_scm_handle,
9358
14
    { "Scm Handle", "svcctl.svcctl_GetServiceKeyNameW.scm_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
9359
14
  { &hf_svcctl_svcctl_GetServiceKeyNameW_service_name,
9360
14
    { "Service Name", "svcctl.svcctl_GetServiceKeyNameW.service_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
9361
14
  { &hf_svcctl_svcctl_GetServiceKeyNameW_service_name_length,
9362
14
    { "Service Name Length", "svcctl.svcctl_GetServiceKeyNameW.service_name_length", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
9363
14
  { &hf_svcctl_svcctl_LockServiceDatabase_lock_handle,
9364
14
    { "Lock Handle", "svcctl.svcctl_LockServiceDatabase.lock_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
9365
14
  { &hf_svcctl_svcctl_LockServiceDatabase_scm_handle,
9366
14
    { "Scm Handle", "svcctl.svcctl_LockServiceDatabase.scm_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
9367
14
  { &hf_svcctl_svcctl_MgrAccessMask_SC_RIGHT_MGR_ALL_ACCESS,
9368
14
    { "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 }},
9369
14
  { &hf_svcctl_svcctl_MgrAccessMask_SC_RIGHT_MGR_CONNECT,
9370
14
    { "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 }},
9371
14
  { &hf_svcctl_svcctl_MgrAccessMask_SC_RIGHT_MGR_CREATE_SERVICE,
9372
14
    { "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 }},
9373
14
  { &hf_svcctl_svcctl_MgrAccessMask_SC_RIGHT_MGR_ENUMERATE_SERVICE,
9374
14
    { "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 }},
9375
14
  { &hf_svcctl_svcctl_MgrAccessMask_SC_RIGHT_MGR_LOCK,
9376
14
    { "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 }},
9377
14
  { &hf_svcctl_svcctl_MgrAccessMask_SC_RIGHT_MGR_MODIFY_BOOT_CONFIG,
9378
14
    { "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 }},
9379
14
  { &hf_svcctl_svcctl_MgrAccessMask_SC_RIGHT_MGR_QUERY_LOCK_STATUS,
9380
14
    { "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 }},
9381
14
  { &hf_svcctl_svcctl_NotifyBootConfigStatus_boot_acceptable,
9382
14
    { "Boot Acceptable", "svcctl.svcctl_NotifyBootConfigStatus.boot_acceptable", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
9383
14
  { &hf_svcctl_svcctl_NotifyBootConfigStatus_machine_name,
9384
14
    { "Machine Name", "svcctl.svcctl_NotifyBootConfigStatus.machine_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
9385
14
  { &hf_svcctl_svcctl_OpenSCManager2_database_name,
9386
14
    { "Database Name", "svcctl.svcctl_OpenSCManager2.database_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
9387
14
  { &hf_svcctl_svcctl_OpenSCManager2_desired_access,
9388
14
    { "Desired Access", "svcctl.svcctl_OpenSCManager2.desired_access", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
9389
14
  { &hf_svcctl_svcctl_OpenSCManager2_handle,
9390
14
    { "Handle", "svcctl.svcctl_OpenSCManager2.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
9391
14
  { &hf_svcctl_svcctl_OpenSCManagerA_DatabaseName,
9392
14
    { "DatabaseName", "svcctl.svcctl_OpenSCManagerA.DatabaseName", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
9393
14
  { &hf_svcctl_svcctl_OpenSCManagerA_MachineName,
9394
14
    { "MachineName", "svcctl.svcctl_OpenSCManagerA.MachineName", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
9395
14
  { &hf_svcctl_svcctl_OpenSCManagerA_access_mask,
9396
14
    { "Access Mask", "svcctl.svcctl_OpenSCManagerA.access_mask", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
9397
14
  { &hf_svcctl_svcctl_OpenSCManagerA_scm_handle,
9398
14
    { "Scm Handle", "svcctl.svcctl_OpenSCManagerA.scm_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
9399
14
  { &hf_svcctl_svcctl_OpenSCManagerW_DatabaseName,
9400
14
    { "DatabaseName", "svcctl.svcctl_OpenSCManagerW.DatabaseName", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
9401
14
  { &hf_svcctl_svcctl_OpenSCManagerW_MachineName,
9402
14
    { "MachineName", "svcctl.svcctl_OpenSCManagerW.MachineName", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
9403
14
  { &hf_svcctl_svcctl_OpenSCManagerW_access_mask,
9404
14
    { "Access Mask", "svcctl.svcctl_OpenSCManagerW.access_mask", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
9405
14
  { &hf_svcctl_svcctl_OpenSCManagerW_scm_handle,
9406
14
    { "Scm Handle", "svcctl.svcctl_OpenSCManagerW.scm_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
9407
14
  { &hf_svcctl_svcctl_OpenServiceA_ServiceName,
9408
14
    { "ServiceName", "svcctl.svcctl_OpenServiceA.ServiceName", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
9409
14
  { &hf_svcctl_svcctl_OpenServiceA_access_mask,
9410
14
    { "Access Mask", "svcctl.svcctl_OpenServiceA.access_mask", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
9411
14
  { &hf_svcctl_svcctl_OpenServiceA_scm_handle,
9412
14
    { "Scm Handle", "svcctl.svcctl_OpenServiceA.scm_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
9413
14
  { &hf_svcctl_svcctl_OpenServiceA_service_handle,
9414
14
    { "Service Handle", "svcctl.svcctl_OpenServiceA.service_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
9415
14
  { &hf_svcctl_svcctl_OpenServiceW_ServiceName,
9416
14
    { "ServiceName", "svcctl.svcctl_OpenServiceW.ServiceName", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
9417
14
  { &hf_svcctl_svcctl_OpenServiceW_access_mask,
9418
14
    { "Access Mask", "svcctl.svcctl_OpenServiceW.access_mask", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
9419
14
  { &hf_svcctl_svcctl_OpenServiceW_scm_handle,
9420
14
    { "Scm Handle", "svcctl.svcctl_OpenServiceW.scm_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
9421
14
  { &hf_svcctl_svcctl_OpenServiceW_service_handle,
9422
14
    { "Service Handle", "svcctl.svcctl_OpenServiceW.service_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
9423
14
  { &hf_svcctl_svcctl_QueryServiceConfig2A_buffer,
9424
14
    { "Buffer", "svcctl.svcctl_QueryServiceConfig2A.buffer", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
9425
14
  { &hf_svcctl_svcctl_QueryServiceConfig2A_handle,
9426
14
    { "Handle", "svcctl.svcctl_QueryServiceConfig2A.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
9427
14
  { &hf_svcctl_svcctl_QueryServiceConfig2A_info_level,
9428
14
    { "Info Level", "svcctl.svcctl_QueryServiceConfig2A.info_level", FT_UINT32, BASE_DEC, VALS(svcctl_svcctl_ConfigLevel_vals), 0, NULL, HFILL }},
9429
14
  { &hf_svcctl_svcctl_QueryServiceConfig2A_needed,
9430
14
    { "Needed", "svcctl.svcctl_QueryServiceConfig2A.needed", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
9431
14
  { &hf_svcctl_svcctl_QueryServiceConfig2A_offered,
9432
14
    { "Offered", "svcctl.svcctl_QueryServiceConfig2A.offered", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
9433
14
  { &hf_svcctl_svcctl_QueryServiceConfig2W_buffer,
9434
14
    { "Buffer", "svcctl.svcctl_QueryServiceConfig2W.buffer", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
9435
14
  { &hf_svcctl_svcctl_QueryServiceConfig2W_handle,
9436
14
    { "Handle", "svcctl.svcctl_QueryServiceConfig2W.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
9437
14
  { &hf_svcctl_svcctl_QueryServiceConfig2W_info_level,
9438
14
    { "Info Level", "svcctl.svcctl_QueryServiceConfig2W.info_level", FT_UINT32, BASE_DEC, VALS(svcctl_svcctl_ConfigLevel_vals), 0, NULL, HFILL }},
9439
14
  { &hf_svcctl_svcctl_QueryServiceConfig2W_needed,
9440
14
    { "Needed", "svcctl.svcctl_QueryServiceConfig2W.needed", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
9441
14
  { &hf_svcctl_svcctl_QueryServiceConfig2W_offered,
9442
14
    { "Offered", "svcctl.svcctl_QueryServiceConfig2W.offered", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
9443
14
  { &hf_svcctl_svcctl_QueryServiceConfigA_needed,
9444
14
    { "Needed", "svcctl.svcctl_QueryServiceConfigA.needed", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
9445
14
  { &hf_svcctl_svcctl_QueryServiceConfigA_offered,
9446
14
    { "Offered", "svcctl.svcctl_QueryServiceConfigA.offered", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
9447
14
  { &hf_svcctl_svcctl_QueryServiceConfigA_query,
9448
14
    { "Query", "svcctl.svcctl_QueryServiceConfigA.query", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
9449
14
  { &hf_svcctl_svcctl_QueryServiceConfigA_service_handle,
9450
14
    { "Service Handle", "svcctl.svcctl_QueryServiceConfigA.service_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
9451
14
  { &hf_svcctl_svcctl_QueryServiceConfigEx_info_level,
9452
14
    { "Info Level", "svcctl.svcctl_QueryServiceConfigEx.info_level", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
9453
14
  { &hf_svcctl_svcctl_QueryServiceConfigEx_service_handle,
9454
14
    { "Service Handle", "svcctl.svcctl_QueryServiceConfigEx.service_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
9455
14
  { &hf_svcctl_svcctl_QueryServiceConfigW_needed,
9456
14
    { "Needed", "svcctl.svcctl_QueryServiceConfigW.needed", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
9457
14
  { &hf_svcctl_svcctl_QueryServiceConfigW_offered,
9458
14
    { "Offered", "svcctl.svcctl_QueryServiceConfigW.offered", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
9459
14
  { &hf_svcctl_svcctl_QueryServiceConfigW_service_config,
9460
14
    { "Service Config", "svcctl.svcctl_QueryServiceConfigW.service_config", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
9461
14
  { &hf_svcctl_svcctl_QueryServiceConfigW_service_handle,
9462
14
    { "Service Handle", "svcctl.svcctl_QueryServiceConfigW.service_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
9463
14
  { &hf_svcctl_svcctl_QueryServiceLockStatusA_lock_status,
9464
14
    { "Lock Status", "svcctl.svcctl_QueryServiceLockStatusA.lock_status", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
9465
14
  { &hf_svcctl_svcctl_QueryServiceLockStatusA_needed,
9466
14
    { "Needed", "svcctl.svcctl_QueryServiceLockStatusA.needed", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
9467
14
  { &hf_svcctl_svcctl_QueryServiceLockStatusA_offered,
9468
14
    { "Offered", "svcctl.svcctl_QueryServiceLockStatusA.offered", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
9469
14
  { &hf_svcctl_svcctl_QueryServiceLockStatusA_scm_handle,
9470
14
    { "Scm Handle", "svcctl.svcctl_QueryServiceLockStatusA.scm_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
9471
14
  { &hf_svcctl_svcctl_QueryServiceLockStatusW_lock_status,
9472
14
    { "Lock Status", "svcctl.svcctl_QueryServiceLockStatusW.lock_status", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
9473
14
  { &hf_svcctl_svcctl_QueryServiceLockStatusW_needed,
9474
14
    { "Needed", "svcctl.svcctl_QueryServiceLockStatusW.needed", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
9475
14
  { &hf_svcctl_svcctl_QueryServiceLockStatusW_offered,
9476
14
    { "Offered", "svcctl.svcctl_QueryServiceLockStatusW.offered", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
9477
14
  { &hf_svcctl_svcctl_QueryServiceLockStatusW_scm_handle,
9478
14
    { "Scm Handle", "svcctl.svcctl_QueryServiceLockStatusW.scm_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
9479
14
  { &hf_svcctl_svcctl_QueryServiceObjectSecurity_bytes_needed,
9480
14
    { "Bytes Needed", "svcctl.svcctl_QueryServiceObjectSecurity.bytes_needed", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
9481
14
  { &hf_svcctl_svcctl_QueryServiceObjectSecurity_offered,
9482
14
    { "Offered", "svcctl.svcctl_QueryServiceObjectSecurity.offered", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
9483
14
  { &hf_svcctl_svcctl_QueryServiceObjectSecurity_security_descriptor,
9484
14
    { "Security Descriptor", "svcctl.svcctl_QueryServiceObjectSecurity.security_descriptor", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
9485
14
  { &hf_svcctl_svcctl_QueryServiceObjectSecurity_security_flags,
9486
14
    { "Security Flags", "svcctl.svcctl_QueryServiceObjectSecurity.security_flags", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
9487
14
  { &hf_svcctl_svcctl_QueryServiceObjectSecurity_service_handle,
9488
14
    { "Service Handle", "svcctl.svcctl_QueryServiceObjectSecurity.service_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
9489
14
  { &hf_svcctl_svcctl_QueryServiceStatusEx_buffer,
9490
14
    { "Buffer", "svcctl.svcctl_QueryServiceStatusEx.buffer", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
9491
14
  { &hf_svcctl_svcctl_QueryServiceStatusEx_handle,
9492
14
    { "Handle", "svcctl.svcctl_QueryServiceStatusEx.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
9493
14
  { &hf_svcctl_svcctl_QueryServiceStatusEx_info_level,
9494
14
    { "Info Level", "svcctl.svcctl_QueryServiceStatusEx.info_level", FT_UINT32, BASE_DEC, VALS(svcctl_svcctl_StatusLevel_vals), 0, NULL, HFILL }},
9495
14
  { &hf_svcctl_svcctl_QueryServiceStatusEx_needed,
9496
14
    { "Needed", "svcctl.svcctl_QueryServiceStatusEx.needed", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
9497
14
  { &hf_svcctl_svcctl_QueryServiceStatusEx_offered,
9498
14
    { "Offered", "svcctl.svcctl_QueryServiceStatusEx.offered", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
9499
14
  { &hf_svcctl_svcctl_QueryServiceStatus_service_handle,
9500
14
    { "Service Handle", "svcctl.svcctl_QueryServiceStatus.service_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
9501
14
  { &hf_svcctl_svcctl_QueryServiceStatus_service_status,
9502
14
    { "Service Status", "svcctl.svcctl_QueryServiceStatus.service_status", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
9503
14
  { &hf_svcctl_svcctl_SCSetServiceBitsA_handle,
9504
14
    { "Handle", "svcctl.svcctl_SCSetServiceBitsA.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
9505
14
  { &hf_svcctl_svcctl_SCSetServiceBitsA_lpString,
9506
14
    { "LpString", "svcctl.svcctl_SCSetServiceBitsA.lpString", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
9507
14
  { &hf_svcctl_svcctl_SCSetServiceBitsA_service_bits,
9508
14
    { "Service Bits", "svcctl.svcctl_SCSetServiceBitsA.service_bits", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
9509
14
  { &hf_svcctl_svcctl_SCSetServiceBitsA_set_bits_on,
9510
14
    { "Set Bits On", "svcctl.svcctl_SCSetServiceBitsA.set_bits_on", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
9511
14
  { &hf_svcctl_svcctl_SCSetServiceBitsA_update_immediately,
9512
14
    { "Update Immediately", "svcctl.svcctl_SCSetServiceBitsA.update_immediately", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
9513
14
  { &hf_svcctl_svcctl_SCSetServiceBitsW_lpString,
9514
14
    { "LpString", "svcctl.svcctl_SCSetServiceBitsW.lpString", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
9515
14
  { &hf_svcctl_svcctl_SCSetServiceBitsW_service_bits,
9516
14
    { "Service Bits", "svcctl.svcctl_SCSetServiceBitsW.service_bits", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
9517
14
  { &hf_svcctl_svcctl_SCSetServiceBitsW_service_handle,
9518
14
    { "Service Handle", "svcctl.svcctl_SCSetServiceBitsW.service_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
9519
14
  { &hf_svcctl_svcctl_SCSetServiceBitsW_set_bits_on,
9520
14
    { "Set Bits On", "svcctl.svcctl_SCSetServiceBitsW.set_bits_on", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
9521
14
  { &hf_svcctl_svcctl_SCSetServiceBitsW_update_immediately,
9522
14
    { "Update Immediately", "svcctl.svcctl_SCSetServiceBitsW.update_immediately", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
9523
14
  { &hf_svcctl_svcctl_ServiceAccessMask_SC_RIGHT_SVC_CHANGE_CONFIG,
9524
14
    { "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 }},
9525
14
  { &hf_svcctl_svcctl_ServiceAccessMask_SC_RIGHT_SVC_ENUMERATE_DEPENDENTS,
9526
14
    { "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 }},
9527
14
  { &hf_svcctl_svcctl_ServiceAccessMask_SC_RIGHT_SVC_INTERROGATE,
9528
14
    { "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 }},
9529
14
  { &hf_svcctl_svcctl_ServiceAccessMask_SC_RIGHT_SVC_PAUSE_CONTINUE,
9530
14
    { "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 }},
9531
14
  { &hf_svcctl_svcctl_ServiceAccessMask_SC_RIGHT_SVC_QUERY_CONFIG,
9532
14
    { "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 }},
9533
14
  { &hf_svcctl_svcctl_ServiceAccessMask_SC_RIGHT_SVC_QUERY_STATUS,
9534
14
    { "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 }},
9535
14
  { &hf_svcctl_svcctl_ServiceAccessMask_SC_RIGHT_SVC_START,
9536
14
    { "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 }},
9537
14
  { &hf_svcctl_svcctl_ServiceAccessMask_SC_RIGHT_SVC_STOP,
9538
14
    { "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 }},
9539
14
  { &hf_svcctl_svcctl_ServiceAccessMask_SC_RIGHT_SVC_USER_DEFINED_CONTROL,
9540
14
    { "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 }},
9541
14
  { &hf_svcctl_svcctl_SetServiceObjectSecurity_offered,
9542
14
    { "Offered", "svcctl.svcctl_SetServiceObjectSecurity.offered", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
9543
14
  { &hf_svcctl_svcctl_SetServiceObjectSecurity_security_descriptor,
9544
14
    { "Security Descriptor", "svcctl.svcctl_SetServiceObjectSecurity.security_descriptor", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
9545
14
  { &hf_svcctl_svcctl_SetServiceObjectSecurity_security_flags,
9546
14
    { "Security Flags", "svcctl.svcctl_SetServiceObjectSecurity.security_flags", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
9547
14
  { &hf_svcctl_svcctl_SetServiceObjectSecurity_service_handle,
9548
14
    { "Service Handle", "svcctl.svcctl_SetServiceObjectSecurity.service_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
9549
14
  { &hf_svcctl_svcctl_SetServiceStatus_service_handle,
9550
14
    { "Service Handle", "svcctl.svcctl_SetServiceStatus.service_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
9551
14
  { &hf_svcctl_svcctl_SetServiceStatus_service_status,
9552
14
    { "Service Status", "svcctl.svcctl_SetServiceStatus.service_status", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
9553
14
  { &hf_svcctl_svcctl_StartServiceA_Arguments,
9554
14
    { "Arguments", "svcctl.svcctl_StartServiceA.Arguments", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
9555
14
  { &hf_svcctl_svcctl_StartServiceA_NumArgs,
9556
14
    { "NumArgs", "svcctl.svcctl_StartServiceA.NumArgs", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
9557
14
  { &hf_svcctl_svcctl_StartServiceA_service_handle,
9558
14
    { "Service Handle", "svcctl.svcctl_StartServiceA.service_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
9559
14
  { &hf_svcctl_svcctl_StartServiceW_Arguments,
9560
14
    { "Arguments", "svcctl.svcctl_StartServiceW.Arguments", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
9561
14
  { &hf_svcctl_svcctl_StartServiceW_NumArgs,
9562
14
    { "NumArgs", "svcctl.svcctl_StartServiceW.NumArgs", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
9563
14
  { &hf_svcctl_svcctl_StartServiceW_service_handle,
9564
14
    { "Service Handle", "svcctl.svcctl_StartServiceW.service_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
9565
14
  { &hf_svcctl_svcctl_UnlockServiceDatabase_lock_handle,
9566
14
    { "Lock Handle", "svcctl.svcctl_UnlockServiceDatabase.lock_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
9567
14
  { &hf_svcctl_werror,
9568
14
    { "Windows Error", "svcctl.werror", FT_UINT32, BASE_HEX|BASE_EXT_STRING, &WERR_errors_ext, 0, NULL, HFILL }},
9569
14
  };
9570
9571
9572
14
  static int *ett[] = {
9573
14
    &ett_svcctl_service,
9574
14
    &ett_svcctl_service_name,
9575
14
    &ett_svcctl_display_name,
9576
14
    &ett_dcerpc_svcctl,
9577
14
    &ett_svcctl_security_secinfo,
9578
14
    &ett_svcctl_SERVICE_LOCK_STATUS,
9579
14
    &ett_svcctl_svcctl_ControlsAccepted,
9580
14
    &ett_svcctl_SERVICE_STATUS,
9581
14
    &ett_svcctl_SERVICE_STATUS_PROCESS,
9582
14
    &ett_svcctl_ENUM_SERVICE_STATUSW,
9583
14
    &ett_svcctl_ENUM_SERVICE_STATUSA,
9584
14
    &ett_svcctl_svcctl_MgrAccessMask,
9585
14
    &ett_svcctl_svcctl_ServiceAccessMask,
9586
14
    &ett_svcctl_QUERY_SERVICE_CONFIG,
9587
14
    &ett_svcctl_svcctl_ArgumentString,
9588
14
    &ett_svcctl_svcctl_ArgumentStringA,
9589
14
  };
9590
9591
14
  proto_dcerpc_svcctl = proto_register_protocol("Service Control", "SVCCTL", "svcctl");
9592
14
  proto_register_field_array(proto_dcerpc_svcctl, hf, array_length (hf));
9593
14
  proto_register_subtree_array(ett, array_length(ett));
9594
14
}
9595
9596
void proto_reg_handoff_dcerpc_svcctl(void)
9597
14
{
9598
14
  dcerpc_init_uuid(proto_dcerpc_svcctl, ett_dcerpc_svcctl,
9599
14
    &uuid_dcerpc_svcctl, ver_dcerpc_svcctl,
9600
14
    svcctl_dissectors, hf_svcctl_opnum);
9601
14
}