Coverage Report

Created: 2025-02-15 06:25

/src/wireshark/epan/dissectors/packet-dcerpc-atsvc.c
Line
Count
Source (jump to first uncovered line)
1
/* DO NOT EDIT
2
  This file was automatically generated by Pidl
3
  from atsvc.idl and atsvc.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-atsvc.h"
22
void proto_register_dcerpc_atsvc(void);
23
void proto_reg_handoff_dcerpc_atsvc(void);
24
25
/* Ett declarations */
26
static int ett_dcerpc_atsvc;
27
static int ett_atsvc_atsvc_DaysOfMonth;
28
static int ett_atsvc_atsvc_Flags;
29
static int ett_atsvc_atsvc_DaysOfWeek;
30
static int ett_atsvc_atsvc_JobInfo;
31
static int ett_atsvc_atsvc_JobEnumInfo;
32
static int ett_atsvc_atsvc_enum_ctr;
33
34
35
/* Header field declarations */
36
static int hf_atsvc_atsvc_DaysOfMonth_Eight;
37
static int hf_atsvc_atsvc_DaysOfMonth_Eighteenth;
38
static int hf_atsvc_atsvc_DaysOfMonth_Eleventh;
39
static int hf_atsvc_atsvc_DaysOfMonth_Fifteenth;
40
static int hf_atsvc_atsvc_DaysOfMonth_Fifth;
41
static int hf_atsvc_atsvc_DaysOfMonth_First;
42
static int hf_atsvc_atsvc_DaysOfMonth_Fourteenth;
43
static int hf_atsvc_atsvc_DaysOfMonth_Fourth;
44
static int hf_atsvc_atsvc_DaysOfMonth_Ninteenth;
45
static int hf_atsvc_atsvc_DaysOfMonth_Ninth;
46
static int hf_atsvc_atsvc_DaysOfMonth_Second;
47
static int hf_atsvc_atsvc_DaysOfMonth_Seventeenth;
48
static int hf_atsvc_atsvc_DaysOfMonth_Seventh;
49
static int hf_atsvc_atsvc_DaysOfMonth_Sixteenth;
50
static int hf_atsvc_atsvc_DaysOfMonth_Sixth;
51
static int hf_atsvc_atsvc_DaysOfMonth_Tenth;
52
static int hf_atsvc_atsvc_DaysOfMonth_Third;
53
static int hf_atsvc_atsvc_DaysOfMonth_Thirtieth;
54
static int hf_atsvc_atsvc_DaysOfMonth_Thirtyfirst;
55
static int hf_atsvc_atsvc_DaysOfMonth_Thitteenth;
56
static int hf_atsvc_atsvc_DaysOfMonth_Twelfth;
57
static int hf_atsvc_atsvc_DaysOfMonth_Twentyeighth;
58
static int hf_atsvc_atsvc_DaysOfMonth_Twentyfifth;
59
static int hf_atsvc_atsvc_DaysOfMonth_Twentyfirst;
60
static int hf_atsvc_atsvc_DaysOfMonth_Twentyfourth;
61
static int hf_atsvc_atsvc_DaysOfMonth_Twentyninth;
62
static int hf_atsvc_atsvc_DaysOfMonth_Twentysecond;
63
static int hf_atsvc_atsvc_DaysOfMonth_Twentyseventh;
64
static int hf_atsvc_atsvc_DaysOfMonth_Twentysixth;
65
static int hf_atsvc_atsvc_DaysOfMonth_Twentyth;
66
static int hf_atsvc_atsvc_DaysOfMonth_Twentythird;
67
static int hf_atsvc_atsvc_DaysOfWeek_DAYSOFWEEK_FRIDAY;
68
static int hf_atsvc_atsvc_DaysOfWeek_DAYSOFWEEK_MONDAY;
69
static int hf_atsvc_atsvc_DaysOfWeek_DAYSOFWEEK_SATURDAY;
70
static int hf_atsvc_atsvc_DaysOfWeek_DAYSOFWEEK_SUNDAY;
71
static int hf_atsvc_atsvc_DaysOfWeek_DAYSOFWEEK_THURSDAY;
72
static int hf_atsvc_atsvc_DaysOfWeek_DAYSOFWEEK_TUESDAY;
73
static int hf_atsvc_atsvc_DaysOfWeek_DAYSOFWEEK_WEDNESDAY;
74
static int hf_atsvc_atsvc_Flags_JOB_ADD_CURRENT_DATE;
75
static int hf_atsvc_atsvc_Flags_JOB_EXEC_ERROR;
76
static int hf_atsvc_atsvc_Flags_JOB_NONINTERACTIVE;
77
static int hf_atsvc_atsvc_Flags_JOB_RUNS_TODAY;
78
static int hf_atsvc_atsvc_Flags_JOB_RUN_PERIODICALLY;
79
static int hf_atsvc_atsvc_JobDel_max_job_id;
80
static int hf_atsvc_atsvc_JobDel_min_job_id;
81
static int hf_atsvc_atsvc_JobEnumInfo_command;
82
static int hf_atsvc_atsvc_JobEnumInfo_days_of_month;
83
static int hf_atsvc_atsvc_JobEnumInfo_days_of_week;
84
static int hf_atsvc_atsvc_JobEnumInfo_flags;
85
static int hf_atsvc_atsvc_JobEnumInfo_job_time;
86
static int hf_atsvc_atsvc_JobEnum_ctr;
87
static int hf_atsvc_atsvc_JobEnum_preferred_max_len;
88
static int hf_atsvc_atsvc_JobEnum_resume_handle;
89
static int hf_atsvc_atsvc_JobEnum_total_entries;
90
static int hf_atsvc_atsvc_JobInfo_command;
91
static int hf_atsvc_atsvc_JobInfo_days_of_month;
92
static int hf_atsvc_atsvc_JobInfo_days_of_week;
93
static int hf_atsvc_atsvc_JobInfo_flags;
94
static int hf_atsvc_atsvc_JobInfo_job_time;
95
static int hf_atsvc_atsvc_enum_ctr_entries_read;
96
static int hf_atsvc_atsvc_enum_ctr_first_entry;
97
static int hf_atsvc_job_id;
98
static int hf_atsvc_job_info;
99
static int hf_atsvc_opnum;
100
static int hf_atsvc_servername;
101
static int hf_atsvc_status;
102
103
static int proto_dcerpc_atsvc;
104
/* Version information */
105
106
107
static e_guid_t uuid_dcerpc_atsvc = {
108
  0x1ff70682, 0x0a51, 0x30e8,
109
  { 0x07, 0x6d, 0x74, 0x0b, 0xe8, 0xce, 0xe9, 0x8b }
110
};
111
static uint16_t ver_dcerpc_atsvc = 1;
112
113
static const true_false_string atsvc_DaysOfMonth_First_tfs = {
114
   "First is SET",
115
   "First is NOT SET",
116
};
117
static const true_false_string atsvc_DaysOfMonth_Second_tfs = {
118
   "Second is SET",
119
   "Second is NOT SET",
120
};
121
static const true_false_string atsvc_DaysOfMonth_Third_tfs = {
122
   "Third is SET",
123
   "Third is NOT SET",
124
};
125
static const true_false_string atsvc_DaysOfMonth_Fourth_tfs = {
126
   "Fourth is SET",
127
   "Fourth is NOT SET",
128
};
129
static const true_false_string atsvc_DaysOfMonth_Fifth_tfs = {
130
   "Fifth is SET",
131
   "Fifth is NOT SET",
132
};
133
static const true_false_string atsvc_DaysOfMonth_Sixth_tfs = {
134
   "Sixth is SET",
135
   "Sixth is NOT SET",
136
};
137
static const true_false_string atsvc_DaysOfMonth_Seventh_tfs = {
138
   "Seventh is SET",
139
   "Seventh is NOT SET",
140
};
141
static const true_false_string atsvc_DaysOfMonth_Eight_tfs = {
142
   "Eight is SET",
143
   "Eight is NOT SET",
144
};
145
static const true_false_string atsvc_DaysOfMonth_Ninth_tfs = {
146
   "Ninth is SET",
147
   "Ninth is NOT SET",
148
};
149
static const true_false_string atsvc_DaysOfMonth_Tenth_tfs = {
150
   "Tenth is SET",
151
   "Tenth is NOT SET",
152
};
153
static const true_false_string atsvc_DaysOfMonth_Eleventh_tfs = {
154
   "Eleventh is SET",
155
   "Eleventh is NOT SET",
156
};
157
static const true_false_string atsvc_DaysOfMonth_Twelfth_tfs = {
158
   "Twelfth is SET",
159
   "Twelfth is NOT SET",
160
};
161
static const true_false_string atsvc_DaysOfMonth_Thitteenth_tfs = {
162
   "Thitteenth is SET",
163
   "Thitteenth is NOT SET",
164
};
165
static const true_false_string atsvc_DaysOfMonth_Fourteenth_tfs = {
166
   "Fourteenth is SET",
167
   "Fourteenth is NOT SET",
168
};
169
static const true_false_string atsvc_DaysOfMonth_Fifteenth_tfs = {
170
   "Fifteenth is SET",
171
   "Fifteenth is NOT SET",
172
};
173
static const true_false_string atsvc_DaysOfMonth_Sixteenth_tfs = {
174
   "Sixteenth is SET",
175
   "Sixteenth is NOT SET",
176
};
177
static const true_false_string atsvc_DaysOfMonth_Seventeenth_tfs = {
178
   "Seventeenth is SET",
179
   "Seventeenth is NOT SET",
180
};
181
static const true_false_string atsvc_DaysOfMonth_Eighteenth_tfs = {
182
   "Eighteenth is SET",
183
   "Eighteenth is NOT SET",
184
};
185
static const true_false_string atsvc_DaysOfMonth_Ninteenth_tfs = {
186
   "Ninteenth is SET",
187
   "Ninteenth is NOT SET",
188
};
189
static const true_false_string atsvc_DaysOfMonth_Twentyth_tfs = {
190
   "Twentyth is SET",
191
   "Twentyth is NOT SET",
192
};
193
static const true_false_string atsvc_DaysOfMonth_Twentyfirst_tfs = {
194
   "Twentyfirst is SET",
195
   "Twentyfirst is NOT SET",
196
};
197
static const true_false_string atsvc_DaysOfMonth_Twentysecond_tfs = {
198
   "Twentysecond is SET",
199
   "Twentysecond is NOT SET",
200
};
201
static const true_false_string atsvc_DaysOfMonth_Twentythird_tfs = {
202
   "Twentythird is SET",
203
   "Twentythird is NOT SET",
204
};
205
static const true_false_string atsvc_DaysOfMonth_Twentyfourth_tfs = {
206
   "Twentyfourth is SET",
207
   "Twentyfourth is NOT SET",
208
};
209
static const true_false_string atsvc_DaysOfMonth_Twentyfifth_tfs = {
210
   "Twentyfifth is SET",
211
   "Twentyfifth is NOT SET",
212
};
213
static const true_false_string atsvc_DaysOfMonth_Twentysixth_tfs = {
214
   "Twentysixth is SET",
215
   "Twentysixth is NOT SET",
216
};
217
static const true_false_string atsvc_DaysOfMonth_Twentyseventh_tfs = {
218
   "Twentyseventh is SET",
219
   "Twentyseventh is NOT SET",
220
};
221
static const true_false_string atsvc_DaysOfMonth_Twentyeighth_tfs = {
222
   "Twentyeighth is SET",
223
   "Twentyeighth is NOT SET",
224
};
225
static const true_false_string atsvc_DaysOfMonth_Twentyninth_tfs = {
226
   "Twentyninth is SET",
227
   "Twentyninth is NOT SET",
228
};
229
static const true_false_string atsvc_DaysOfMonth_Thirtieth_tfs = {
230
   "Thirtieth is SET",
231
   "Thirtieth is NOT SET",
232
};
233
static const true_false_string atsvc_DaysOfMonth_Thirtyfirst_tfs = {
234
   "Thirtyfirst is SET",
235
   "Thirtyfirst is NOT SET",
236
};
237
static const true_false_string atsvc_Flags_JOB_RUN_PERIODICALLY_tfs = {
238
   "JOB_RUN_PERIODICALLY is SET",
239
   "JOB_RUN_PERIODICALLY is NOT SET",
240
};
241
static const true_false_string atsvc_Flags_JOB_EXEC_ERROR_tfs = {
242
   "JOB_EXEC_ERROR is SET",
243
   "JOB_EXEC_ERROR is NOT SET",
244
};
245
static const true_false_string atsvc_Flags_JOB_RUNS_TODAY_tfs = {
246
   "JOB_RUNS_TODAY is SET",
247
   "JOB_RUNS_TODAY is NOT SET",
248
};
249
static const true_false_string atsvc_Flags_JOB_ADD_CURRENT_DATE_tfs = {
250
   "JOB_ADD_CURRENT_DATE is SET",
251
   "JOB_ADD_CURRENT_DATE is NOT SET",
252
};
253
static const true_false_string atsvc_Flags_JOB_NONINTERACTIVE_tfs = {
254
   "JOB_NONINTERACTIVE is SET",
255
   "JOB_NONINTERACTIVE is NOT SET",
256
};
257
static const true_false_string atsvc_DaysOfWeek_DAYSOFWEEK_MONDAY_tfs = {
258
   "DAYSOFWEEK_MONDAY is SET",
259
   "DAYSOFWEEK_MONDAY is NOT SET",
260
};
261
static const true_false_string atsvc_DaysOfWeek_DAYSOFWEEK_TUESDAY_tfs = {
262
   "DAYSOFWEEK_TUESDAY is SET",
263
   "DAYSOFWEEK_TUESDAY is NOT SET",
264
};
265
static const true_false_string atsvc_DaysOfWeek_DAYSOFWEEK_WEDNESDAY_tfs = {
266
   "DAYSOFWEEK_WEDNESDAY is SET",
267
   "DAYSOFWEEK_WEDNESDAY is NOT SET",
268
};
269
static const true_false_string atsvc_DaysOfWeek_DAYSOFWEEK_THURSDAY_tfs = {
270
   "DAYSOFWEEK_THURSDAY is SET",
271
   "DAYSOFWEEK_THURSDAY is NOT SET",
272
};
273
static const true_false_string atsvc_DaysOfWeek_DAYSOFWEEK_FRIDAY_tfs = {
274
   "DAYSOFWEEK_FRIDAY is SET",
275
   "DAYSOFWEEK_FRIDAY is NOT SET",
276
};
277
static const true_false_string atsvc_DaysOfWeek_DAYSOFWEEK_SATURDAY_tfs = {
278
   "DAYSOFWEEK_SATURDAY is SET",
279
   "DAYSOFWEEK_SATURDAY is NOT SET",
280
};
281
static const true_false_string atsvc_DaysOfWeek_DAYSOFWEEK_SUNDAY_tfs = {
282
   "DAYSOFWEEK_SUNDAY is SET",
283
   "DAYSOFWEEK_SUNDAY is NOT SET",
284
};
285
static int atsvc_dissect_element_JobInfo_job_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
286
static int atsvc_dissect_element_JobInfo_days_of_month(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
287
static int atsvc_dissect_element_JobInfo_days_of_week(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
288
static int atsvc_dissect_element_JobInfo_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
289
static int atsvc_dissect_element_JobInfo_command(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
290
static int atsvc_dissect_element_JobInfo_command_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
291
static int atsvc_dissect_element_JobEnumInfo_job_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
292
static int atsvc_dissect_element_JobEnumInfo_job_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
293
static int atsvc_dissect_element_JobEnumInfo_days_of_month(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
294
static int atsvc_dissect_element_JobEnumInfo_days_of_week(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
295
static int atsvc_dissect_element_JobEnumInfo_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
296
static int atsvc_dissect_element_JobEnumInfo_command(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
297
static int atsvc_dissect_element_JobEnumInfo_command_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
298
static int atsvc_dissect_element_enum_ctr_entries_read(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
299
static int atsvc_dissect_element_enum_ctr_first_entry(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
300
static int atsvc_dissect_element_enum_ctr_first_entry_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
301
static int atsvc_dissect_element_enum_ctr_first_entry__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
302
static int atsvc_dissect_element_JobAdd_servername(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
303
static int atsvc_dissect_element_JobAdd_servername_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
304
static int atsvc_dissect_element_JobAdd_job_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
305
static int atsvc_dissect_element_JobAdd_job_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
306
static int atsvc_dissect_element_JobAdd_job_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
307
static int atsvc_dissect_element_JobAdd_job_id_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
308
static int atsvc_dissect_element_JobDel_servername(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
309
static int atsvc_dissect_element_JobDel_servername_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
310
static int atsvc_dissect_element_JobDel_min_job_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
311
static int atsvc_dissect_element_JobDel_max_job_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
312
static int atsvc_dissect_element_JobEnum_servername(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
313
static int atsvc_dissect_element_JobEnum_servername_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
314
static int atsvc_dissect_element_JobEnum_ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
315
static int atsvc_dissect_element_JobEnum_ctr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
316
static int atsvc_dissect_element_JobEnum_preferred_max_len(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
317
static int atsvc_dissect_element_JobEnum_total_entries(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
318
static int atsvc_dissect_element_JobEnum_total_entries_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
319
static int atsvc_dissect_element_JobEnum_resume_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
320
static int atsvc_dissect_element_JobEnum_resume_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
321
static int atsvc_dissect_element_JobGetInfo_servername(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
322
static int atsvc_dissect_element_JobGetInfo_servername_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
323
static int atsvc_dissect_element_JobGetInfo_job_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
324
static int atsvc_dissect_element_JobGetInfo_job_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
325
static int atsvc_dissect_element_JobGetInfo_job_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
326
static int atsvc_dissect_element_JobGetInfo_job_info__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
327
328
329
/* IDL: bitmap { */
330
/* IDL:   First =  0x00000001 , */
331
/* IDL:   Second =  0x00000002 , */
332
/* IDL:   Third =  0x00000004 , */
333
/* IDL:   Fourth =  0x00000008 , */
334
/* IDL:   Fifth =  0x00000010 , */
335
/* IDL:   Sixth =  0x00000020 , */
336
/* IDL:   Seventh =  0x00000040 , */
337
/* IDL:   Eight =  0x00000080 , */
338
/* IDL:   Ninth =  0x00000100 , */
339
/* IDL:   Tenth =  0x00000200 , */
340
/* IDL:   Eleventh =  0x00000400 , */
341
/* IDL:   Twelfth =  0x00000800 , */
342
/* IDL:   Thitteenth =  0x00001000 , */
343
/* IDL:   Fourteenth =  0x00002000 , */
344
/* IDL:   Fifteenth =  0x00004000 , */
345
/* IDL:   Sixteenth =  0x00008000 , */
346
/* IDL:   Seventeenth =  0x00010000 , */
347
/* IDL:   Eighteenth =  0x00020000 , */
348
/* IDL:   Ninteenth =  0x00040000 , */
349
/* IDL:   Twentyth =  0x00080000 , */
350
/* IDL:   Twentyfirst =  0x00100000 , */
351
/* IDL:   Twentysecond =  0x00200000 , */
352
/* IDL:   Twentythird =  0x00400000 , */
353
/* IDL:   Twentyfourth =  0x00800000 , */
354
/* IDL:   Twentyfifth =  0x01000000 , */
355
/* IDL:   Twentysixth =  0x02000000 , */
356
/* IDL:   Twentyseventh =  0x04000000 , */
357
/* IDL:   Twentyeighth =  0x08000000 , */
358
/* IDL:   Twentyninth =  0x10000000 , */
359
/* IDL:   Thirtieth =  0x20000000 , */
360
/* IDL:   Thirtyfirst =  0x40000000 , */
361
/* IDL: } */
362
363
int
364
atsvc_dissect_bitmap_DaysOfMonth(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
365
0
{
366
0
  proto_item *item;
367
0
  static int * const atsvc_atsvc_DaysOfMonth_fields[] = {
368
0
    &hf_atsvc_atsvc_DaysOfMonth_First,
369
0
    &hf_atsvc_atsvc_DaysOfMonth_Second,
370
0
    &hf_atsvc_atsvc_DaysOfMonth_Third,
371
0
    &hf_atsvc_atsvc_DaysOfMonth_Fourth,
372
0
    &hf_atsvc_atsvc_DaysOfMonth_Fifth,
373
0
    &hf_atsvc_atsvc_DaysOfMonth_Sixth,
374
0
    &hf_atsvc_atsvc_DaysOfMonth_Seventh,
375
0
    &hf_atsvc_atsvc_DaysOfMonth_Eight,
376
0
    &hf_atsvc_atsvc_DaysOfMonth_Ninth,
377
0
    &hf_atsvc_atsvc_DaysOfMonth_Tenth,
378
0
    &hf_atsvc_atsvc_DaysOfMonth_Eleventh,
379
0
    &hf_atsvc_atsvc_DaysOfMonth_Twelfth,
380
0
    &hf_atsvc_atsvc_DaysOfMonth_Thitteenth,
381
0
    &hf_atsvc_atsvc_DaysOfMonth_Fourteenth,
382
0
    &hf_atsvc_atsvc_DaysOfMonth_Fifteenth,
383
0
    &hf_atsvc_atsvc_DaysOfMonth_Sixteenth,
384
0
    &hf_atsvc_atsvc_DaysOfMonth_Seventeenth,
385
0
    &hf_atsvc_atsvc_DaysOfMonth_Eighteenth,
386
0
    &hf_atsvc_atsvc_DaysOfMonth_Ninteenth,
387
0
    &hf_atsvc_atsvc_DaysOfMonth_Twentyth,
388
0
    &hf_atsvc_atsvc_DaysOfMonth_Twentyfirst,
389
0
    &hf_atsvc_atsvc_DaysOfMonth_Twentysecond,
390
0
    &hf_atsvc_atsvc_DaysOfMonth_Twentythird,
391
0
    &hf_atsvc_atsvc_DaysOfMonth_Twentyfourth,
392
0
    &hf_atsvc_atsvc_DaysOfMonth_Twentyfifth,
393
0
    &hf_atsvc_atsvc_DaysOfMonth_Twentysixth,
394
0
    &hf_atsvc_atsvc_DaysOfMonth_Twentyseventh,
395
0
    &hf_atsvc_atsvc_DaysOfMonth_Twentyeighth,
396
0
    &hf_atsvc_atsvc_DaysOfMonth_Twentyninth,
397
0
    &hf_atsvc_atsvc_DaysOfMonth_Thirtieth,
398
0
    &hf_atsvc_atsvc_DaysOfMonth_Thirtyfirst,
399
0
    NULL
400
0
  };
401
0
  uint32_t flags;
402
0
  ALIGN_TO_4_BYTES;
403
404
0
  item = proto_tree_add_bitmask_with_flags(parent_tree, tvb, offset, hf_index,
405
0
        ett_atsvc_atsvc_DaysOfMonth, atsvc_atsvc_DaysOfMonth_fields, DREP_ENC_INTEGER(drep), BMT_NO_FALSE);
406
407
0
  offset = dissect_ndr_uint32(tvb, offset, pinfo, parent_tree, di, drep, -1, &flags);
408
409
0
  if (!flags)
410
0
    proto_item_append_text(item, ": (No values set)");
411
412
0
  if (flags & (~0x7fffffff)) {
413
0
    flags &= (~0x7fffffff);
414
0
    proto_item_append_text(item, "Unknown bitmap value 0x%x", flags);
415
0
  }
416
417
0
  return offset;
418
0
}
419
420
421
/* IDL: bitmap { */
422
/* IDL:   JOB_RUN_PERIODICALLY =  0x01 , */
423
/* IDL:   JOB_EXEC_ERROR =  0x02 , */
424
/* IDL:   JOB_RUNS_TODAY =  0x04 , */
425
/* IDL:   JOB_ADD_CURRENT_DATE =  0x08 , */
426
/* IDL:   JOB_NONINTERACTIVE =  0x10 , */
427
/* IDL: } */
428
429
int
430
atsvc_dissect_bitmap_Flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
431
0
{
432
0
  proto_item *item;
433
0
  static int * const atsvc_atsvc_Flags_fields[] = {
434
0
    &hf_atsvc_atsvc_Flags_JOB_RUN_PERIODICALLY,
435
0
    &hf_atsvc_atsvc_Flags_JOB_EXEC_ERROR,
436
0
    &hf_atsvc_atsvc_Flags_JOB_RUNS_TODAY,
437
0
    &hf_atsvc_atsvc_Flags_JOB_ADD_CURRENT_DATE,
438
0
    &hf_atsvc_atsvc_Flags_JOB_NONINTERACTIVE,
439
0
    NULL
440
0
  };
441
0
  uint8_t flags;
442
443
0
  item = proto_tree_add_bitmask_with_flags(parent_tree, tvb, offset, hf_index,
444
0
        ett_atsvc_atsvc_Flags, atsvc_atsvc_Flags_fields, DREP_ENC_INTEGER(drep), BMT_NO_FALSE);
445
446
0
  offset = dissect_ndr_uint8(tvb, offset, pinfo, parent_tree, di, drep, -1, &flags);
447
448
0
  if (!flags)
449
0
    proto_item_append_text(item, ": (No values set)");
450
451
0
  if (flags & (~0x0000001f)) {
452
0
    flags &= (~0x0000001f);
453
0
    proto_item_append_text(item, "Unknown bitmap value 0x%x", flags);
454
0
  }
455
456
0
  return offset;
457
0
}
458
459
460
/* IDL: bitmap { */
461
/* IDL:   DAYSOFWEEK_MONDAY =  0x01 , */
462
/* IDL:   DAYSOFWEEK_TUESDAY =  0x02 , */
463
/* IDL:   DAYSOFWEEK_WEDNESDAY =  0x04 , */
464
/* IDL:   DAYSOFWEEK_THURSDAY =  0x08 , */
465
/* IDL:   DAYSOFWEEK_FRIDAY =  0x10 , */
466
/* IDL:   DAYSOFWEEK_SATURDAY =  0x20 , */
467
/* IDL:   DAYSOFWEEK_SUNDAY =  0x40 , */
468
/* IDL: } */
469
470
int
471
atsvc_dissect_bitmap_DaysOfWeek(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
472
0
{
473
0
  proto_item *item;
474
0
  static int * const atsvc_atsvc_DaysOfWeek_fields[] = {
475
0
    &hf_atsvc_atsvc_DaysOfWeek_DAYSOFWEEK_MONDAY,
476
0
    &hf_atsvc_atsvc_DaysOfWeek_DAYSOFWEEK_TUESDAY,
477
0
    &hf_atsvc_atsvc_DaysOfWeek_DAYSOFWEEK_WEDNESDAY,
478
0
    &hf_atsvc_atsvc_DaysOfWeek_DAYSOFWEEK_THURSDAY,
479
0
    &hf_atsvc_atsvc_DaysOfWeek_DAYSOFWEEK_FRIDAY,
480
0
    &hf_atsvc_atsvc_DaysOfWeek_DAYSOFWEEK_SATURDAY,
481
0
    &hf_atsvc_atsvc_DaysOfWeek_DAYSOFWEEK_SUNDAY,
482
0
    NULL
483
0
  };
484
0
  uint8_t flags;
485
486
0
  item = proto_tree_add_bitmask_with_flags(parent_tree, tvb, offset, hf_index,
487
0
        ett_atsvc_atsvc_DaysOfWeek, atsvc_atsvc_DaysOfWeek_fields, DREP_ENC_INTEGER(drep), BMT_NO_FALSE);
488
489
0
  offset = dissect_ndr_uint8(tvb, offset, pinfo, parent_tree, di, drep, -1, &flags);
490
491
0
  if (!flags)
492
0
    proto_item_append_text(item, ": (No values set)");
493
494
0
  if (flags & (~0x0000007f)) {
495
0
    flags &= (~0x0000007f);
496
0
    proto_item_append_text(item, "Unknown bitmap value 0x%x", flags);
497
0
  }
498
499
0
  return offset;
500
0
}
501
502
503
/* IDL: struct { */
504
/* IDL:   uint32 job_time; */
505
/* IDL:   atsvc_DaysOfMonth days_of_month; */
506
/* IDL:   atsvc_DaysOfWeek days_of_week; */
507
/* IDL:   atsvc_Flags flags; */
508
/* IDL:   [charset(UTF16)] [unique(1)] uint16 *command; */
509
/* IDL: } */
510
511
static int
512
atsvc_dissect_element_JobInfo_job_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
513
0
{
514
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_atsvc_atsvc_JobInfo_job_time, 0);
515
516
0
  return offset;
517
0
}
518
519
static int
520
atsvc_dissect_element_JobInfo_days_of_month(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
521
0
{
522
0
  offset = atsvc_dissect_bitmap_DaysOfMonth(tvb, offset, pinfo, tree, di, drep, hf_atsvc_atsvc_JobInfo_days_of_month, 0);
523
524
0
  return offset;
525
0
}
526
527
static int
528
atsvc_dissect_element_JobInfo_days_of_week(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
529
0
{
530
0
  offset = atsvc_dissect_bitmap_DaysOfWeek(tvb, offset, pinfo, tree, di, drep, hf_atsvc_atsvc_JobInfo_days_of_week, 0);
531
532
0
  return offset;
533
0
}
534
535
static int
536
atsvc_dissect_element_JobInfo_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
537
0
{
538
0
  offset = atsvc_dissect_bitmap_Flags(tvb, offset, pinfo, tree, di, drep, hf_atsvc_atsvc_JobInfo_flags, 0);
539
540
0
  return offset;
541
0
}
542
543
static int
544
atsvc_dissect_element_JobInfo_command(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
545
0
{
546
0
  offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, atsvc_dissect_element_JobInfo_command_, NDR_POINTER_UNIQUE, "Pointer to Command (uint16)",hf_atsvc_atsvc_JobInfo_command);
547
548
0
  return offset;
549
0
}
550
551
static int
552
atsvc_dissect_element_JobInfo_command_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
553
0
{
554
0
  char *data;
555
556
0
  offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(uint16_t), hf_atsvc_atsvc_JobInfo_command, false, &data);
557
0
  proto_item_append_text(tree, ": %s", data);
558
559
0
  return offset;
560
0
}
561
562
int
563
atsvc_dissect_struct_JobInfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
564
0
{
565
0
  proto_item *item = NULL;
566
0
  proto_tree *tree = NULL;
567
0
  int old_offset;
568
569
0
  ALIGN_TO_5_BYTES;
570
571
0
  old_offset = offset;
572
573
0
  if (parent_tree) {
574
0
    item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
575
0
    tree = proto_item_add_subtree(item, ett_atsvc_atsvc_JobInfo);
576
0
  }
577
578
0
  offset = atsvc_dissect_element_JobInfo_job_time(tvb, offset, pinfo, tree, di, drep);
579
580
0
  offset = atsvc_dissect_element_JobInfo_days_of_month(tvb, offset, pinfo, tree, di, drep);
581
582
0
  offset = atsvc_dissect_element_JobInfo_days_of_week(tvb, offset, pinfo, tree, di, drep);
583
584
0
  offset = atsvc_dissect_element_JobInfo_flags(tvb, offset, pinfo, tree, di, drep);
585
586
0
  offset = atsvc_dissect_element_JobInfo_command(tvb, offset, pinfo, tree, di, drep);
587
588
589
0
  proto_item_set_len(item, offset-old_offset);
590
591
592
0
  if (di->call_data->flags & DCERPC_IS_NDR64) {
593
0
    ALIGN_TO_5_BYTES;
594
0
  }
595
596
0
  return offset;
597
0
}
598
599
600
/* IDL: struct { */
601
/* IDL:   uint32 job_id; */
602
/* IDL:   uint32 job_time; */
603
/* IDL:   atsvc_DaysOfMonth days_of_month; */
604
/* IDL:   atsvc_DaysOfWeek days_of_week; */
605
/* IDL:   atsvc_Flags flags; */
606
/* IDL:   [charset(UTF16)] [unique(1)] uint16 *command; */
607
/* IDL: } */
608
609
static int
610
atsvc_dissect_element_JobEnumInfo_job_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
611
0
{
612
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_atsvc_job_id, 0);
613
614
0
  return offset;
615
0
}
616
617
static int
618
atsvc_dissect_element_JobEnumInfo_job_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
619
0
{
620
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_atsvc_atsvc_JobEnumInfo_job_time, 0);
621
622
0
  return offset;
623
0
}
624
625
static int
626
atsvc_dissect_element_JobEnumInfo_days_of_month(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
627
0
{
628
0
  offset = atsvc_dissect_bitmap_DaysOfMonth(tvb, offset, pinfo, tree, di, drep, hf_atsvc_atsvc_JobEnumInfo_days_of_month, 0);
629
630
0
  return offset;
631
0
}
632
633
static int
634
atsvc_dissect_element_JobEnumInfo_days_of_week(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
635
0
{
636
0
  offset = atsvc_dissect_bitmap_DaysOfWeek(tvb, offset, pinfo, tree, di, drep, hf_atsvc_atsvc_JobEnumInfo_days_of_week, 0);
637
638
0
  return offset;
639
0
}
640
641
static int
642
atsvc_dissect_element_JobEnumInfo_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
643
0
{
644
0
  offset = atsvc_dissect_bitmap_Flags(tvb, offset, pinfo, tree, di, drep, hf_atsvc_atsvc_JobEnumInfo_flags, 0);
645
646
0
  return offset;
647
0
}
648
649
static int
650
atsvc_dissect_element_JobEnumInfo_command(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
651
0
{
652
0
  offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, atsvc_dissect_element_JobEnumInfo_command_, NDR_POINTER_UNIQUE, "Pointer to Command (uint16)",hf_atsvc_atsvc_JobEnumInfo_command);
653
654
0
  return offset;
655
0
}
656
657
static int
658
atsvc_dissect_element_JobEnumInfo_command_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
659
0
{
660
0
  char *data;
661
662
0
  offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(uint16_t), hf_atsvc_atsvc_JobEnumInfo_command, false, &data);
663
0
  proto_item_append_text(tree, ": %s", data);
664
665
0
  return offset;
666
0
}
667
668
int
669
atsvc_dissect_struct_JobEnumInfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
670
0
{
671
0
  proto_item *item = NULL;
672
0
  proto_tree *tree = NULL;
673
0
  int old_offset;
674
675
0
  ALIGN_TO_5_BYTES;
676
677
0
  old_offset = offset;
678
679
0
  if (parent_tree) {
680
0
    item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
681
0
    tree = proto_item_add_subtree(item, ett_atsvc_atsvc_JobEnumInfo);
682
0
  }
683
684
0
  offset = atsvc_dissect_element_JobEnumInfo_job_id(tvb, offset, pinfo, tree, di, drep);
685
686
0
  offset = atsvc_dissect_element_JobEnumInfo_job_time(tvb, offset, pinfo, tree, di, drep);
687
688
0
  offset = atsvc_dissect_element_JobEnumInfo_days_of_month(tvb, offset, pinfo, tree, di, drep);
689
690
0
  offset = atsvc_dissect_element_JobEnumInfo_days_of_week(tvb, offset, pinfo, tree, di, drep);
691
692
0
  offset = atsvc_dissect_element_JobEnumInfo_flags(tvb, offset, pinfo, tree, di, drep);
693
694
0
  offset = atsvc_dissect_element_JobEnumInfo_command(tvb, offset, pinfo, tree, di, drep);
695
696
697
0
  proto_item_set_len(item, offset-old_offset);
698
699
700
0
  if (di->call_data->flags & DCERPC_IS_NDR64) {
701
0
    ALIGN_TO_5_BYTES;
702
0
  }
703
704
0
  return offset;
705
0
}
706
707
708
/* IDL: struct { */
709
/* IDL:   uint32 entries_read; */
710
/* IDL:   [size_is(entries_read)] [unique(1)] atsvc_JobEnumInfo *first_entry; */
711
/* IDL: } */
712
713
static int
714
atsvc_dissect_element_enum_ctr_entries_read(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
715
0
{
716
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_atsvc_atsvc_enum_ctr_entries_read, 0);
717
718
0
  return offset;
719
0
}
720
721
static int
722
atsvc_dissect_element_enum_ctr_first_entry(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
723
0
{
724
0
  offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, atsvc_dissect_element_enum_ctr_first_entry_, NDR_POINTER_UNIQUE, "Pointer to First Entry (atsvc_JobEnumInfo)",hf_atsvc_atsvc_enum_ctr_first_entry);
725
726
0
  return offset;
727
0
}
728
729
static int
730
atsvc_dissect_element_enum_ctr_first_entry_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
731
0
{
732
0
  offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, atsvc_dissect_element_enum_ctr_first_entry__);
733
734
0
  return offset;
735
0
}
736
737
static int
738
atsvc_dissect_element_enum_ctr_first_entry__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
739
0
{
740
0
  offset = atsvc_dissect_struct_JobEnumInfo(tvb,offset,pinfo,tree,di,drep,hf_atsvc_atsvc_enum_ctr_first_entry,0);
741
742
0
  return offset;
743
0
}
744
745
int
746
atsvc_dissect_struct_enum_ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
747
0
{
748
0
  proto_item *item = NULL;
749
0
  proto_tree *tree = NULL;
750
0
  int old_offset;
751
752
0
  ALIGN_TO_5_BYTES;
753
754
0
  old_offset = offset;
755
756
0
  if (parent_tree) {
757
0
    item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
758
0
    tree = proto_item_add_subtree(item, ett_atsvc_atsvc_enum_ctr);
759
0
  }
760
761
0
  offset = atsvc_dissect_element_enum_ctr_entries_read(tvb, offset, pinfo, tree, di, drep);
762
763
0
  offset = atsvc_dissect_element_enum_ctr_first_entry(tvb, offset, pinfo, tree, di, drep);
764
765
766
0
  proto_item_set_len(item, offset-old_offset);
767
768
769
0
  if (di->call_data->flags & DCERPC_IS_NDR64) {
770
0
    ALIGN_TO_5_BYTES;
771
0
  }
772
773
0
  return offset;
774
0
}
775
776
static int
777
atsvc_dissect_element_JobAdd_servername(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
778
0
{
779
0
  offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, atsvc_dissect_element_JobAdd_servername_, NDR_POINTER_UNIQUE, "Pointer to Servername (uint16)",hf_atsvc_servername);
780
781
0
  return offset;
782
0
}
783
784
static int
785
atsvc_dissect_element_JobAdd_servername_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
786
0
{
787
0
  char *data;
788
789
0
  offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(uint16_t), hf_atsvc_servername, false, &data);
790
0
  proto_item_append_text(tree, ": %s", data);
791
792
0
  return offset;
793
0
}
794
795
static int
796
atsvc_dissect_element_JobAdd_job_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
797
0
{
798
0
  offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, atsvc_dissect_element_JobAdd_job_info_, NDR_POINTER_REF, "Pointer to Job Info (atsvc_JobInfo)",hf_atsvc_job_info);
799
800
0
  return offset;
801
0
}
802
803
static int
804
atsvc_dissect_element_JobAdd_job_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
805
0
{
806
0
  offset = atsvc_dissect_struct_JobInfo(tvb,offset,pinfo,tree,di,drep,hf_atsvc_job_info,0);
807
808
0
  return offset;
809
0
}
810
811
static int
812
atsvc_dissect_element_JobAdd_job_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
813
0
{
814
0
  offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, atsvc_dissect_element_JobAdd_job_id_, NDR_POINTER_REF, "Pointer to Job Id (uint32)",hf_atsvc_job_id);
815
816
0
  return offset;
817
0
}
818
819
static int
820
atsvc_dissect_element_JobAdd_job_id_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
821
0
{
822
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_atsvc_job_id, 0);
823
824
0
  return offset;
825
0
}
826
827
/* IDL: NTSTATUS atsvc_JobAdd( */
828
/* IDL: [charset(UTF16)] [in] [unique(1)] uint16 *servername, */
829
/* IDL: [in] [ref] atsvc_JobInfo *job_info, */
830
/* IDL: [out] [ref] uint32 *job_id */
831
/* IDL: ); */
832
833
static int
834
atsvc_dissect_JobAdd_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
835
0
{
836
0
  uint32_t status;
837
838
0
  di->dcerpc_procedure_name="JobAdd";
839
0
  offset = atsvc_dissect_element_JobAdd_job_id(tvb, offset, pinfo, tree, di, drep);
840
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
841
842
0
  offset = dissect_ntstatus(tvb, offset, pinfo, tree, di, drep, hf_atsvc_status, &status);
843
844
0
  if (status != 0)
845
0
    col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(status, &NT_errors_ext, "Unknown NT status 0x%08x"));
846
847
0
  return offset;
848
0
}
849
850
static int
851
atsvc_dissect_JobAdd_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
852
0
{
853
0
  di->dcerpc_procedure_name="JobAdd";
854
0
  offset = atsvc_dissect_element_JobAdd_servername(tvb, offset, pinfo, tree, di, drep);
855
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
856
0
  offset = atsvc_dissect_element_JobAdd_job_info(tvb, offset, pinfo, tree, di, drep);
857
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
858
0
  return offset;
859
0
}
860
861
static int
862
atsvc_dissect_element_JobDel_servername(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
863
0
{
864
0
  offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, atsvc_dissect_element_JobDel_servername_, NDR_POINTER_UNIQUE, "Pointer to Servername (uint16)",hf_atsvc_servername);
865
866
0
  return offset;
867
0
}
868
869
static int
870
atsvc_dissect_element_JobDel_servername_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
871
0
{
872
0
  char *data;
873
874
0
  offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(uint16_t), hf_atsvc_servername, false, &data);
875
0
  proto_item_append_text(tree, ": %s", data);
876
877
0
  return offset;
878
0
}
879
880
static int
881
atsvc_dissect_element_JobDel_min_job_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
882
0
{
883
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_atsvc_atsvc_JobDel_min_job_id, 0);
884
885
0
  return offset;
886
0
}
887
888
static int
889
atsvc_dissect_element_JobDel_max_job_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
890
0
{
891
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_atsvc_atsvc_JobDel_max_job_id, 0);
892
893
0
  return offset;
894
0
}
895
896
/* IDL: NTSTATUS atsvc_JobDel( */
897
/* IDL: [charset(UTF16)] [in] [unique(1)] uint16 *servername, */
898
/* IDL: [in] uint32 min_job_id, */
899
/* IDL: [in] uint32 max_job_id */
900
/* IDL: ); */
901
902
static int
903
atsvc_dissect_JobDel_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
904
0
{
905
0
  uint32_t status;
906
907
0
  di->dcerpc_procedure_name="JobDel";
908
0
  offset = dissect_ntstatus(tvb, offset, pinfo, tree, di, drep, hf_atsvc_status, &status);
909
910
0
  if (status != 0)
911
0
    col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(status, &NT_errors_ext, "Unknown NT status 0x%08x"));
912
913
0
  return offset;
914
0
}
915
916
static int
917
atsvc_dissect_JobDel_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
918
0
{
919
0
  di->dcerpc_procedure_name="JobDel";
920
0
  offset = atsvc_dissect_element_JobDel_servername(tvb, offset, pinfo, tree, di, drep);
921
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
922
0
  offset = atsvc_dissect_element_JobDel_min_job_id(tvb, offset, pinfo, tree, di, drep);
923
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
924
0
  offset = atsvc_dissect_element_JobDel_max_job_id(tvb, offset, pinfo, tree, di, drep);
925
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
926
0
  return offset;
927
0
}
928
929
static int
930
atsvc_dissect_element_JobEnum_servername(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
931
0
{
932
0
  offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, atsvc_dissect_element_JobEnum_servername_, NDR_POINTER_UNIQUE, "Pointer to Servername (uint16)",hf_atsvc_servername);
933
934
0
  return offset;
935
0
}
936
937
static int
938
atsvc_dissect_element_JobEnum_servername_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
939
0
{
940
0
  char *data;
941
942
0
  offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(uint16_t), hf_atsvc_servername, false, &data);
943
0
  proto_item_append_text(tree, ": %s", data);
944
945
0
  return offset;
946
0
}
947
948
static int
949
atsvc_dissect_element_JobEnum_ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
950
0
{
951
0
  offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, atsvc_dissect_element_JobEnum_ctr_, NDR_POINTER_REF, "Pointer to Ctr (atsvc_enum_ctr)",hf_atsvc_atsvc_JobEnum_ctr);
952
953
0
  return offset;
954
0
}
955
956
static int
957
atsvc_dissect_element_JobEnum_ctr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
958
0
{
959
0
  offset = atsvc_dissect_struct_enum_ctr(tvb,offset,pinfo,tree,di,drep,hf_atsvc_atsvc_JobEnum_ctr,0);
960
961
0
  return offset;
962
0
}
963
964
static int
965
atsvc_dissect_element_JobEnum_preferred_max_len(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
966
0
{
967
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_atsvc_atsvc_JobEnum_preferred_max_len, 0);
968
969
0
  return offset;
970
0
}
971
972
static int
973
atsvc_dissect_element_JobEnum_total_entries(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
974
0
{
975
0
  offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, atsvc_dissect_element_JobEnum_total_entries_, NDR_POINTER_REF, "Pointer to Total Entries (uint32)",hf_atsvc_atsvc_JobEnum_total_entries);
976
977
0
  return offset;
978
0
}
979
980
static int
981
atsvc_dissect_element_JobEnum_total_entries_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
982
0
{
983
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_atsvc_atsvc_JobEnum_total_entries, 0);
984
985
0
  return offset;
986
0
}
987
988
static int
989
atsvc_dissect_element_JobEnum_resume_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
990
0
{
991
0
  offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, atsvc_dissect_element_JobEnum_resume_handle_, NDR_POINTER_UNIQUE, "Pointer to Resume Handle (uint32)",hf_atsvc_atsvc_JobEnum_resume_handle);
992
993
0
  return offset;
994
0
}
995
996
static int
997
atsvc_dissect_element_JobEnum_resume_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
998
0
{
999
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_atsvc_atsvc_JobEnum_resume_handle, 0);
1000
1001
0
  return offset;
1002
0
}
1003
1004
/* IDL: NTSTATUS atsvc_JobEnum( */
1005
/* IDL: [charset(UTF16)] [in] [unique(1)] uint16 *servername, */
1006
/* IDL: [in] [out] [ref] atsvc_enum_ctr *ctr, */
1007
/* IDL: [in] uint32 preferred_max_len, */
1008
/* IDL: [out] [ref] uint32 *total_entries, */
1009
/* IDL: [in] [out] [unique(1)] uint32 *resume_handle */
1010
/* IDL: ); */
1011
1012
static int
1013
atsvc_dissect_JobEnum_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1014
0
{
1015
0
  uint32_t status;
1016
1017
0
  di->dcerpc_procedure_name="JobEnum";
1018
0
  offset = atsvc_dissect_element_JobEnum_ctr(tvb, offset, pinfo, tree, di, drep);
1019
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
1020
1021
0
  offset = atsvc_dissect_element_JobEnum_total_entries(tvb, offset, pinfo, tree, di, drep);
1022
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
1023
1024
0
  offset = atsvc_dissect_element_JobEnum_resume_handle(tvb, offset, pinfo, tree, di, drep);
1025
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
1026
1027
0
  offset = dissect_ntstatus(tvb, offset, pinfo, tree, di, drep, hf_atsvc_status, &status);
1028
1029
0
  if (status != 0)
1030
0
    col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(status, &NT_errors_ext, "Unknown NT status 0x%08x"));
