/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 | } |