epan/dissectors/pidl/samr/samr.cnf cnf_dissect_lsa_BinaryString => lsarpc_dissect_str...
[wireshark-sm.git] / epan / dissectors / packet-dcerpc-atsvc.c
blob7ef738b8ade8ff0e2055ed190c104a394bea4ab7
1 /* DO NOT EDIT
2 This file was automatically generated by Pidl
3 from atsvc.idl and atsvc.cnf.
5 Pidl is a perl based IDL compiler for DCE/RPC idl files.
6 It is maintained by the Samba team, not the Wireshark team.
7 Instructions on how to download and install Pidl can be
8 found at https://wiki.wireshark.org/Pidl
9 */
12 #include "config.h"
13 #include <string.h>
14 #include <wsutil/array.h>
15 #include <epan/packet.h>
16 #include <epan/tfs.h>
18 #include "packet-dcerpc.h"
19 #include "packet-dcerpc-nt.h"
20 #include "packet-windows-common.h"
21 #include "packet-dcerpc-atsvc.h"
22 void proto_register_dcerpc_atsvc(void);
23 void proto_reg_handoff_dcerpc_atsvc(void);
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;
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;
103 static int proto_dcerpc_atsvc;
104 /* Version information */
107 static e_guid_t uuid_dcerpc_atsvc = {
108 0x1ff70682, 0x0a51, 0x30e8,
109 { 0x07, 0x6d, 0x74, 0x0b, 0xe8, 0xce, 0xe9, 0x8b }
111 static uint16_t ver_dcerpc_atsvc = 1;
113 static const true_false_string atsvc_DaysOfMonth_First_tfs = {
114 "First is SET",
115 "First is NOT SET",
117 static const true_false_string atsvc_DaysOfMonth_Second_tfs = {
118 "Second is SET",
119 "Second is NOT SET",
121 static const true_false_string atsvc_DaysOfMonth_Third_tfs = {
122 "Third is SET",
123 "Third is NOT SET",
125 static const true_false_string atsvc_DaysOfMonth_Fourth_tfs = {
126 "Fourth is SET",
127 "Fourth is NOT SET",
129 static const true_false_string atsvc_DaysOfMonth_Fifth_tfs = {
130 "Fifth is SET",
131 "Fifth is NOT SET",
133 static const true_false_string atsvc_DaysOfMonth_Sixth_tfs = {
134 "Sixth is SET",
135 "Sixth is NOT SET",
137 static const true_false_string atsvc_DaysOfMonth_Seventh_tfs = {
138 "Seventh is SET",
139 "Seventh is NOT SET",
141 static const true_false_string atsvc_DaysOfMonth_Eight_tfs = {
142 "Eight is SET",
143 "Eight is NOT SET",
145 static const true_false_string atsvc_DaysOfMonth_Ninth_tfs = {
146 "Ninth is SET",
147 "Ninth is NOT SET",
149 static const true_false_string atsvc_DaysOfMonth_Tenth_tfs = {
150 "Tenth is SET",
151 "Tenth is NOT SET",
153 static const true_false_string atsvc_DaysOfMonth_Eleventh_tfs = {
154 "Eleventh is SET",
155 "Eleventh is NOT SET",
157 static const true_false_string atsvc_DaysOfMonth_Twelfth_tfs = {
158 "Twelfth is SET",
159 "Twelfth is NOT SET",
161 static const true_false_string atsvc_DaysOfMonth_Thitteenth_tfs = {
162 "Thitteenth is SET",
163 "Thitteenth is NOT SET",
165 static const true_false_string atsvc_DaysOfMonth_Fourteenth_tfs = {
166 "Fourteenth is SET",
167 "Fourteenth is NOT SET",
169 static const true_false_string atsvc_DaysOfMonth_Fifteenth_tfs = {
170 "Fifteenth is SET",
171 "Fifteenth is NOT SET",
173 static const true_false_string atsvc_DaysOfMonth_Sixteenth_tfs = {
174 "Sixteenth is SET",
175 "Sixteenth is NOT SET",
177 static const true_false_string atsvc_DaysOfMonth_Seventeenth_tfs = {
178 "Seventeenth is SET",
179 "Seventeenth is NOT SET",
181 static const true_false_string atsvc_DaysOfMonth_Eighteenth_tfs = {
182 "Eighteenth is SET",
183 "Eighteenth is NOT SET",
185 static const true_false_string atsvc_DaysOfMonth_Ninteenth_tfs = {
186 "Ninteenth is SET",
187 "Ninteenth is NOT SET",
189 static const true_false_string atsvc_DaysOfMonth_Twentyth_tfs = {
190 "Twentyth is SET",
191 "Twentyth is NOT SET",
193 static const true_false_string atsvc_DaysOfMonth_Twentyfirst_tfs = {
194 "Twentyfirst is SET",
195 "Twentyfirst is NOT SET",
197 static const true_false_string atsvc_DaysOfMonth_Twentysecond_tfs = {
198 "Twentysecond is SET",
199 "Twentysecond is NOT SET",
201 static const true_false_string atsvc_DaysOfMonth_Twentythird_tfs = {
202 "Twentythird is SET",
203 "Twentythird is NOT SET",
205 static const true_false_string atsvc_DaysOfMonth_Twentyfourth_tfs = {
206 "Twentyfourth is SET",
207 "Twentyfourth is NOT SET",
209 static const true_false_string atsvc_DaysOfMonth_Twentyfifth_tfs = {
210 "Twentyfifth is SET",
211 "Twentyfifth is NOT SET",
213 static const true_false_string atsvc_DaysOfMonth_Twentysixth_tfs = {
214 "Twentysixth is SET",
215 "Twentysixth is NOT SET",
217 static const true_false_string atsvc_DaysOfMonth_Twentyseventh_tfs = {
218 "Twentyseventh is SET",
219 "Twentyseventh is NOT SET",
221 static const true_false_string atsvc_DaysOfMonth_Twentyeighth_tfs = {
222 "Twentyeighth is SET",
223 "Twentyeighth is NOT SET",
225 static const true_false_string atsvc_DaysOfMonth_Twentyninth_tfs = {
226 "Twentyninth is SET",
227 "Twentyninth is NOT SET",
229 static const true_false_string atsvc_DaysOfMonth_Thirtieth_tfs = {
230 "Thirtieth is SET",
231 "Thirtieth is NOT SET",
233 static const true_false_string atsvc_DaysOfMonth_Thirtyfirst_tfs = {
234 "Thirtyfirst is SET",
235 "Thirtyfirst is NOT SET",
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",
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",
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",
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",
253 static const true_false_string atsvc_Flags_JOB_NONINTERACTIVE_tfs = {
254 "JOB_NONINTERACTIVE is SET",
255 "JOB_NONINTERACTIVE is NOT SET",
257 static const true_false_string atsvc_DaysOfWeek_DAYSOFWEEK_MONDAY_tfs = {
258 "DAYSOFWEEK_MONDAY is SET",
259 "DAYSOFWEEK_MONDAY is NOT SET",
261 static const true_false_string atsvc_DaysOfWeek_DAYSOFWEEK_TUESDAY_tfs = {
262 "DAYSOFWEEK_TUESDAY is SET",
263 "DAYSOFWEEK_TUESDAY is NOT SET",
265 static const true_false_string atsvc_DaysOfWeek_DAYSOFWEEK_WEDNESDAY_tfs = {
266 "DAYSOFWEEK_WEDNESDAY is SET",
267 "DAYSOFWEEK_WEDNESDAY is NOT SET",
269 static const true_false_string atsvc_DaysOfWeek_DAYSOFWEEK_THURSDAY_tfs = {
270 "DAYSOFWEEK_THURSDAY is SET",
271 "DAYSOFWEEK_THURSDAY is NOT SET",
273 static const true_false_string atsvc_DaysOfWeek_DAYSOFWEEK_FRIDAY_tfs = {
274 "DAYSOFWEEK_FRIDAY is SET",
275 "DAYSOFWEEK_FRIDAY is NOT SET",
277 static const true_false_string atsvc_DaysOfWeek_DAYSOFWEEK_SATURDAY_tfs = {
278 "DAYSOFWEEK_SATURDAY is SET",
279 "DAYSOFWEEK_SATURDAY is NOT SET",
281 static const true_false_string atsvc_DaysOfWeek_DAYSOFWEEK_SUNDAY_tfs = {
282 "DAYSOFWEEK_SUNDAY is SET",
283 "DAYSOFWEEK_SUNDAY is NOT SET",
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_);
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: } */
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_)
366 proto_item *item;
367 static int * const atsvc_atsvc_DaysOfMonth_fields[] = {
368 &hf_atsvc_atsvc_DaysOfMonth_First,
369 &hf_atsvc_atsvc_DaysOfMonth_Second,
370 &hf_atsvc_atsvc_DaysOfMonth_Third,
371 &hf_atsvc_atsvc_DaysOfMonth_Fourth,
372 &hf_atsvc_atsvc_DaysOfMonth_Fifth,
373 &hf_atsvc_atsvc_DaysOfMonth_Sixth,
374 &hf_atsvc_atsvc_DaysOfMonth_Seventh,
375 &hf_atsvc_atsvc_DaysOfMonth_Eight,
376 &hf_atsvc_atsvc_DaysOfMonth_Ninth,
377 &hf_atsvc_atsvc_DaysOfMonth_Tenth,
378 &hf_atsvc_atsvc_DaysOfMonth_Eleventh,
379 &hf_atsvc_atsvc_DaysOfMonth_Twelfth,
380 &hf_atsvc_atsvc_DaysOfMonth_Thitteenth,
381 &hf_atsvc_atsvc_DaysOfMonth_Fourteenth,
382 &hf_atsvc_atsvc_DaysOfMonth_Fifteenth,
383 &hf_atsvc_atsvc_DaysOfMonth_Sixteenth,
384 &hf_atsvc_atsvc_DaysOfMonth_Seventeenth,
385 &hf_atsvc_atsvc_DaysOfMonth_Eighteenth,
386 &hf_atsvc_atsvc_DaysOfMonth_Ninteenth,
387 &hf_atsvc_atsvc_DaysOfMonth_Twentyth,
388 &hf_atsvc_atsvc_DaysOfMonth_Twentyfirst,
389 &hf_atsvc_atsvc_DaysOfMonth_Twentysecond,
390 &hf_atsvc_atsvc_DaysOfMonth_Twentythird,
391 &hf_atsvc_atsvc_DaysOfMonth_Twentyfourth,
392 &hf_atsvc_atsvc_DaysOfMonth_Twentyfifth,
393 &hf_atsvc_atsvc_DaysOfMonth_Twentysixth,
394 &hf_atsvc_atsvc_DaysOfMonth_Twentyseventh,
395 &hf_atsvc_atsvc_DaysOfMonth_Twentyeighth,
396 &hf_atsvc_atsvc_DaysOfMonth_Twentyninth,
397 &hf_atsvc_atsvc_DaysOfMonth_Thirtieth,
398 &hf_atsvc_atsvc_DaysOfMonth_Thirtyfirst,
399 NULL
401 uint32_t flags;
402 ALIGN_TO_4_BYTES;
404 item = proto_tree_add_bitmask_with_flags(parent_tree, tvb, offset, hf_index,
405 ett_atsvc_atsvc_DaysOfMonth, atsvc_atsvc_DaysOfMonth_fields, DREP_ENC_INTEGER(drep), BMT_NO_FALSE);
407 offset = dissect_ndr_uint32(tvb, offset, pinfo, parent_tree, di, drep, -1, &flags);
409 if (!flags)
410 proto_item_append_text(item, ": (No values set)");
412 if (flags & (~0x7fffffff)) {
413 flags &= (~0x7fffffff);
414 proto_item_append_text(item, "Unknown bitmap value 0x%x", flags);
417 return offset;
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: } */
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_)
432 proto_item *item;
433 static int * const atsvc_atsvc_Flags_fields[] = {
434 &hf_atsvc_atsvc_Flags_JOB_RUN_PERIODICALLY,
435 &hf_atsvc_atsvc_Flags_JOB_EXEC_ERROR,
436 &hf_atsvc_atsvc_Flags_JOB_RUNS_TODAY,
437 &hf_atsvc_atsvc_Flags_JOB_ADD_CURRENT_DATE,
438 &hf_atsvc_atsvc_Flags_JOB_NONINTERACTIVE,
439 NULL
441 uint8_t flags;
443 item = proto_tree_add_bitmask_with_flags(parent_tree, tvb, offset, hf_index,
444 ett_atsvc_atsvc_Flags, atsvc_atsvc_Flags_fields, DREP_ENC_INTEGER(drep), BMT_NO_FALSE);
446 offset = dissect_ndr_uint8(tvb, offset, pinfo, parent_tree, di, drep, -1, &flags);
448 if (!flags)
449 proto_item_append_text(item, ": (No values set)");
451 if (flags & (~0x0000001f)) {
452 flags &= (~0x0000001f);
453 proto_item_append_text(item, "Unknown bitmap value 0x%x", flags);
456 return offset;
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: } */
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_)
473 proto_item *item;
474 static int * const atsvc_atsvc_DaysOfWeek_fields[] = {
475 &hf_atsvc_atsvc_DaysOfWeek_DAYSOFWEEK_MONDAY,
476 &hf_atsvc_atsvc_DaysOfWeek_DAYSOFWEEK_TUESDAY,
477 &hf_atsvc_atsvc_DaysOfWeek_DAYSOFWEEK_WEDNESDAY,
478 &hf_atsvc_atsvc_DaysOfWeek_DAYSOFWEEK_THURSDAY,
479 &hf_atsvc_atsvc_DaysOfWeek_DAYSOFWEEK_FRIDAY,
480 &hf_atsvc_atsvc_DaysOfWeek_DAYSOFWEEK_SATURDAY,
481 &hf_atsvc_atsvc_DaysOfWeek_DAYSOFWEEK_SUNDAY,
482 NULL
484 uint8_t flags;
486 item = proto_tree_add_bitmask_with_flags(parent_tree, tvb, offset, hf_index,
487 ett_atsvc_atsvc_DaysOfWeek, atsvc_atsvc_DaysOfWeek_fields, DREP_ENC_INTEGER(drep), BMT_NO_FALSE);
489 offset = dissect_ndr_uint8(tvb, offset, pinfo, parent_tree, di, drep, -1, &flags);
491 if (!flags)
492 proto_item_append_text(item, ": (No values set)");
494 if (flags & (~0x0000007f)) {
495 flags &= (~0x0000007f);
496 proto_item_append_text(item, "Unknown bitmap value 0x%x", flags);
499 return offset;
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: } */
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_)
514 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_atsvc_atsvc_JobInfo_job_time, 0);
516 return offset;
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_)
522 offset = atsvc_dissect_bitmap_DaysOfMonth(tvb, offset, pinfo, tree, di, drep, hf_atsvc_atsvc_JobInfo_days_of_month, 0);
524 return offset;
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_)
530 offset = atsvc_dissect_bitmap_DaysOfWeek(tvb, offset, pinfo, tree, di, drep, hf_atsvc_atsvc_JobInfo_days_of_week, 0);
532 return offset;
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_)
538 offset = atsvc_dissect_bitmap_Flags(tvb, offset, pinfo, tree, di, drep, hf_atsvc_atsvc_JobInfo_flags, 0);
540 return offset;
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_)
546 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);
548 return offset;
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_)
554 char *data;
556 offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(uint16_t), hf_atsvc_atsvc_JobInfo_command, false, &data);
557 proto_item_append_text(tree, ": %s", data);
559 return offset;
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_)
565 proto_item *item = NULL;
566 proto_tree *tree = NULL;
567 int old_offset;
569 ALIGN_TO_5_BYTES;
571 old_offset = offset;
573 if (parent_tree) {
574 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
575 tree = proto_item_add_subtree(item, ett_atsvc_atsvc_JobInfo);
578 offset = atsvc_dissect_element_JobInfo_job_time(tvb, offset, pinfo, tree, di, drep);
580 offset = atsvc_dissect_element_JobInfo_days_of_month(tvb, offset, pinfo, tree, di, drep);
582 offset = atsvc_dissect_element_JobInfo_days_of_week(tvb, offset, pinfo, tree, di, drep);
584 offset = atsvc_dissect_element_JobInfo_flags(tvb, offset, pinfo, tree, di, drep);
586 offset = atsvc_dissect_element_JobInfo_command(tvb, offset, pinfo, tree, di, drep);
589 proto_item_set_len(item, offset-old_offset);
592 if (di->call_data->flags & DCERPC_IS_NDR64) {
593 ALIGN_TO_5_BYTES;
596 return offset;
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: } */
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_)
612 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_atsvc_job_id, 0);
614 return offset;
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_)
620 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_atsvc_atsvc_JobEnumInfo_job_time, 0);
622 return offset;
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_)
628 offset = atsvc_dissect_bitmap_DaysOfMonth(tvb, offset, pinfo, tree, di, drep, hf_atsvc_atsvc_JobEnumInfo_days_of_month, 0);
630 return offset;
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_)
636 offset = atsvc_dissect_bitmap_DaysOfWeek(tvb, offset, pinfo, tree, di, drep, hf_atsvc_atsvc_JobEnumInfo_days_of_week, 0);
638 return offset;
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_)
644 offset = atsvc_dissect_bitmap_Flags(tvb, offset, pinfo, tree, di, drep, hf_atsvc_atsvc_JobEnumInfo_flags, 0);
646 return offset;
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_)
652 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);
654 return offset;
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_)
660 char *data;
662 offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(uint16_t), hf_atsvc_atsvc_JobEnumInfo_command, false, &data);
663 proto_item_append_text(tree, ": %s", data);
665 return offset;
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_)
671 proto_item *item = NULL;
672 proto_tree *tree = NULL;
673 int old_offset;
675 ALIGN_TO_5_BYTES;
677 old_offset = offset;
679 if (parent_tree) {
680 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
681 tree = proto_item_add_subtree(item, ett_atsvc_atsvc_JobEnumInfo);
684 offset = atsvc_dissect_element_JobEnumInfo_job_id(tvb, offset, pinfo, tree, di, drep);
686 offset = atsvc_dissect_element_JobEnumInfo_job_time(tvb, offset, pinfo, tree, di, drep);
688 offset = atsvc_dissect_element_JobEnumInfo_days_of_month(tvb, offset, pinfo, tree, di, drep);
690 offset = atsvc_dissect_element_JobEnumInfo_days_of_week(tvb, offset, pinfo, tree, di, drep);
692 offset = atsvc_dissect_element_JobEnumInfo_flags(tvb, offset, pinfo, tree, di, drep);
694 offset = atsvc_dissect_element_JobEnumInfo_command(tvb, offset, pinfo, tree, di, drep);
697 proto_item_set_len(item, offset-old_offset);
700 if (di->call_data->flags & DCERPC_IS_NDR64) {
701 ALIGN_TO_5_BYTES;
704 return offset;
708 /* IDL: struct { */
709 /* IDL: uint32 entries_read; */
710 /* IDL: [size_is(entries_read)] [unique(1)] atsvc_JobEnumInfo *first_entry; */
711 /* IDL: } */
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_)
716 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_atsvc_atsvc_enum_ctr_entries_read, 0);
718 return offset;
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_)
724 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);
726 return offset;
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_)
732 offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, atsvc_dissect_element_enum_ctr_first_entry__);
734 return offset;
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_)
740 offset = atsvc_dissect_struct_JobEnumInfo(tvb,offset,pinfo,tree,di,drep,hf_atsvc_atsvc_enum_ctr_first_entry,0);
742 return offset;
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_)
748 proto_item *item = NULL;
749 proto_tree *tree = NULL;
750 int old_offset;
752 ALIGN_TO_5_BYTES;
754 old_offset = offset;
756 if (parent_tree) {
757 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
758 tree = proto_item_add_subtree(item, ett_atsvc_atsvc_enum_ctr);
761 offset = atsvc_dissect_element_enum_ctr_entries_read(tvb, offset, pinfo, tree, di, drep);
763 offset = atsvc_dissect_element_enum_ctr_first_entry(tvb, offset, pinfo, tree, di, drep);
766 proto_item_set_len(item, offset-old_offset);
769 if (di->call_data->flags & DCERPC_IS_NDR64) {
770 ALIGN_TO_5_BYTES;
773 return offset;
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_)
779 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);
781 return offset;
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_)
787 char *data;
789 offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(uint16_t), hf_atsvc_servername, false, &data);
790 proto_item_append_text(tree, ": %s", data);
792 return offset;
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_)
798 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);
800 return offset;
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_)
806 offset = atsvc_dissect_struct_JobInfo(tvb,offset,pinfo,tree,di,drep,hf_atsvc_job_info,0);
808 return offset;
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_)
814 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);
816 return offset;
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_)
822 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_atsvc_job_id, 0);
824 return offset;
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: ); */
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_)
836 uint32_t status;
838 di->dcerpc_procedure_name="JobAdd";
839 offset = atsvc_dissect_element_JobAdd_job_id(tvb, offset, pinfo, tree, di, drep);
840 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
842 offset = dissect_ntstatus(tvb, offset, pinfo, tree, di, drep, hf_atsvc_status, &status);
844 if (status != 0)
845 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(status, &NT_errors_ext, "Unknown NT status 0x%08x"));
847 return offset;
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_)
853 di->dcerpc_procedure_name="JobAdd";
854 offset = atsvc_dissect_element_JobAdd_servername(tvb, offset, pinfo, tree, di, drep);
855 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
856 offset = atsvc_dissect_element_JobAdd_job_info(tvb, offset, pinfo, tree, di, drep);
857 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
858 return offset;
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_)
864 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);
866 return offset;
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_)
872 char *data;
874 offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(uint16_t), hf_atsvc_servername, false, &data);
875 proto_item_append_text(tree, ": %s", data);
877 return offset;
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_)
883 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_atsvc_atsvc_JobDel_min_job_id, 0);
885 return offset;
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_)
891 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_atsvc_atsvc_JobDel_max_job_id, 0);
893 return offset;
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: ); */
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_)
905 uint32_t status;
907 di->dcerpc_procedure_name="JobDel";
908 offset = dissect_ntstatus(tvb, offset, pinfo, tree, di, drep, hf_atsvc_status, &status);
910 if (status != 0)
911 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(status, &NT_errors_ext, "Unknown NT status 0x%08x"));
913 return offset;
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_)
919 di->dcerpc_procedure_name="JobDel";
920 offset = atsvc_dissect_element_JobDel_servername(tvb, offset, pinfo, tree, di, drep);
921 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
922 offset = atsvc_dissect_element_JobDel_min_job_id(tvb, offset, pinfo, tree, di, drep);
923 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
924 offset = atsvc_dissect_element_JobDel_max_job_id(tvb, offset, pinfo, tree, di, drep);
925 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
926 return offset;
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_)
932 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);
934 return offset;
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_)
940 char *data;
942 offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(uint16_t), hf_atsvc_servername, false, &data);
943 proto_item_append_text(tree, ": %s", data);
945 return offset;
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_)
951 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);
953 return offset;
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_)
959 offset = atsvc_dissect_struct_enum_ctr(tvb,offset,pinfo,tree,di,drep,hf_atsvc_atsvc_JobEnum_ctr,0);
961 return offset;
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_)
967 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_atsvc_atsvc_JobEnum_preferred_max_len, 0);
969 return offset;
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_)
975 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);
977 return offset;
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_)
983 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_atsvc_atsvc_JobEnum_total_entries, 0);
985 return offset;
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_)
991 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);
993 return offset;
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_)
999 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_atsvc_atsvc_JobEnum_resume_handle, 0);
1001 return offset;
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: ); */
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_)
1015 uint32_t status;
1017 di->dcerpc_procedure_name="JobEnum";
1018 offset = atsvc_dissect_element_JobEnum_ctr(tvb, offset, pinfo, tree, di, drep);
1019 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
1021 offset = atsvc_dissect_element_JobEnum_total_entries(tvb, offset, pinfo, tree, di, drep);
1022 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
1024 offset = atsvc_dissect_element_JobEnum_resume_handle(tvb, offset, pinfo, tree, di, drep);
1025 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
1027 offset = dissect_ntstatus(tvb, offset, pinfo, tree, di, drep, hf_atsvc_status, &status);
1029 if (status != 0)
1030 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(status, &NT_errors_ext, "Unknown NT status 0x%08x"));
1032 return offset;
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_)
1038 di->dcerpc_procedure_name="JobEnum";
1039 offset = atsvc_dissect_element_JobEnum_servername(tvb, offset, pinfo, tree, di, drep);
1040 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
1041 offset = atsvc_dissect_element_JobEnum_ctr(tvb, offset, pinfo, tree, di, drep);
1042 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
1043 offset = atsvc_dissect_element_JobEnum_preferred_max_len(tvb, offset, pinfo, tree, di, drep);
1044 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
1045 offset = atsvc_dissect_element_JobEnum_resume_handle(tvb, offset, pinfo, tree, di, drep);
1046 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
1047 return offset;
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_)
1053 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);
1055 return offset;
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_)
1061 char *data;
1063 offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(uint16_t), hf_atsvc_servername, false, &data);
1064 proto_item_append_text(tree, ": %s", data);
1066 return offset;
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_)
1072 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_atsvc_job_id, 0);
1074 return offset;
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_)
1080 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);
1082 return offset;
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_)
1088 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);
1090 return offset;
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_)
1096 offset = atsvc_dissect_struct_JobInfo(tvb,offset,pinfo,tree,di,drep,hf_atsvc_job_info,0);
1098 return offset;
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: ); */
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_)
1110 uint32_t status;
1112 di->dcerpc_procedure_name="JobGetInfo";
1113 offset = atsvc_dissect_element_JobGetInfo_job_info(tvb, offset, pinfo, tree, di, drep);
1114 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
1116 offset = dissect_ntstatus(tvb, offset, pinfo, tree, di, drep, hf_atsvc_status, &status);
1118 if (status != 0)
1119 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(status, &NT_errors_ext, "Unknown NT status 0x%08x"));
1121 return offset;
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_)
1127 di->dcerpc_procedure_name="JobGetInfo";
1128 offset = atsvc_dissect_element_JobGetInfo_servername(tvb, offset, pinfo, tree, di, drep);
1129 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
1130 offset = atsvc_dissect_element_JobGetInfo_job_id(tvb, offset, pinfo, tree, di, drep);
1131 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
1132 return offset;
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 }
1148 void proto_register_dcerpc_atsvc(void)
1150 static hf_register_info hf[] = {
1151 { &hf_atsvc_atsvc_DaysOfMonth_Eight,
1152 { "Eight", "atsvc.atsvc_DaysOfMonth.Eight", FT_BOOLEAN, 32, TFS(&atsvc_DaysOfMonth_Eight_tfs), ( 0x00000080 ), NULL, HFILL }},
1153 { &hf_atsvc_atsvc_DaysOfMonth_Eighteenth,
1154 { "Eighteenth", "atsvc.atsvc_DaysOfMonth.Eighteenth", FT_BOOLEAN, 32, TFS(&atsvc_DaysOfMonth_Eighteenth_tfs), ( 0x00020000 ), NULL, HFILL }},
1155 { &hf_atsvc_atsvc_DaysOfMonth_Eleventh,
1156 { "Eleventh", "atsvc.atsvc_DaysOfMonth.Eleventh", FT_BOOLEAN, 32, TFS(&atsvc_DaysOfMonth_Eleventh_tfs), ( 0x00000400 ), NULL, HFILL }},
1157 { &hf_atsvc_atsvc_DaysOfMonth_Fifteenth,
1158 { "Fifteenth", "atsvc.atsvc_DaysOfMonth.Fifteenth", FT_BOOLEAN, 32, TFS(&atsvc_DaysOfMonth_Fifteenth_tfs), ( 0x00004000 ), NULL, HFILL }},
1159 { &hf_atsvc_atsvc_DaysOfMonth_Fifth,
1160 { "Fifth", "atsvc.atsvc_DaysOfMonth.Fifth", FT_BOOLEAN, 32, TFS(&atsvc_DaysOfMonth_Fifth_tfs), ( 0x00000010 ), NULL, HFILL }},
1161 { &hf_atsvc_atsvc_DaysOfMonth_First,
1162 { "First", "atsvc.atsvc_DaysOfMonth.First", FT_BOOLEAN, 32, TFS(&atsvc_DaysOfMonth_First_tfs), ( 0x00000001 ), NULL, HFILL }},
1163 { &hf_atsvc_atsvc_DaysOfMonth_Fourteenth,
1164 { "Fourteenth", "atsvc.atsvc_DaysOfMonth.Fourteenth", FT_BOOLEAN, 32, TFS(&atsvc_DaysOfMonth_Fourteenth_tfs), ( 0x00002000 ), NULL, HFILL }},
1165 { &hf_atsvc_atsvc_DaysOfMonth_Fourth,
1166 { "Fourth", "atsvc.atsvc_DaysOfMonth.Fourth", FT_BOOLEAN, 32, TFS(&atsvc_DaysOfMonth_Fourth_tfs), ( 0x00000008 ), NULL, HFILL }},
1167 { &hf_atsvc_atsvc_DaysOfMonth_Ninteenth,
1168 { "Ninteenth", "atsvc.atsvc_DaysOfMonth.Ninteenth", FT_BOOLEAN, 32, TFS(&atsvc_DaysOfMonth_Ninteenth_tfs), ( 0x00040000 ), NULL, HFILL }},
1169 { &hf_atsvc_atsvc_DaysOfMonth_Ninth,
1170 { "Ninth", "atsvc.atsvc_DaysOfMonth.Ninth", FT_BOOLEAN, 32, TFS(&atsvc_DaysOfMonth_Ninth_tfs), ( 0x00000100 ), NULL, HFILL }},
1171 { &hf_atsvc_atsvc_DaysOfMonth_Second,
1172 { "Second", "atsvc.atsvc_DaysOfMonth.Second", FT_BOOLEAN, 32, TFS(&atsvc_DaysOfMonth_Second_tfs), ( 0x00000002 ), NULL, HFILL }},
1173 { &hf_atsvc_atsvc_DaysOfMonth_Seventeenth,
1174 { "Seventeenth", "atsvc.atsvc_DaysOfMonth.Seventeenth", FT_BOOLEAN, 32, TFS(&atsvc_DaysOfMonth_Seventeenth_tfs), ( 0x00010000 ), NULL, HFILL }},
1175 { &hf_atsvc_atsvc_DaysOfMonth_Seventh,
1176 { "Seventh", "atsvc.atsvc_DaysOfMonth.Seventh", FT_BOOLEAN, 32, TFS(&atsvc_DaysOfMonth_Seventh_tfs), ( 0x00000040 ), NULL, HFILL }},
1177 { &hf_atsvc_atsvc_DaysOfMonth_Sixteenth,
1178 { "Sixteenth", "atsvc.atsvc_DaysOfMonth.Sixteenth", FT_BOOLEAN, 32, TFS(&atsvc_DaysOfMonth_Sixteenth_tfs), ( 0x00008000 ), NULL, HFILL }},
1179 { &hf_atsvc_atsvc_DaysOfMonth_Sixth,
1180 { "Sixth", "atsvc.atsvc_DaysOfMonth.Sixth", FT_BOOLEAN, 32, TFS(&atsvc_DaysOfMonth_Sixth_tfs), ( 0x00000020 ), NULL, HFILL }},
1181 { &hf_atsvc_atsvc_DaysOfMonth_Tenth,
1182 { "Tenth", "atsvc.atsvc_DaysOfMonth.Tenth", FT_BOOLEAN, 32, TFS(&atsvc_DaysOfMonth_Tenth_tfs), ( 0x00000200 ), NULL, HFILL }},
1183 { &hf_atsvc_atsvc_DaysOfMonth_Third,
1184 { "Third", "atsvc.atsvc_DaysOfMonth.Third", FT_BOOLEAN, 32, TFS(&atsvc_DaysOfMonth_Third_tfs), ( 0x00000004 ), NULL, HFILL }},
1185 { &hf_atsvc_atsvc_DaysOfMonth_Thirtieth,
1186 { "Thirtieth", "atsvc.atsvc_DaysOfMonth.Thirtieth", FT_BOOLEAN, 32, TFS(&atsvc_DaysOfMonth_Thirtieth_tfs), ( 0x20000000 ), NULL, HFILL }},
1187 { &hf_atsvc_atsvc_DaysOfMonth_Thirtyfirst,
1188 { "Thirtyfirst", "atsvc.atsvc_DaysOfMonth.Thirtyfirst", FT_BOOLEAN, 32, TFS(&atsvc_DaysOfMonth_Thirtyfirst_tfs), ( 0x40000000 ), NULL, HFILL }},
1189 { &hf_atsvc_atsvc_DaysOfMonth_Thitteenth,
1190 { "Thitteenth", "atsvc.atsvc_DaysOfMonth.Thitteenth", FT_BOOLEAN, 32, TFS(&atsvc_DaysOfMonth_Thitteenth_tfs), ( 0x00001000 ), NULL, HFILL }},
1191 { &hf_atsvc_atsvc_DaysOfMonth_Twelfth,
1192 { "Twelfth", "atsvc.atsvc_DaysOfMonth.Twelfth", FT_BOOLEAN, 32, TFS(&atsvc_DaysOfMonth_Twelfth_tfs), ( 0x00000800 ), NULL, HFILL }},
1193 { &hf_atsvc_atsvc_DaysOfMonth_Twentyeighth,
1194 { "Twentyeighth", "atsvc.atsvc_DaysOfMonth.Twentyeighth", FT_BOOLEAN, 32, TFS(&atsvc_DaysOfMonth_Twentyeighth_tfs), ( 0x08000000 ), NULL, HFILL }},
1195 { &hf_atsvc_atsvc_DaysOfMonth_Twentyfifth,
1196 { "Twentyfifth", "atsvc.atsvc_DaysOfMonth.Twentyfifth", FT_BOOLEAN, 32, TFS(&atsvc_DaysOfMonth_Twentyfifth_tfs), ( 0x01000000 ), NULL, HFILL }},
1197 { &hf_atsvc_atsvc_DaysOfMonth_Twentyfirst,
1198 { "Twentyfirst", "atsvc.atsvc_DaysOfMonth.Twentyfirst", FT_BOOLEAN, 32, TFS(&atsvc_DaysOfMonth_Twentyfirst_tfs), ( 0x00100000 ), NULL, HFILL }},
1199 { &hf_atsvc_atsvc_DaysOfMonth_Twentyfourth,
1200 { "Twentyfourth", "atsvc.atsvc_DaysOfMonth.Twentyfourth", FT_BOOLEAN, 32, TFS(&atsvc_DaysOfMonth_Twentyfourth_tfs), ( 0x00800000 ), NULL, HFILL }},
1201 { &hf_atsvc_atsvc_DaysOfMonth_Twentyninth,
1202 { "Twentyninth", "atsvc.atsvc_DaysOfMonth.Twentyninth", FT_BOOLEAN, 32, TFS(&atsvc_DaysOfMonth_Twentyninth_tfs), ( 0x10000000 ), NULL, HFILL }},
1203 { &hf_atsvc_atsvc_DaysOfMonth_Twentysecond,
1204 { "Twentysecond", "atsvc.atsvc_DaysOfMonth.Twentysecond", FT_BOOLEAN, 32, TFS(&atsvc_DaysOfMonth_Twentysecond_tfs), ( 0x00200000 ), NULL, HFILL }},
1205 { &hf_atsvc_atsvc_DaysOfMonth_Twentyseventh,
1206 { "Twentyseventh", "atsvc.atsvc_DaysOfMonth.Twentyseventh", FT_BOOLEAN, 32, TFS(&atsvc_DaysOfMonth_Twentyseventh_tfs), ( 0x04000000 ), NULL, HFILL }},
1207 { &hf_atsvc_atsvc_DaysOfMonth_Twentysixth,
1208 { "Twentysixth", "atsvc.atsvc_DaysOfMonth.Twentysixth", FT_BOOLEAN, 32, TFS(&atsvc_DaysOfMonth_Twentysixth_tfs), ( 0x02000000 ), NULL, HFILL }},
1209 { &hf_atsvc_atsvc_DaysOfMonth_Twentyth,
1210 { "Twentyth", "atsvc.atsvc_DaysOfMonth.Twentyth", FT_BOOLEAN, 32, TFS(&atsvc_DaysOfMonth_Twentyth_tfs), ( 0x00080000 ), NULL, HFILL }},
1211 { &hf_atsvc_atsvc_DaysOfMonth_Twentythird,
1212 { "Twentythird", "atsvc.atsvc_DaysOfMonth.Twentythird", FT_BOOLEAN, 32, TFS(&atsvc_DaysOfMonth_Twentythird_tfs), ( 0x00400000 ), NULL, HFILL }},
1213 { &hf_atsvc_atsvc_DaysOfWeek_DAYSOFWEEK_FRIDAY,
1214 { "DAYSOFWEEK FRIDAY", "atsvc.atsvc_DaysOfWeek.DAYSOFWEEK_FRIDAY", FT_BOOLEAN, 8, TFS(&atsvc_DaysOfWeek_DAYSOFWEEK_FRIDAY_tfs), ( 0x10 ), NULL, HFILL }},
1215 { &hf_atsvc_atsvc_DaysOfWeek_DAYSOFWEEK_MONDAY,
1216 { "DAYSOFWEEK MONDAY", "atsvc.atsvc_DaysOfWeek.DAYSOFWEEK_MONDAY", FT_BOOLEAN, 8, TFS(&atsvc_DaysOfWeek_DAYSOFWEEK_MONDAY_tfs), ( 0x01 ), NULL, HFILL }},
1217 { &hf_atsvc_atsvc_DaysOfWeek_DAYSOFWEEK_SATURDAY,
1218 { "DAYSOFWEEK SATURDAY", "atsvc.atsvc_DaysOfWeek.DAYSOFWEEK_SATURDAY", FT_BOOLEAN, 8, TFS(&atsvc_DaysOfWeek_DAYSOFWEEK_SATURDAY_tfs), ( 0x20 ), NULL, HFILL }},
1219 { &hf_atsvc_atsvc_DaysOfWeek_DAYSOFWEEK_SUNDAY,
1220 { "DAYSOFWEEK SUNDAY", "atsvc.atsvc_DaysOfWeek.DAYSOFWEEK_SUNDAY", FT_BOOLEAN, 8, TFS(&atsvc_DaysOfWeek_DAYSOFWEEK_SUNDAY_tfs), ( 0x40 ), NULL, HFILL }},
1221 { &hf_atsvc_atsvc_DaysOfWeek_DAYSOFWEEK_THURSDAY,
1222 { "DAYSOFWEEK THURSDAY", "atsvc.atsvc_DaysOfWeek.DAYSOFWEEK_THURSDAY", FT_BOOLEAN, 8, TFS(&atsvc_DaysOfWeek_DAYSOFWEEK_THURSDAY_tfs), ( 0x08 ), NULL, HFILL }},
1223 { &hf_atsvc_atsvc_DaysOfWeek_DAYSOFWEEK_TUESDAY,
1224 { "DAYSOFWEEK TUESDAY", "atsvc.atsvc_DaysOfWeek.DAYSOFWEEK_TUESDAY", FT_BOOLEAN, 8, TFS(&atsvc_DaysOfWeek_DAYSOFWEEK_TUESDAY_tfs), ( 0x02 ), NULL, HFILL }},
1225 { &hf_atsvc_atsvc_DaysOfWeek_DAYSOFWEEK_WEDNESDAY,
1226 { "DAYSOFWEEK WEDNESDAY", "atsvc.atsvc_DaysOfWeek.DAYSOFWEEK_WEDNESDAY", FT_BOOLEAN, 8, TFS(&atsvc_DaysOfWeek_DAYSOFWEEK_WEDNESDAY_tfs), ( 0x04 ), NULL, HFILL }},
1227 { &hf_atsvc_atsvc_Flags_JOB_ADD_CURRENT_DATE,
1228 { "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 { &hf_atsvc_atsvc_Flags_JOB_EXEC_ERROR,
1230 { "JOB EXEC ERROR", "atsvc.atsvc_Flags.JOB_EXEC_ERROR", FT_BOOLEAN, 8, TFS(&atsvc_Flags_JOB_EXEC_ERROR_tfs), ( 0x02 ), NULL, HFILL }},
1231 { &hf_atsvc_atsvc_Flags_JOB_NONINTERACTIVE,
1232 { "JOB NONINTERACTIVE", "atsvc.atsvc_Flags.JOB_NONINTERACTIVE", FT_BOOLEAN, 8, TFS(&atsvc_Flags_JOB_NONINTERACTIVE_tfs), ( 0x10 ), NULL, HFILL }},
1233 { &hf_atsvc_atsvc_Flags_JOB_RUNS_TODAY,
1234 { "JOB RUNS TODAY", "atsvc.atsvc_Flags.JOB_RUNS_TODAY", FT_BOOLEAN, 8, TFS(&atsvc_Flags_JOB_RUNS_TODAY_tfs), ( 0x04 ), NULL, HFILL }},
1235 { &hf_atsvc_atsvc_Flags_JOB_RUN_PERIODICALLY,
1236 { "JOB RUN PERIODICALLY", "atsvc.atsvc_Flags.JOB_RUN_PERIODICALLY", FT_BOOLEAN, 8, TFS(&atsvc_Flags_JOB_RUN_PERIODICALLY_tfs), ( 0x01 ), NULL, HFILL }},
1237 { &hf_atsvc_atsvc_JobDel_max_job_id,
1238 { "Max Job Id", "atsvc.atsvc_JobDel.max_job_id", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
1239 { &hf_atsvc_atsvc_JobDel_min_job_id,
1240 { "Min Job Id", "atsvc.atsvc_JobDel.min_job_id", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
1241 { &hf_atsvc_atsvc_JobEnumInfo_command,
1242 { "Command", "atsvc.atsvc_JobEnumInfo.command", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
1243 { &hf_atsvc_atsvc_JobEnumInfo_days_of_month,
1244 { "Days Of Month", "atsvc.atsvc_JobEnumInfo.days_of_month", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
1245 { &hf_atsvc_atsvc_JobEnumInfo_days_of_week,
1246 { "Days Of Week", "atsvc.atsvc_JobEnumInfo.days_of_week", FT_UINT8, BASE_HEX, NULL, 0, NULL, HFILL }},
1247 { &hf_atsvc_atsvc_JobEnumInfo_flags,
1248 { "Flags", "atsvc.atsvc_JobEnumInfo.flags", FT_UINT8, BASE_HEX, NULL, 0, NULL, HFILL }},
1249 { &hf_atsvc_atsvc_JobEnumInfo_job_time,
1250 { "Job Time", "atsvc.atsvc_JobEnumInfo.job_time", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
1251 { &hf_atsvc_atsvc_JobEnum_ctr,
1252 { "Ctr", "atsvc.atsvc_JobEnum.ctr", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
1253 { &hf_atsvc_atsvc_JobEnum_preferred_max_len,
1254 { "Preferred Max Len", "atsvc.atsvc_JobEnum.preferred_max_len", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
1255 { &hf_atsvc_atsvc_JobEnum_resume_handle,
1256 { "Resume Handle", "atsvc.atsvc_JobEnum.resume_handle", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
1257 { &hf_atsvc_atsvc_JobEnum_total_entries,
1258 { "Total Entries", "atsvc.atsvc_JobEnum.total_entries", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
1259 { &hf_atsvc_atsvc_JobInfo_command,
1260 { "Command", "atsvc.atsvc_JobInfo.command", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
1261 { &hf_atsvc_atsvc_JobInfo_days_of_month,
1262 { "Days Of Month", "atsvc.atsvc_JobInfo.days_of_month", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
1263 { &hf_atsvc_atsvc_JobInfo_days_of_week,
1264 { "Days Of Week", "atsvc.atsvc_JobInfo.days_of_week", FT_UINT8, BASE_HEX, NULL, 0, NULL, HFILL }},
1265 { &hf_atsvc_atsvc_JobInfo_flags,
1266 { "Flags", "atsvc.atsvc_JobInfo.flags", FT_UINT8, BASE_HEX, NULL, 0, NULL, HFILL }},
1267 { &hf_atsvc_atsvc_JobInfo_job_time,
1268 { "Job Time", "atsvc.atsvc_JobInfo.job_time", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
1269 { &hf_atsvc_atsvc_enum_ctr_entries_read,
1270 { "Entries Read", "atsvc.atsvc_enum_ctr.entries_read", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
1271 { &hf_atsvc_atsvc_enum_ctr_first_entry,
1272 { "First Entry", "atsvc.atsvc_enum_ctr.first_entry", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
1273 { &hf_atsvc_job_id,
1274 { "Job Id", "atsvc.job_id", FT_UINT32, BASE_DEC, NULL, 0, "Identifier of the scheduled job", HFILL }},
1275 { &hf_atsvc_job_info,
1276 { "JobInfo", "atcvs.job_info", FT_NONE, BASE_NONE, NULL, 0, "JobInfo structure", HFILL }},
1277 { &hf_atsvc_opnum,
1278 { "Operation", "atsvc.opnum", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
1279 { &hf_atsvc_servername,
1280 { "Server", "atsvc.server", FT_STRING, BASE_NONE, NULL, 0, "Name of the server", HFILL }},
1281 { &hf_atsvc_status,
1282 { "NT Error", "atsvc.status", FT_UINT32, BASE_HEX|BASE_EXT_STRING, &NT_errors_ext, 0, NULL, HFILL }},
1286 static int *ett[] = {
1287 &ett_dcerpc_atsvc,
1288 &ett_atsvc_atsvc_DaysOfMonth,
1289 &ett_atsvc_atsvc_Flags,
1290 &ett_atsvc_atsvc_DaysOfWeek,
1291 &ett_atsvc_atsvc_JobInfo,
1292 &ett_atsvc_atsvc_JobEnumInfo,
1293 &ett_atsvc_atsvc_enum_ctr,
1296 proto_dcerpc_atsvc = proto_register_protocol("Microsoft AT-Scheduler Service", "ATSVC", "atsvc");
1297 proto_register_field_array(proto_dcerpc_atsvc, hf, array_length (hf));
1298 proto_register_subtree_array(ett, array_length(ett));
1301 void proto_reg_handoff_dcerpc_atsvc(void)
1303 dcerpc_init_uuid(proto_dcerpc_atsvc, ett_dcerpc_atsvc,
1304 &uuid_dcerpc_atsvc, ver_dcerpc_atsvc,
1305 atsvc_dissectors, hf_atsvc_opnum);