1031
1032
0
  return offset;
1033
0
}
1034
1035
static int
1036
atsvc_dissect_JobEnum_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1037
0
{
1038
0
  di->dcerpc_procedure_name="JobEnum";
1039
0
  offset = atsvc_dissect_element_JobEnum_servername(tvb, offset, pinfo, tree, di, drep);
1040
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
1041
0
  offset = atsvc_dissect_element_JobEnum_ctr(tvb, offset, pinfo, tree, di, drep);
1042
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
1043
0
  offset = atsvc_dissect_element_JobEnum_preferred_max_len(tvb, offset, pinfo, tree, di, drep);
1044
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
1045
0
  offset = atsvc_dissect_element_JobEnum_resume_handle(tvb, offset, pinfo, tree, di, drep);
1046
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
1047
0
  return offset;
1048
0
}
1049
1050
static int
1051
atsvc_dissect_element_JobGetInfo_servername(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1052
0
{
1053
0
  offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, atsvc_dissect_element_JobGetInfo_servername_, NDR_POINTER_UNIQUE, "Pointer to Servername (uint16)",hf_atsvc_servername);
1054
1055
0
  return offset;
1056
0
}
1057
1058
static int
1059
atsvc_dissect_element_JobGetInfo_servername_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1060
0
{
1061
0
  char *data;
1062
1063
0
  offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(uint16_t), hf_atsvc_servername, false, &data);
1064
0
  proto_item_append_text(tree, ": %s", data);
1065
1066
0
  return offset;
1067
0
}
1068
1069
static int
1070
atsvc_dissect_element_JobGetInfo_job_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1071
0
{
1072
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_atsvc_job_id, 0);
1073
1074
0
  return offset;
1075
0
}
1076
1077
static int
1078
atsvc_dissect_element_JobGetInfo_job_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1079
0
{
1080
0
  offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, atsvc_dissect_element_JobGetInfo_job_info_, NDR_POINTER_REF, "Pointer to Job Info (atsvc_JobInfo)",hf_atsvc_job_info);
1081
1082
0
  return offset;
1083
0
}
1084
1085
static int
1086
atsvc_dissect_element_JobGetInfo_job_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1087
0
{
1088
0
  offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, atsvc_dissect_element_JobGetInfo_job_info__, NDR_POINTER_UNIQUE, "Pointer to Job Info (atsvc_JobInfo)",hf_atsvc_job_info);
1089
1090
0
  return offset;
1091
0
}
1092
1093
static int
1094
atsvc_dissect_element_JobGetInfo_job_info__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1095
0
{
1096
0
  offset = atsvc_dissect_struct_JobInfo(tvb,offset,pinfo,tree,di,drep,hf_atsvc_job_info,0);
1097
1098
0
  return offset;
1099
0
}
1100
1101
/* IDL: NTSTATUS atsvc_JobGetInfo( */
1102
/* IDL: [charset(UTF16)] [in] [unique(1)] uint16 *servername, */
1103
/* IDL: [in] uint32 job_id, */
1104
/* IDL: [out] [ref] atsvc_JobInfo **job_info */
1105
/* IDL: ); */
1106
1107
static int
1108
atsvc_dissect_JobGetInfo_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1109
0
{
1110
0
  uint32_t status;
1111
1112
0
  di->dcerpc_procedure_name="JobGetInfo";
1113
0
  offset = atsvc_dissect_element_JobGetInfo_job_info(tvb, offset, pinfo, tree, di, drep);
1114
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
1115
1116
0
  offset = dissect_ntstatus(tvb, offset, pinfo, tree, di, drep, hf_atsvc_status, &status);
1117
1118
0
  if (status != 0)
1119
0
    col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(status, &NT_errors_ext, "Unknown NT status 0x%08x"));
1120
1121
0
  return offset;
1122
0
}
1123
1124
static int
1125
atsvc_dissect_JobGetInfo_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1126
0
{
1127
0
  di->dcerpc_procedure_name="JobGetInfo";
1128
0
  offset = atsvc_dissect_element_JobGetInfo_servername(tvb, offset, pinfo, tree, di, drep);
1129
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
1130
0
  offset = atsvc_dissect_element_JobGetInfo_job_id(tvb, offset, pinfo, tree, di, drep);
1131
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
1132
0
  return offset;
1133
0
}
1134
1135
1136
static const dcerpc_sub_dissector atsvc_dissectors[] = {
1137
  { 0, "JobAdd",
1138
     atsvc_dissect_JobAdd_request, atsvc_dissect_JobAdd_response},
1139
  { 1, "JobDel",
1140
     atsvc_dissect_JobDel_request, atsvc_dissect_JobDel_response},
1141
  { 2, "JobEnum",
1142
     atsvc_dissect_JobEnum_request, atsvc_dissect_JobEnum_response},
1143
  { 3, "JobGetInfo",
1144
     atsvc_dissect_JobGetInfo_request, atsvc_dissect_JobGetInfo_response},
1145
  { 0, NULL, NULL, NULL }
1146
};
1147
1148
void proto_register_dcerpc_atsvc(void)
1149
14
{
1150
14
  static hf_register_info hf[] = {
1151
14
  { &hf_atsvc_atsvc_DaysOfMonth_Eight,
1152
14
    { "Eight", "atsvc.atsvc_DaysOfMonth.Eight", FT_BOOLEAN, 32, TFS(&atsvc_DaysOfMonth_Eight_tfs), ( 0x00000080 ), NULL, HFILL }},
1153
14
  { &hf_atsvc_atsvc_DaysOfMonth_Eighteenth,
1154
14
    { "Eighteenth", "atsvc.atsvc_DaysOfMonth.Eighteenth", FT_BOOLEAN, 32, TFS(&atsvc_DaysOfMonth_Eighteenth_tfs), ( 0x00020000 ), NULL, HFILL }},
1155
14
  { &hf_atsvc_atsvc_DaysOfMonth_Eleventh,
1156
14
    { "Eleventh", "atsvc.atsvc_DaysOfMonth.Eleventh", FT_BOOLEAN, 32, TFS(&atsvc_DaysOfMonth_Eleventh_tfs), ( 0x00000400 ), NULL, HFILL }},
1157
14
  { &hf_atsvc_atsvc_DaysOfMonth_Fifteenth,
1158
14
    { "Fifteenth", "atsvc.atsvc_DaysOfMonth.Fifteenth", FT_BOOLEAN, 32, TFS(&atsvc_DaysOfMonth_Fifteenth_tfs), ( 0x00004000 ), NULL, HFILL }},
1159
14
  { &hf_atsvc_atsvc_DaysOfMonth_Fifth,
1160
14
    { "Fifth", "atsvc.atsvc_DaysOfMonth.Fifth", FT_BOOLEAN, 32, TFS(&atsvc_DaysOfMonth_Fifth_tfs), ( 0x00000010 ), NULL, HFILL }},
1161
14
  { &hf_atsvc_atsvc_DaysOfMonth_First,
1162
14
    { "First", "atsvc.atsvc_DaysOfMonth.First", FT_BOOLEAN, 32, TFS(&atsvc_DaysOfMonth_First_tfs), ( 0x00000001 ), NULL, HFILL }},
1163
14
  { &hf_atsvc_atsvc_DaysOfMonth_Fourteenth,
1164
14
    { "Fourteenth", "atsvc.atsvc_DaysOfMonth.Fourteenth", FT_BOOLEAN, 32, TFS(&atsvc_DaysOfMonth_Fourteenth_tfs), ( 0x00002000 ), NULL, HFILL }},
1165
14
  { &hf_atsvc_atsvc_DaysOfMonth_Fourth,
1166
14
    { "Fourth", "atsvc.atsvc_DaysOfMonth.Fourth", FT_BOOLEAN, 32, TFS(&atsvc_DaysOfMonth_Fourth_tfs), ( 0x00000008 ), NULL, HFILL }},
1167
14
  { &hf_atsvc_atsvc_DaysOfMonth_Ninteenth,
1168
14
    { "Ninteenth", "atsvc.atsvc_DaysOfMonth.Ninteenth", FT_BOOLEAN, 32, TFS(&atsvc_DaysOfMonth_Ninteenth_tfs), ( 0x00040000 ), NULL, HFILL }},
1169
14
  { &hf_atsvc_atsvc_DaysOfMonth_Ninth,
1170
14
    { "Ninth", "atsvc.atsvc_DaysOfMonth.Ninth", FT_BOOLEAN, 32, TFS(&atsvc_DaysOfMonth_Ninth_tfs), ( 0x00000100 ), NULL, HFILL }},
1171
14
  { &hf_atsvc_atsvc_DaysOfMonth_Second,
1172
14
    { "Second", "atsvc.atsvc_DaysOfMonth.Second", FT_BOOLEAN, 32, TFS(&atsvc_DaysOfMonth_Second_tfs), ( 0x00000002 ), NULL, HFILL }},
1173
14
  { &hf_atsvc_atsvc_DaysOfMonth_Seventeenth,
1174
14
    { "Seventeenth", "atsvc.atsvc_DaysOfMonth.Seventeenth", FT_BOOLEAN, 32, TFS(&atsvc_DaysOfMonth_Seventeenth_tfs), ( 0x00010000 ), NULL, HFILL }},
1175
14
  { &hf_atsvc_atsvc_DaysOfMonth_Seventh,
1176
14
    { "Seventh", "atsvc.atsvc_DaysOfMonth.Seventh", FT_BOOLEAN, 32, TFS(&atsvc_DaysOfMonth_Seventh_tfs), ( 0x00000040 ), NULL, HFILL }},
1177
14
  { &hf_atsvc_atsvc_DaysOfMonth_Sixteenth,
1178
14
    { "Sixteenth", "atsvc.atsvc_DaysOfMonth.Sixteenth", FT_BOOLEAN, 32, TFS(&atsvc_DaysOfMonth_Sixteenth_tfs), ( 0x00008000 ), NULL, HFILL }},
1179
14
  { &hf_atsvc_atsvc_DaysOfMonth_Sixth,
1180
14
    { "Sixth", "atsvc.atsvc_DaysOfMonth.Sixth", FT_BOOLEAN, 32, TFS(&atsvc_DaysOfMonth_Sixth_tfs), ( 0x00000020 ), NULL, HFILL }},
1181
14
  { &hf_atsvc_atsvc_DaysOfMonth_Tenth,
1182
14
    { "Tenth", "atsvc.atsvc_DaysOfMonth.Tenth", FT_BOOLEAN, 32, TFS(&atsvc_DaysOfMonth_Tenth_tfs), ( 0x00000200 ), NULL, HFILL }},
1183
14
  { &hf_atsvc_atsvc_DaysOfMonth_Third,
1184
14
    { "Third", "atsvc.atsvc_DaysOfMonth.Third", FT_BOOLEAN, 32, TFS(&atsvc_DaysOfMonth_Third_tfs), ( 0x00000004 ), NULL, HFILL }},
1185
14
  { &hf_atsvc_atsvc_DaysOfMonth_Thirtieth,
1186
14
    { "Thirtieth", "atsvc.atsvc_DaysOfMonth.Thirtieth", FT_BOOLEAN, 32, TFS(&atsvc_DaysOfMonth_Thirtieth_tfs), ( 0x20000000 ), NULL, HFILL }},
1187
14
  { &hf_atsvc_atsvc_DaysOfMonth_Thirtyfirst,
1188
14
    { "Thirtyfirst", "atsvc.atsvc_DaysOfMonth.Thirtyfirst", FT_BOOLEAN, 32, TFS(&atsvc_DaysOfMonth_Thirtyfirst_tfs), ( 0x40000000 ), NULL, HFILL }},
1189
14
  { &hf_atsvc_atsvc_DaysOfMonth_Thitteenth,
1190
14
    { "Thitteenth", "atsvc.atsvc_DaysOfMonth.Thitteenth", FT_BOOLEAN, 32, TFS(&atsvc_DaysOfMonth_Thitteenth_tfs), ( 0x00001000 ), NULL, HFILL }},
1191
14
  { &hf_atsvc_atsvc_DaysOfMonth_Twelfth,
1192
14
    { "Twelfth", "atsvc.atsvc_DaysOfMonth.Twelfth", FT_BOOLEAN, 32, TFS(&atsvc_DaysOfMonth_Twelfth_tfs), ( 0x00000800 ), NULL, HFILL }},
1193
14
  { &hf_atsvc_atsvc_DaysOfMonth_Twentyeighth,
1194
14
    { "Twentyeighth", "atsvc.atsvc_DaysOfMonth.Twentyeighth", FT_BOOLEAN, 32, TFS(&atsvc_DaysOfMonth_Twentyeighth_tfs), ( 0x08000000 ), NULL, HFILL }},
1195
14
  { &hf_atsvc_atsvc_DaysOfMonth_Twentyfifth,
1196
14
    { "Twentyfifth", "atsvc.atsvc_DaysOfMonth.Twentyfifth", FT_BOOLEAN, 32, TFS(&atsvc_DaysOfMonth_Twentyfifth_tfs), ( 0x01000000 ), NULL, HFILL }},
1197
14
  { &hf_atsvc_atsvc_DaysOfMonth_Twentyfirst,
1198
14
    { "Twentyfirst", "atsvc.atsvc_DaysOfMonth.Twentyfirst", FT_BOOLEAN, 32, TFS(&atsvc_DaysOfMonth_Twentyfirst_tfs), ( 0x00100000 ), NULL, HFILL }},
1199
14
  { &hf_atsvc_atsvc_DaysOfMonth_Twentyfourth,
1200
14
    { "Twentyfourth", "atsvc.atsvc_DaysOfMonth.Twentyfourth", FT_BOOLEAN, 32, TFS(&atsvc_DaysOfMonth_Twentyfourth_tfs), ( 0x00800000 ), NULL, HFILL }},
1201
14
  { &hf_atsvc_atsvc_DaysOfMonth_Twentyninth,
1202
14
    { "Twentyninth", "atsvc.atsvc_DaysOfMonth.Twentyninth", FT_BOOLEAN, 32, TFS(&atsvc_DaysOfMonth_Twentyninth_tfs), ( 0x10000000 ), NULL, HFILL }},
1203
14
  { &hf_atsvc_atsvc_DaysOfMonth_Twentysecond,
1204
14
    { "Twentysecond", "atsvc.atsvc_DaysOfMonth.Twentysecond", FT_BOOLEAN, 32, TFS(&atsvc_DaysOfMonth_Twentysecond_tfs), ( 0x00200000 ), NULL, HFILL }},
1205
14
  { &hf_atsvc_atsvc_DaysOfMonth_Twentyseventh,
1206
14
    { "Twentyseventh", "atsvc.atsvc_DaysOfMonth.Twentyseventh", FT_BOOLEAN, 32, TFS(&atsvc_DaysOfMonth_Twentyseventh_tfs), ( 0x04000000 ), NULL, HFILL }},
1207
14
  { &hf_atsvc_atsvc_DaysOfMonth_Twentysixth,
1208
14
    { "Twentysixth", "atsvc.atsvc_DaysOfMonth.Twentysixth", FT_BOOLEAN, 32, TFS(&atsvc_DaysOfMonth_Twentysixth_tfs), ( 0x02000000 ), NULL, HFILL }},
1209
14
  { &hf_atsvc_atsvc_DaysOfMonth_Twentyth,
1210
14
    { "Twentyth", "atsvc.atsvc_DaysOfMonth.Twentyth", FT_BOOLEAN, 32, TFS(&atsvc_DaysOfMonth_Twentyth_tfs), ( 0x00080000 ), NULL, HFILL }},
1211
14
  { &hf_atsvc_atsvc_DaysOfMonth_Twentythird,
1212
14
    { "Twentythird", "atsvc.atsvc_DaysOfMonth.Twentythird", FT_BOOLEAN, 32, TFS(&atsvc_DaysOfMonth_Twentythird_tfs), ( 0x00400000 ), NULL, HFILL }},
1213
14
  { &hf_atsvc_atsvc_DaysOfWeek_DAYSOFWEEK_FRIDAY,
1214
14
    { "DAYSOFWEEK FRIDAY", "atsvc.atsvc_DaysOfWeek.DAYSOFWEEK_FRIDAY", FT_BOOLEAN, 8, TFS(&atsvc_DaysOfWeek_DAYSOFWEEK_FRIDAY_tfs), ( 0x10 ), NULL, HFILL }},
1215
14
  { &hf_atsvc_atsvc_DaysOfWeek_DAYSOFWEEK_MONDAY,
1216
14
    { "DAYSOFWEEK MONDAY", "atsvc.atsvc_DaysOfWeek.DAYSOFWEEK_MONDAY", FT_BOOLEAN, 8, TFS(&atsvc_DaysOfWeek_DAYSOFWEEK_MONDAY_tfs), ( 0x01 ), NULL, HFILL }},
1217
14
  { &hf_atsvc_atsvc_DaysOfWeek_DAYSOFWEEK_SATURDAY,
1218
14
    { "DAYSOFWEEK SATURDAY", "atsvc.atsvc_DaysOfWeek.DAYSOFWEEK_SATURDAY", FT_BOOLEAN, 8, TFS(&atsvc_DaysOfWeek_DAYSOFWEEK_SATURDAY_tfs), ( 0x20 ), NULL, HFILL }},
1219
14
  { &hf_atsvc_atsvc_DaysOfWeek_DAYSOFWEEK_SUNDAY,
1220
14
    { "DAYSOFWEEK SUNDAY", "atsvc.atsvc_DaysOfWeek.DAYSOFWEEK_SUNDAY", FT_BOOLEAN, 8, TFS(&atsvc_DaysOfWeek_DAYSOFWEEK_SUNDAY_tfs), ( 0x40 ), NULL, HFILL }},
1221
14
  { &hf_atsvc_atsvc_DaysOfWeek_DAYSOFWEEK_THURSDAY,
1222
14
    { "DAYSOFWEEK THURSDAY", "atsvc.atsvc_DaysOfWeek.DAYSOFWEEK_THURSDAY", FT_BOOLEAN, 8, TFS(&atsvc_DaysOfWeek_DAYSOFWEEK_THURSDAY_tfs), ( 0x08 ), NULL, HFILL }},
1223
14
  { &hf_atsvc_atsvc_DaysOfWeek_DAYSOFWEEK_TUESDAY,
1224
14
    { "DAYSOFWEEK TUESDAY", "atsvc.atsvc_DaysOfWeek.DAYSOFWEEK_TUESDAY", FT_BOOLEAN, 8, TFS(&atsvc_DaysOfWeek_DAYSOFWEEK_TUESDAY_tfs), ( 0x02 ), NULL, HFILL }},
1225
14
  { &hf_atsvc_atsvc_DaysOfWeek_DAYSOFWEEK_WEDNESDAY,
1226
14
    { "DAYSOFWEEK WEDNESDAY", "atsvc.atsvc_DaysOfWeek.DAYSOFWEEK_WEDNESDAY", FT_BOOLEAN, 8, TFS(&atsvc_DaysOfWeek_DAYSOFWEEK_WEDNESDAY_tfs), ( 0x04 ), NULL, HFILL }},
1227
14
  { &hf_atsvc_atsvc_Flags_JOB_ADD_CURRENT_DATE,
1228
14
    { "JOB ADD CURRENT DATE", "atsvc.atsvc_Flags.JOB_ADD_CURRENT_DATE", FT_BOOLEAN, 8, TFS(&atsvc_Flags_JOB_ADD_CURRENT_DATE_tfs), ( 0x08 ), NULL, HFILL }},
1229
14
  { &hf_atsvc_atsvc_Flags_JOB_EXEC_ERROR,
1230
14
    { "JOB EXEC ERROR", "atsvc.atsvc_Flags.JOB_EXEC_ERROR", FT_BOOLEAN, 8, TFS(&atsvc_Flags_JOB_EXEC_ERROR_tfs), ( 0x02 ), NULL, HFILL }},
1231
14
  { &hf_atsvc_atsvc_Flags_JOB_NONINTERACTIVE,
1232
14
    { "JOB NONINTERACTIVE", "atsvc.atsvc_Flags.JOB_NONINTERACTIVE", FT_BOOLEAN, 8, TFS(&atsvc_Flags_JOB_NONINTERACTIVE_tfs), ( 0x10 ), NULL, HFILL }},
1233
14
  { &hf_atsvc_atsvc_Flags_JOB_RUNS_TODAY,
1234
14
    { "JOB RUNS TODAY", "atsvc.atsvc_Flags.JOB_RUNS_TODAY", FT_BOOLEAN, 8, TFS(&atsvc_Flags_JOB_RUNS_TODAY_tfs), ( 0x04 ), NULL, HFILL }},
1235
14
  { &hf_atsvc_atsvc_Flags_JOB_RUN_PERIODICALLY,
1236
14
    { "JOB RUN PERIODICALLY", "atsvc.atsvc_Flags.JOB_RUN_PERIODICALLY", FT_BOOLEAN, 8, TFS(&atsvc_Flags_JOB_RUN_PERIODICALLY_tfs), ( 0x01 ), NULL, HFILL }},
1237
14
  { &hf_atsvc_atsvc_JobDel_max_job_id,
1238
14
    { "Max Job Id", "atsvc.atsvc_JobDel.max_job_id", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
1239
14
  { &hf_atsvc_atsvc_JobDel_min_job_id,
1240
14
    { "Min Job Id", "atsvc.atsvc_JobDel.min_job_id", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
1241
14
  { &hf_atsvc_atsvc_JobEnumInfo_command,
1242
14
    { "Command", "atsvc.atsvc_JobEnumInfo.command", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
1243
14
  { &hf_atsvc_atsvc_JobEnumInfo_days_of_month,
1244
14
    { "Days Of Month", "atsvc.atsvc_JobEnumInfo.days_of_month", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
1245
14
  { &hf_atsvc_atsvc_JobEnumInfo_days_of_week,
1246
14
    { "Days Of Week", "atsvc.atsvc_JobEnumInfo.days_of_week", FT_UINT8, BASE_HEX, NULL, 0, NULL, HFILL }},
1247
14
  { &hf_atsvc_atsvc_JobEnumInfo_flags,
1248
14
    { "Flags", "atsvc.atsvc_JobEnumInfo.flags", FT_UINT8, BASE_HEX, NULL, 0, NULL, HFILL }},
1249
14
  { &hf_atsvc_atsvc_JobEnumInfo_job_time,
1250
14
    { "Job Time", "atsvc.atsvc_JobEnumInfo.job_time", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
1251
14
  { &hf_atsvc_atsvc_JobEnum_ctr,
1252
14
    { "Ctr", "atsvc.atsvc_JobEnum.ctr", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
1253
14
  { &hf_atsvc_atsvc_JobEnum_preferred_max_len,
1254
14
    { "Preferred Max Len", "atsvc.atsvc_JobEnum.preferred_max_len", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
1255
14
  { &hf_atsvc_atsvc_JobEnum_resume_handle,
1256
14
    { "Resume Handle", "atsvc.atsvc_JobEnum.resume_handle", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
1257
14
  { &hf_atsvc_atsvc_JobEnum_total_entries,
1258
14
    { "Total Entries", "atsvc.atsvc_JobEnum.total_entries", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
1259
14
  { &hf_atsvc_atsvc_JobInfo_command,
1260
14
    { "Command", "atsvc.atsvc_JobInfo.command", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
1261
14
  { &hf_atsvc_atsvc_JobInfo_days_of_month,
1262
14
    { "Days Of Month", "atsvc.atsvc_JobInfo.days_of_month", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
1263
14
  { &hf_atsvc_atsvc_JobInfo_days_of_week,
1264
14
    { "Days Of Week", "atsvc.atsvc_JobInfo.days_of_week", FT_UINT8, BASE_HEX, NULL, 0, NULL, HFILL }},
1265
14
  { &hf_atsvc_atsvc_JobInfo_flags,
1266
14
    { "Flags", "atsvc.atsvc_JobInfo.flags", FT_UINT8, BASE_HEX, NULL, 0, NULL, HFILL }},
1267
14
  { &hf_atsvc_atsvc_JobInfo_job_time,
1268
14
    { "Job Time", "atsvc.atsvc_JobInfo.job_time", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
1269
14
  { &hf_atsvc_atsvc_enum_ctr_entries_read,
1270
14
    { "Entries Read", "atsvc.atsvc_enum_ctr.entries_read", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
1271
14
  { &hf_atsvc_atsvc_enum_ctr_first_entry,
1272
14
    { "First Entry", "atsvc.atsvc_enum_ctr.first_entry", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
1273
14
  { &hf_atsvc_job_id,
1274
14
    { "Job Id", "atsvc.job_id", FT_UINT32, BASE_DEC, NULL, 0, "Identifier of the scheduled job", HFILL }},
1275
14
  { &hf_atsvc_job_info,
1276
14
    { "JobInfo", "atcvs.job_info", FT_NONE, BASE_NONE, NULL, 0, "JobInfo structure", HFILL }},
1277
14
  { &hf_atsvc_opnum,
1278
14
    { "Operation", "atsvc.opnum", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
1279
14
  { &hf_atsvc_servername,
1280
14
    { "Server", "atsvc.server", FT_STRING, BASE_NONE, NULL, 0, "Name of the server", HFILL }},
1281
14
  { &hf_atsvc_status,
1282
14
    { "NT Error", "atsvc.status", FT_UINT32, BASE_HEX|BASE_EXT_STRING, &NT_errors_ext, 0, NULL, HFILL }},
1283
14
  };
1284
1285
1286
14
  static int *ett[] = {
1287
14
    &ett_dcerpc_atsvc,
1288
14
    &ett_atsvc_atsvc_DaysOfMonth,
1289
14
    &ett_atsvc_atsvc_Flags,
1290
14
    &ett_atsvc_atsvc_DaysOfWeek,
1291
14
    &ett_atsvc_atsvc_JobInfo,
1292
14
    &ett_atsvc_atsvc_JobEnumInfo,
1293
14
    &ett_atsvc_atsvc_enum_ctr,
1294
14
  };
1295
1296
14
  proto_dcerpc_atsvc = proto_register_protocol("Microsoft AT-Scheduler Service", "ATSVC", "atsvc");
1297
14
  proto_register_field_array(proto_dcerpc_atsvc, hf, array_length (hf));
1298
14
  proto_register_subtree_array(ett, array_length(ett));
1299
14
}
1300
1301
void proto_reg_handoff_dcerpc_atsvc(void)
1302
14
{
1303
14
  dcerpc_init_uuid(proto_dcerpc_atsvc, ett_dcerpc_atsvc,
1304
14
    &uuid_dcerpc_atsvc, ver_dcerpc_atsvc,
1305
14
    atsvc_dissectors, hf_atsvc_opnum);
1306
14
}