/* DO NOT EDIT This file was automatically generated by Pidl from atsvc.idl and atsvc.cnf. Pidl is a perl based IDL compiler for DCE/RPC idl files. It is maintained by the Samba team, not the Wireshark team. Instructions on how to download and install Pidl can be found at https://wiki.wireshark.org/Pidl */ #include "config.h" #include #include #include #include #include "packet-dcerpc.h" #include "packet-dcerpc-nt.h" #include "packet-windows-common.h" #include "packet-dcerpc-atsvc.h" void proto_register_dcerpc_atsvc(void); void proto_reg_handoff_dcerpc_atsvc(void); /* Ett declarations */ static int ett_dcerpc_atsvc; static int ett_atsvc_atsvc_DaysOfMonth; static int ett_atsvc_atsvc_Flags; static int ett_atsvc_atsvc_DaysOfWeek; static int ett_atsvc_atsvc_JobInfo; static int ett_atsvc_atsvc_JobEnumInfo; static int ett_atsvc_atsvc_enum_ctr; /* Header field declarations */ static int hf_atsvc_atsvc_DaysOfMonth_Eight; static int hf_atsvc_atsvc_DaysOfMonth_Eighteenth; static int hf_atsvc_atsvc_DaysOfMonth_Eleventh; static int hf_atsvc_atsvc_DaysOfMonth_Fifteenth; static int hf_atsvc_atsvc_DaysOfMonth_Fifth; static int hf_atsvc_atsvc_DaysOfMonth_First; static int hf_atsvc_atsvc_DaysOfMonth_Fourteenth; static int hf_atsvc_atsvc_DaysOfMonth_Fourth; static int hf_atsvc_atsvc_DaysOfMonth_Ninteenth; static int hf_atsvc_atsvc_DaysOfMonth_Ninth; static int hf_atsvc_atsvc_DaysOfMonth_Second; static int hf_atsvc_atsvc_DaysOfMonth_Seventeenth; static int hf_atsvc_atsvc_DaysOfMonth_Seventh; static int hf_atsvc_atsvc_DaysOfMonth_Sixteenth; static int hf_atsvc_atsvc_DaysOfMonth_Sixth; static int hf_atsvc_atsvc_DaysOfMonth_Tenth; static int hf_atsvc_atsvc_DaysOfMonth_Third; static int hf_atsvc_atsvc_DaysOfMonth_Thirtieth; static int hf_atsvc_atsvc_DaysOfMonth_Thirtyfirst; static int hf_atsvc_atsvc_DaysOfMonth_Thitteenth; static int hf_atsvc_atsvc_DaysOfMonth_Twelfth; static int hf_atsvc_atsvc_DaysOfMonth_Twentyeighth; static int hf_atsvc_atsvc_DaysOfMonth_Twentyfifth; static int hf_atsvc_atsvc_DaysOfMonth_Twentyfirst; static int hf_atsvc_atsvc_DaysOfMonth_Twentyfourth; static int hf_atsvc_atsvc_DaysOfMonth_Twentyninth; static int hf_atsvc_atsvc_DaysOfMonth_Twentysecond; static int hf_atsvc_atsvc_DaysOfMonth_Twentyseventh; static int hf_atsvc_atsvc_DaysOfMonth_Twentysixth; static int hf_atsvc_atsvc_DaysOfMonth_Twentyth; static int hf_atsvc_atsvc_DaysOfMonth_Twentythird; static int hf_atsvc_atsvc_DaysOfWeek_DAYSOFWEEK_FRIDAY; static int hf_atsvc_atsvc_DaysOfWeek_DAYSOFWEEK_MONDAY; static int hf_atsvc_atsvc_DaysOfWeek_DAYSOFWEEK_SATURDAY; static int hf_atsvc_atsvc_DaysOfWeek_DAYSOFWEEK_SUNDAY; static int hf_atsvc_atsvc_DaysOfWeek_DAYSOFWEEK_THURSDAY; static int hf_atsvc_atsvc_DaysOfWeek_DAYSOFWEEK_TUESDAY; static int hf_atsvc_atsvc_DaysOfWeek_DAYSOFWEEK_WEDNESDAY; static int hf_atsvc_atsvc_Flags_JOB_ADD_CURRENT_DATE; static int hf_atsvc_atsvc_Flags_JOB_EXEC_ERROR; static int hf_atsvc_atsvc_Flags_JOB_NONINTERACTIVE; static int hf_atsvc_atsvc_Flags_JOB_RUNS_TODAY; static int hf_atsvc_atsvc_Flags_JOB_RUN_PERIODICALLY; static int hf_atsvc_atsvc_JobDel_max_job_id; static int hf_atsvc_atsvc_JobDel_min_job_id; static int hf_atsvc_atsvc_JobEnumInfo_command; static int hf_atsvc_atsvc_JobEnumInfo_days_of_month; static int hf_atsvc_atsvc_JobEnumInfo_days_of_week; static int hf_atsvc_atsvc_JobEnumInfo_flags; static int hf_atsvc_atsvc_JobEnumInfo_job_time; static int hf_atsvc_atsvc_JobEnum_ctr; static int hf_atsvc_atsvc_JobEnum_preferred_max_len; static int hf_atsvc_atsvc_JobEnum_resume_handle; static int hf_atsvc_atsvc_JobEnum_total_entries; static int hf_atsvc_atsvc_JobInfo_command; static int hf_atsvc_atsvc_JobInfo_days_of_month; static int hf_atsvc_atsvc_JobInfo_days_of_week; static int hf_atsvc_atsvc_JobInfo_flags; static int hf_atsvc_atsvc_JobInfo_job_time; static int hf_atsvc_atsvc_enum_ctr_entries_read; static int hf_atsvc_atsvc_enum_ctr_first_entry; static int hf_atsvc_job_id; static int hf_atsvc_job_info; static int hf_atsvc_opnum; static int hf_atsvc_servername; static int hf_atsvc_status; static int proto_dcerpc_atsvc; /* Version information */ static e_guid_t uuid_dcerpc_atsvc = { 0x1ff70682, 0x0a51, 0x30e8, { 0x07, 0x6d, 0x74, 0x0b, 0xe8, 0xce, 0xe9, 0x8b } }; static uint16_t ver_dcerpc_atsvc = 1; static const true_false_string atsvc_DaysOfMonth_First_tfs = { "First is SET", "First is NOT SET", }; static const true_false_string atsvc_DaysOfMonth_Second_tfs = { "Second is SET", "Second is NOT SET", }; static const true_false_string atsvc_DaysOfMonth_Third_tfs = { "Third is SET", "Third is NOT SET", }; static const true_false_string atsvc_DaysOfMonth_Fourth_tfs = { "Fourth is SET", "Fourth is NOT SET", }; static const true_false_string atsvc_DaysOfMonth_Fifth_tfs = { "Fifth is SET", "Fifth is NOT SET", }; static const true_false_string atsvc_DaysOfMonth_Sixth_tfs = { "Sixth is SET", "Sixth is NOT SET", }; static const true_false_string atsvc_DaysOfMonth_Seventh_tfs = { "Seventh is SET", "Seventh is NOT SET", }; static const true_false_string atsvc_DaysOfMonth_Eight_tfs = { "Eight is SET", "Eight is NOT SET", }; static const true_false_string atsvc_DaysOfMonth_Ninth_tfs = { "Ninth is SET", "Ninth is NOT SET", }; static const true_false_string atsvc_DaysOfMonth_Tenth_tfs = { "Tenth is SET", "Tenth is NOT SET", }; static const true_false_string atsvc_DaysOfMonth_Eleventh_tfs = { "Eleventh is SET", "Eleventh is NOT SET", }; static const true_false_string atsvc_DaysOfMonth_Twelfth_tfs = { "Twelfth is SET", "Twelfth is NOT SET", }; static const true_false_string atsvc_DaysOfMonth_Thitteenth_tfs = { "Thitteenth is SET", "Thitteenth is NOT SET", }; static const true_false_string atsvc_DaysOfMonth_Fourteenth_tfs = { "Fourteenth is SET", "Fourteenth is NOT SET", }; static const true_false_string atsvc_DaysOfMonth_Fifteenth_tfs = { "Fifteenth is SET", "Fifteenth is NOT SET", }; static const true_false_string atsvc_DaysOfMonth_Sixteenth_tfs = { "Sixteenth is SET", "Sixteenth is NOT SET", }; static const true_false_string atsvc_DaysOfMonth_Seventeenth_tfs = { "Seventeenth is SET", "Seventeenth is NOT SET", }; static const true_false_string atsvc_DaysOfMonth_Eighteenth_tfs = { "Eighteenth is SET", "Eighteenth is NOT SET", }; static const true_false_string atsvc_DaysOfMonth_Ninteenth_tfs = { "Ninteenth is SET", "Ninteenth is NOT SET", }; static const true_false_string atsvc_DaysOfMonth_Twentyth_tfs = { "Twentyth is SET", "Twentyth is NOT SET", }; static const true_false_string atsvc_DaysOfMonth_Twentyfirst_tfs = { "Twentyfirst is SET", "Twentyfirst is NOT SET", }; static const true_false_string atsvc_DaysOfMonth_Twentysecond_tfs = { "Twentysecond is SET", "Twentysecond is NOT SET", }; static const true_false_string atsvc_DaysOfMonth_Twentythird_tfs = { "Twentythird is SET", "Twentythird is NOT SET", }; static const true_false_string atsvc_DaysOfMonth_Twentyfourth_tfs = { "Twentyfourth is SET", "Twentyfourth is NOT SET", }; static const true_false_string atsvc_DaysOfMonth_Twentyfifth_tfs = { "Twentyfifth is SET", "Twentyfifth is NOT SET", }; static const true_false_string atsvc_DaysOfMonth_Twentysixth_tfs = { "Twentysixth is SET", "Twentysixth is NOT SET", }; static const true_false_string atsvc_DaysOfMonth_Twentyseventh_tfs = { "Twentyseventh is SET", "Twentyseventh is NOT SET", }; static const true_false_string atsvc_DaysOfMonth_Twentyeighth_tfs = { "Twentyeighth is SET", "Twentyeighth is NOT SET", }; static const true_false_string atsvc_DaysOfMonth_Twentyninth_tfs = { "Twentyninth is SET", "Twentyninth is NOT SET", }; static const true_false_string atsvc_DaysOfMonth_Thirtieth_tfs = { "Thirtieth is SET", "Thirtieth is NOT SET", }; static const true_false_string atsvc_DaysOfMonth_Thirtyfirst_tfs = { "Thirtyfirst is SET", "Thirtyfirst is NOT SET", }; static const true_false_string atsvc_Flags_JOB_RUN_PERIODICALLY_tfs = { "JOB_RUN_PERIODICALLY is SET", "JOB_RUN_PERIODICALLY is NOT SET", }; static const true_false_string atsvc_Flags_JOB_EXEC_ERROR_tfs = { "JOB_EXEC_ERROR is SET", "JOB_EXEC_ERROR is NOT SET", }; static const true_false_string atsvc_Flags_JOB_RUNS_TODAY_tfs = { "JOB_RUNS_TODAY is SET", "JOB_RUNS_TODAY is NOT SET", }; static const true_false_string atsvc_Flags_JOB_ADD_CURRENT_DATE_tfs = { "JOB_ADD_CURRENT_DATE is SET", "JOB_ADD_CURRENT_DATE is NOT SET", }; static const true_false_string atsvc_Flags_JOB_NONINTERACTIVE_tfs = { "JOB_NONINTERACTIVE is SET", "JOB_NONINTERACTIVE is NOT SET", }; static const true_false_string atsvc_DaysOfWeek_DAYSOFWEEK_MONDAY_tfs = { "DAYSOFWEEK_MONDAY is SET", "DAYSOFWEEK_MONDAY is NOT SET", }; static const true_false_string atsvc_DaysOfWeek_DAYSOFWEEK_TUESDAY_tfs = { "DAYSOFWEEK_TUESDAY is SET", "DAYSOFWEEK_TUESDAY is NOT SET", }; static const true_false_string atsvc_DaysOfWeek_DAYSOFWEEK_WEDNESDAY_tfs = { "DAYSOFWEEK_WEDNESDAY is SET", "DAYSOFWEEK_WEDNESDAY is NOT SET", }; static const true_false_string atsvc_DaysOfWeek_DAYSOFWEEK_THURSDAY_tfs = { "DAYSOFWEEK_THURSDAY is SET", "DAYSOFWEEK_THURSDAY is NOT SET", }; static const true_false_string atsvc_DaysOfWeek_DAYSOFWEEK_FRIDAY_tfs = { "DAYSOFWEEK_FRIDAY is SET", "DAYSOFWEEK_FRIDAY is NOT SET", }; static const true_false_string atsvc_DaysOfWeek_DAYSOFWEEK_SATURDAY_tfs = { "DAYSOFWEEK_SATURDAY is SET", "DAYSOFWEEK_SATURDAY is NOT SET", }; static const true_false_string atsvc_DaysOfWeek_DAYSOFWEEK_SUNDAY_tfs = { "DAYSOFWEEK_SUNDAY is SET", "DAYSOFWEEK_SUNDAY is NOT SET", }; 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_); 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_); 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_); 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_); 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_); 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_); 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_); 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_); 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_); 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_); 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_); 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_); 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_); 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_); 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_); 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_); 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_); 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_); 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_); 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_); 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_); 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_); 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_); 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_); 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_); 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_); 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_); 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_); 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_); 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_); 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_); 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_); 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_); 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_); 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_); 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_); 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_); 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_); 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_); 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_); 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_); 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_); /* IDL: bitmap { */ /* IDL: First = 0x00000001 , */ /* IDL: Second = 0x00000002 , */ /* IDL: Third = 0x00000004 , */ /* IDL: Fourth = 0x00000008 , */ /* IDL: Fifth = 0x00000010 , */ /* IDL: Sixth = 0x00000020 , */ /* IDL: Seventh = 0x00000040 , */ /* IDL: Eight = 0x00000080 , */ /* IDL: Ninth = 0x00000100 , */ /* IDL: Tenth = 0x00000200 , */ /* IDL: Eleventh = 0x00000400 , */ /* IDL: Twelfth = 0x00000800 , */ /* IDL: Thitteenth = 0x00001000 , */ /* IDL: Fourteenth = 0x00002000 , */ /* IDL: Fifteenth = 0x00004000 , */ /* IDL: Sixteenth = 0x00008000 , */ /* IDL: Seventeenth = 0x00010000 , */ /* IDL: Eighteenth = 0x00020000 , */ /* IDL: Ninteenth = 0x00040000 , */ /* IDL: Twentyth = 0x00080000 , */ /* IDL: Twentyfirst = 0x00100000 , */ /* IDL: Twentysecond = 0x00200000 , */ /* IDL: Twentythird = 0x00400000 , */ /* IDL: Twentyfourth = 0x00800000 , */ /* IDL: Twentyfifth = 0x01000000 , */ /* IDL: Twentysixth = 0x02000000 , */ /* IDL: Twentyseventh = 0x04000000 , */ /* IDL: Twentyeighth = 0x08000000 , */ /* IDL: Twentyninth = 0x10000000 , */ /* IDL: Thirtieth = 0x20000000 , */ /* IDL: Thirtyfirst = 0x40000000 , */ /* IDL: } */ int 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_) { proto_item *item; static int * const atsvc_atsvc_DaysOfMonth_fields[] = { &hf_atsvc_atsvc_DaysOfMonth_First, &hf_atsvc_atsvc_DaysOfMonth_Second, &hf_atsvc_atsvc_DaysOfMonth_Third, &hf_atsvc_atsvc_DaysOfMonth_Fourth, &hf_atsvc_atsvc_DaysOfMonth_Fifth, &hf_atsvc_atsvc_DaysOfMonth_Sixth, &hf_atsvc_atsvc_DaysOfMonth_Seventh, &hf_atsvc_atsvc_DaysOfMonth_Eight, &hf_atsvc_atsvc_DaysOfMonth_Ninth, &hf_atsvc_atsvc_DaysOfMonth_Tenth, &hf_atsvc_atsvc_DaysOfMonth_Eleventh, &hf_atsvc_atsvc_DaysOfMonth_Twelfth, &hf_atsvc_atsvc_DaysOfMonth_Thitteenth, &hf_atsvc_atsvc_DaysOfMonth_Fourteenth, &hf_atsvc_atsvc_DaysOfMonth_Fifteenth, &hf_atsvc_atsvc_DaysOfMonth_Sixteenth, &hf_atsvc_atsvc_DaysOfMonth_Seventeenth, &hf_atsvc_atsvc_DaysOfMonth_Eighteenth, &hf_atsvc_atsvc_DaysOfMonth_Ninteenth, &hf_atsvc_atsvc_DaysOfMonth_Twentyth, &hf_atsvc_atsvc_DaysOfMonth_Twentyfirst, &hf_atsvc_atsvc_DaysOfMonth_Twentysecond, &hf_atsvc_atsvc_DaysOfMonth_Twentythird, &hf_atsvc_atsvc_DaysOfMonth_Twentyfourth, &hf_atsvc_atsvc_DaysOfMonth_Twentyfifth, &hf_atsvc_atsvc_DaysOfMonth_Twentysixth, &hf_atsvc_atsvc_DaysOfMonth_Twentyseventh, &hf_atsvc_atsvc_DaysOfMonth_Twentyeighth, &hf_atsvc_atsvc_DaysOfMonth_Twentyninth, &hf_atsvc_atsvc_DaysOfMonth_Thirtieth, &hf_atsvc_atsvc_DaysOfMonth_Thirtyfirst, NULL }; uint32_t flags; ALIGN_TO_4_BYTES; item = proto_tree_add_bitmask_with_flags(parent_tree, tvb, offset, hf_index, ett_atsvc_atsvc_DaysOfMonth, atsvc_atsvc_DaysOfMonth_fields, DREP_ENC_INTEGER(drep), BMT_NO_FALSE); offset = dissect_ndr_uint32(tvb, offset, pinfo, parent_tree, di, drep, -1, &flags); if (!flags) proto_item_append_text(item, ": (No values set)"); if (flags & (~0x7fffffff)) { flags &= (~0x7fffffff); proto_item_append_text(item, "Unknown bitmap value 0x%x", flags); } return offset; } /* IDL: bitmap { */ /* IDL: JOB_RUN_PERIODICALLY = 0x01 , */ /* IDL: JOB_EXEC_ERROR = 0x02 , */ /* IDL: JOB_RUNS_TODAY = 0x04 , */ /* IDL: JOB_ADD_CURRENT_DATE = 0x08 , */ /* IDL: JOB_NONINTERACTIVE = 0x10 , */ /* IDL: } */ int 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_) { proto_item *item; static int * const atsvc_atsvc_Flags_fields[] = { &hf_atsvc_atsvc_Flags_JOB_RUN_PERIODICALLY, &hf_atsvc_atsvc_Flags_JOB_EXEC_ERROR, &hf_atsvc_atsvc_Flags_JOB_RUNS_TODAY, &hf_atsvc_atsvc_Flags_JOB_ADD_CURRENT_DATE, &hf_atsvc_atsvc_Flags_JOB_NONINTERACTIVE, NULL }; uint8_t flags; item = proto_tree_add_bitmask_with_flags(parent_tree, tvb, offset, hf_index, ett_atsvc_atsvc_Flags, atsvc_atsvc_Flags_fields, DREP_ENC_INTEGER(drep), BMT_NO_FALSE); offset = dissect_ndr_uint8(tvb, offset, pinfo, parent_tree, di, drep, -1, &flags); if (!flags) proto_item_append_text(item, ": (No values set)"); if (flags & (~0x0000001f)) { flags &= (~0x0000001f); proto_item_append_text(item, "Unknown bitmap value 0x%x", flags); } return offset; } /* IDL: bitmap { */ /* IDL: DAYSOFWEEK_MONDAY = 0x01 , */ /* IDL: DAYSOFWEEK_TUESDAY = 0x02 , */ /* IDL: DAYSOFWEEK_WEDNESDAY = 0x04 , */ /* IDL: DAYSOFWEEK_THURSDAY = 0x08 , */ /* IDL: DAYSOFWEEK_FRIDAY = 0x10 , */ /* IDL: DAYSOFWEEK_SATURDAY = 0x20 , */ /* IDL: DAYSOFWEEK_SUNDAY = 0x40 , */ /* IDL: } */ int 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_) { proto_item *item; static int * const atsvc_atsvc_DaysOfWeek_fields[] = { &hf_atsvc_atsvc_DaysOfWeek_DAYSOFWEEK_MONDAY, &hf_atsvc_atsvc_DaysOfWeek_DAYSOFWEEK_TUESDAY, &hf_atsvc_atsvc_DaysOfWeek_DAYSOFWEEK_WEDNESDAY, &hf_atsvc_atsvc_DaysOfWeek_DAYSOFWEEK_THURSDAY, &hf_atsvc_atsvc_DaysOfWeek_DAYSOFWEEK_FRIDAY, &hf_atsvc_atsvc_DaysOfWeek_DAYSOFWEEK_SATURDAY, &hf_atsvc_atsvc_DaysOfWeek_DAYSOFWEEK_SUNDAY, NULL }; uint8_t flags; item = proto_tree_add_bitmask_with_flags(parent_tree, tvb, offset, hf_index, ett_atsvc_atsvc_DaysOfWeek, atsvc_atsvc_DaysOfWeek_fields, DREP_ENC_INTEGER(drep), BMT_NO_FALSE); offset = dissect_ndr_uint8(tvb, offset, pinfo, parent_tree, di, drep, -1, &flags); if (!flags) proto_item_append_text(item, ": (No values set)"); if (flags & (~0x0000007f)) { flags &= (~0x0000007f); proto_item_append_text(item, "Unknown bitmap value 0x%x", flags); } return offset; } /* IDL: struct { */ /* IDL: uint32 job_time; */ /* IDL: atsvc_DaysOfMonth days_of_month; */ /* IDL: atsvc_DaysOfWeek days_of_week; */ /* IDL: atsvc_Flags flags; */ /* IDL: [charset(UTF16)] [unique(1)] uint16 *command; */ /* IDL: } */ 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_) { offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_atsvc_atsvc_JobInfo_job_time, 0); return offset; } 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_) { offset = atsvc_dissect_bitmap_DaysOfMonth(tvb, offset, pinfo, tree, di, drep, hf_atsvc_atsvc_JobInfo_days_of_month, 0); return offset; } 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_) { offset = atsvc_dissect_bitmap_DaysOfWeek(tvb, offset, pinfo, tree, di, drep, hf_atsvc_atsvc_JobInfo_days_of_week, 0); return offset; } 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_) { offset = atsvc_dissect_bitmap_Flags(tvb, offset, pinfo, tree, di, drep, hf_atsvc_atsvc_JobInfo_flags, 0); return offset; } 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_) { 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); return offset; } 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_) { char *data; offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(uint16_t), hf_atsvc_atsvc_JobInfo_command, false, &data); proto_item_append_text(tree, ": %s", data); return offset; } int 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_) { proto_item *item = NULL; proto_tree *tree = NULL; int old_offset; ALIGN_TO_5_BYTES; old_offset = offset; if (parent_tree) { item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); tree = proto_item_add_subtree(item, ett_atsvc_atsvc_JobInfo); } offset = atsvc_dissect_element_JobInfo_job_time(tvb, offset, pinfo, tree, di, drep); offset = atsvc_dissect_element_JobInfo_days_of_month(tvb, offset, pinfo, tree, di, drep); offset = atsvc_dissect_element_JobInfo_days_of_week(tvb, offset, pinfo, tree, di, drep); offset = atsvc_dissect_element_JobInfo_flags(tvb, offset, pinfo, tree, di, drep); offset = atsvc_dissect_element_JobInfo_command(tvb, offset, pinfo, tree, di, drep); proto_item_set_len(item, offset-old_offset); if (di->call_data->flags & DCERPC_IS_NDR64) { ALIGN_TO_5_BYTES; } return offset; } /* IDL: struct { */ /* IDL: uint32 job_id; */ /* IDL: uint32 job_time; */ /* IDL: atsvc_DaysOfMonth days_of_month; */ /* IDL: atsvc_DaysOfWeek days_of_week; */ /* IDL: atsvc_Flags flags; */ /* IDL: [charset(UTF16)] [unique(1)] uint16 *command; */ /* IDL: } */ 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_) { offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_atsvc_job_id, 0); return offset; } 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_) { offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_atsvc_atsvc_JobEnumInfo_job_time, 0); return offset; } 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_) { offset = atsvc_dissect_bitmap_DaysOfMonth(tvb, offset, pinfo, tree, di, drep, hf_atsvc_atsvc_JobEnumInfo_days_of_month, 0); return offset; } 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_) { offset = atsvc_dissect_bitmap_DaysOfWeek(tvb, offset, pinfo, tree, di, drep, hf_atsvc_atsvc_JobEnumInfo_days_of_week, 0); return offset; } 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_) { offset = atsvc_dissect_bitmap_Flags(tvb, offset, pinfo, tree, di, drep, hf_atsvc_atsvc_JobEnumInfo_flags, 0); return offset; } 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_) { 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); return offset; } 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_) { char *data; offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(uint16_t), hf_atsvc_atsvc_JobEnumInfo_command, false, &data); proto_item_append_text(tree, ": %s", data); return offset; } int 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_) { proto_item *item = NULL; proto_tree *tree = NULL; int old_offset; ALIGN_TO_5_BYTES; old_offset = offset; if (parent_tree) { item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); tree = proto_item_add_subtree(item, ett_atsvc_atsvc_JobEnumInfo); } offset = atsvc_dissect_element_JobEnumInfo_job_id(tvb, offset, pinfo, tree, di, drep); offset = atsvc_dissect_element_JobEnumInfo_job_time(tvb, offset, pinfo, tree, di, drep); offset = atsvc_dissect_element_JobEnumInfo_days_of_month(tvb, offset, pinfo, tree, di, drep); offset = atsvc_dissect_element_JobEnumInfo_days_of_week(tvb, offset, pinfo, tree, di, drep); offset = atsvc_dissect_element_JobEnumInfo_flags(tvb, offset, pinfo, tree, di, drep); offset = atsvc_dissect_element_JobEnumInfo_command(tvb, offset, pinfo, tree, di, drep); proto_item_set_len(item, offset-old_offset); if (di->call_data->flags & DCERPC_IS_NDR64) { ALIGN_TO_5_BYTES; } return offset; } /* IDL: struct { */ /* IDL: uint32 entries_read; */ /* IDL: [size_is(entries_read)] [unique(1)] atsvc_JobEnumInfo *first_entry; */ /* IDL: } */ 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_) { offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_atsvc_atsvc_enum_ctr_entries_read, 0); return offset; } 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_) { 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); return offset; } 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_) { offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, atsvc_dissect_element_enum_ctr_first_entry__); return offset; } 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_) { offset = atsvc_dissect_struct_JobEnumInfo(tvb,offset,pinfo,tree,di,drep,hf_atsvc_atsvc_enum_ctr_first_entry,0); return offset; } int 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_) { proto_item *item = NULL; proto_tree *tree = NULL; int old_offset; ALIGN_TO_5_BYTES; old_offset = offset; if (parent_tree) { item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); tree = proto_item_add_subtree(item, ett_atsvc_atsvc_enum_ctr); } offset = atsvc_dissect_element_enum_ctr_entries_read(tvb, offset, pinfo, tree, di, drep); offset = atsvc_dissect_element_enum_ctr_first_entry(tvb, offset, pinfo, tree, di, drep); proto_item_set_len(item, offset-old_offset); if (di->call_data->flags & DCERPC_IS_NDR64) { ALIGN_TO_5_BYTES; } return offset; } 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_) { 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); return offset; } 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_) { char *data; offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(uint16_t), hf_atsvc_servername, false, &data); proto_item_append_text(tree, ": %s", data); return offset; } 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_) { 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); return offset; } 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_) { offset = atsvc_dissect_struct_JobInfo(tvb,offset,pinfo,tree,di,drep,hf_atsvc_job_info,0); return offset; } 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_) { 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); return offset; } 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_) { offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_atsvc_job_id, 0); return offset; } /* IDL: NTSTATUS atsvc_JobAdd( */ /* IDL: [charset(UTF16)] [in] [unique(1)] uint16 *servername, */ /* IDL: [in] [ref] atsvc_JobInfo *job_info, */ /* IDL: [out] [ref] uint32 *job_id */ /* IDL: ); */ static int 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_) { uint32_t status; di->dcerpc_procedure_name="JobAdd"; offset = atsvc_dissect_element_JobAdd_job_id(tvb, offset, pinfo, tree, di, drep); offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep); offset = dissect_ntstatus(tvb, offset, pinfo, tree, di, drep, hf_atsvc_status, &status); if (status != 0) col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(status, &NT_errors_ext, "Unknown NT status 0x%08x")); return offset; } static int 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_) { di->dcerpc_procedure_name="JobAdd"; offset = atsvc_dissect_element_JobAdd_servername(tvb, offset, pinfo, tree, di, drep); offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep); offset = atsvc_dissect_element_JobAdd_job_info(tvb, offset, pinfo, tree, di, drep); offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep); return offset; } 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_) { 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); return offset; } 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_) { char *data; offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(uint16_t), hf_atsvc_servername, false, &data); proto_item_append_text(tree, ": %s", data); return offset; } 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_) { offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_atsvc_atsvc_JobDel_min_job_id, 0); return offset; } 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_) { offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_atsvc_atsvc_JobDel_max_job_id, 0); return offset; } /* IDL: NTSTATUS atsvc_JobDel( */ /* IDL: [charset(UTF16)] [in] [unique(1)] uint16 *servername, */ /* IDL: [in] uint32 min_job_id, */ /* IDL: [in] uint32 max_job_id */ /* IDL: ); */ static int 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_) { uint32_t status; di->dcerpc_procedure_name="JobDel"; offset = dissect_ntstatus(tvb, offset, pinfo, tree, di, drep, hf_atsvc_status, &status); if (status != 0) col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(status, &NT_errors_ext, "Unknown NT status 0x%08x")); return offset; } static int 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_) { di->dcerpc_procedure_name="JobDel"; offset = atsvc_dissect_element_JobDel_servername(tvb, offset, pinfo, tree, di, drep); offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep); offset = atsvc_dissect_element_JobDel_min_job_id(tvb, offset, pinfo, tree, di, drep); offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep); offset = atsvc_dissect_element_JobDel_max_job_id(tvb, offset, pinfo, tree, di, drep); offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep); return offset; } 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_) { 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); return offset; } 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_) { char *data; offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(uint16_t), hf_atsvc_servername, false, &data); proto_item_append_text(tree, ": %s", data); return offset; } 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_) { 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); return offset; } 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_) { offset = atsvc_dissect_struct_enum_ctr(tvb,offset,pinfo,tree,di,drep,hf_atsvc_atsvc_JobEnum_ctr,0); return offset; } 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_) { offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_atsvc_atsvc_JobEnum_preferred_max_len, 0); return offset; } 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_) { 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); return offset; } 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_) { offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_atsvc_atsvc_JobEnum_total_entries, 0); return offset; } 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_) { 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); return offset; } 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_) { offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_atsvc_atsvc_JobEnum_resume_handle, 0); return offset; } /* IDL: NTSTATUS atsvc_JobEnum( */ /* IDL: [charset(UTF16)] [in] [unique(1)] uint16 *servername, */ /* IDL: [in] [out] [ref] atsvc_enum_ctr *ctr, */ /* IDL: [in] uint32 preferred_max_len, */ /* IDL: [out] [ref] uint32 *total_entries, */ /* IDL: [in] [out] [unique(1)] uint32 *resume_handle */ /* IDL: ); */ static int 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_) { uint32_t status; di->dcerpc_procedure_name="JobEnum"; offset = atsvc_dissect_element_JobEnum_ctr(tvb, offset, pinfo, tree, di, drep); offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep); offset = atsvc_dissect_element_JobEnum_total_entries(tvb, offset, pinfo, tree, di, drep); offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep); offset = atsvc_dissect_element_JobEnum_resume_handle(tvb, offset, pinfo, tree, di, drep); offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep); offset = dissect_ntstatus(tvb, offset, pinfo, tree, di, drep, hf_atsvc_status, &status); if (status != 0) col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(status, &NT_errors_ext, "Unknown NT status 0x%08x")); return offset; } static int 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_) { di->dcerpc_procedure_name="JobEnum"; offset = atsvc_dissect_element_JobEnum_servername(tvb, offset, pinfo, tree, di, drep); offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep); offset = atsvc_dissect_element_JobEnum_ctr(tvb, offset, pinfo, tree, di, drep); offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep); offset = atsvc_dissect_element_JobEnum_preferred_max_len(tvb, offset, pinfo, tree, di, drep); offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep); offset = atsvc_dissect_element_JobEnum_resume_handle(tvb, offset, pinfo, tree, di, drep); offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep); return offset; } 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_) { 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); return offset; } 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_) { char *data; offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(uint16_t), hf_atsvc_servername, false, &data); proto_item_append_text(tree, ": %s", data); return offset; } 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_) { offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_atsvc_job_id, 0); return offset; } 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_) { 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); return offset; } 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_) { 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); return offset; } 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_) { offset = atsvc_dissect_struct_JobInfo(tvb,offset,pinfo,tree,di,drep,hf_atsvc_job_info,0); return offset; } /* IDL: NTSTATUS atsvc_JobGetInfo( */ /* IDL: [charset(UTF16)] [in] [unique(1)] uint16 *servername, */ /* IDL: [in] uint32 job_id, */ /* IDL: [out] [ref] atsvc_JobInfo **job_info */ /* IDL: ); */ static int 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_) { uint32_t status; di->dcerpc_procedure_name="JobGetInfo"; offset = atsvc_dissect_element_JobGetInfo_job_info(tvb, offset, pinfo, tree, di, drep); offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep); offset = dissect_ntstatus(tvb, offset, pinfo, tree, di, drep, hf_atsvc_status, &status); if (status != 0) col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(status, &NT_errors_ext, "Unknown NT status 0x%08x")); return offset; } static int 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_) { di->dcerpc_procedure_name="JobGetInfo"; offset = atsvc_dissect_element_JobGetInfo_servername(tvb, offset, pinfo, tree, di, drep); offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep); offset = atsvc_dissect_element_JobGetInfo_job_id(tvb, offset, pinfo, tree, di, drep); offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep); return offset; } static const dcerpc_sub_dissector atsvc_dissectors[] = { { 0, "JobAdd", atsvc_dissect_JobAdd_request, atsvc_dissect_JobAdd_response}, { 1, "JobDel", atsvc_dissect_JobDel_request, atsvc_dissect_JobDel_response}, { 2, "JobEnum", atsvc_dissect_JobEnum_request, atsvc_dissect_JobEnum_response}, { 3, "JobGetInfo", atsvc_dissect_JobGetInfo_request, atsvc_dissect_JobGetInfo_response}, { 0, NULL, NULL, NULL } }; void proto_register_dcerpc_atsvc(void) { static hf_register_info hf[] = { { &hf_atsvc_atsvc_DaysOfMonth_Eight, { "Eight", "atsvc.atsvc_DaysOfMonth.Eight", FT_BOOLEAN, 32, TFS(&atsvc_DaysOfMonth_Eight_tfs), ( 0x00000080 ), NULL, HFILL }}, { &hf_atsvc_atsvc_DaysOfMonth_Eighteenth, { "Eighteenth", "atsvc.atsvc_DaysOfMonth.Eighteenth", FT_BOOLEAN, 32, TFS(&atsvc_DaysOfMonth_Eighteenth_tfs), ( 0x00020000 ), NULL, HFILL }}, { &hf_atsvc_atsvc_DaysOfMonth_Eleventh, { "Eleventh", "atsvc.atsvc_DaysOfMonth.Eleventh", FT_BOOLEAN, 32, TFS(&atsvc_DaysOfMonth_Eleventh_tfs), ( 0x00000400 ), NULL, HFILL }}, { &hf_atsvc_atsvc_DaysOfMonth_Fifteenth, { "Fifteenth", "atsvc.atsvc_DaysOfMonth.Fifteenth", FT_BOOLEAN, 32, TFS(&atsvc_DaysOfMonth_Fifteenth_tfs), ( 0x00004000 ), NULL, HFILL }}, { &hf_atsvc_atsvc_DaysOfMonth_Fifth, { "Fifth", "atsvc.atsvc_DaysOfMonth.Fifth", FT_BOOLEAN, 32, TFS(&atsvc_DaysOfMonth_Fifth_tfs), ( 0x00000010 ), NULL, HFILL }}, { &hf_atsvc_atsvc_DaysOfMonth_First, { "First", "atsvc.atsvc_DaysOfMonth.First", FT_BOOLEAN, 32, TFS(&atsvc_DaysOfMonth_First_tfs), ( 0x00000001 ), NULL, HFILL }}, { &hf_atsvc_atsvc_DaysOfMonth_Fourteenth, { "Fourteenth", "atsvc.atsvc_DaysOfMonth.Fourteenth", FT_BOOLEAN, 32, TFS(&atsvc_DaysOfMonth_Fourteenth_tfs), ( 0x00002000 ), NULL, HFILL }}, { &hf_atsvc_atsvc_DaysOfMonth_Fourth, { "Fourth", "atsvc.atsvc_DaysOfMonth.Fourth", FT_BOOLEAN, 32, TFS(&atsvc_DaysOfMonth_Fourth_tfs), ( 0x00000008 ), NULL, HFILL }}, { &hf_atsvc_atsvc_DaysOfMonth_Ninteenth, { "Ninteenth", "atsvc.atsvc_DaysOfMonth.Ninteenth", FT_BOOLEAN, 32, TFS(&atsvc_DaysOfMonth_Ninteenth_tfs), ( 0x00040000 ), NULL, HFILL }}, { &hf_atsvc_atsvc_DaysOfMonth_Ninth, { "Ninth", "atsvc.atsvc_DaysOfMonth.Ninth", FT_BOOLEAN, 32, TFS(&atsvc_DaysOfMonth_Ninth_tfs), ( 0x00000100 ), NULL, HFILL }}, { &hf_atsvc_atsvc_DaysOfMonth_Second, { "Second", "atsvc.atsvc_DaysOfMonth.Second", FT_BOOLEAN, 32, TFS(&atsvc_DaysOfMonth_Second_tfs), ( 0x00000002 ), NULL, HFILL }}, { &hf_atsvc_atsvc_DaysOfMonth_Seventeenth, { "Seventeenth", "atsvc.atsvc_DaysOfMonth.Seventeenth", FT_BOOLEAN, 32, TFS(&atsvc_DaysOfMonth_Seventeenth_tfs), ( 0x00010000 ), NULL, HFILL }}, { &hf_atsvc_atsvc_DaysOfMonth_Seventh, { "Seventh", "atsvc.atsvc_DaysOfMonth.Seventh", FT_BOOLEAN, 32, TFS(&atsvc_DaysOfMonth_Seventh_tfs), ( 0x00000040 ), NULL, HFILL }}, { &hf_atsvc_atsvc_DaysOfMonth_Sixteenth, { "Sixteenth", "atsvc.atsvc_DaysOfMonth.Sixteenth", FT_BOOLEAN, 32, TFS(&atsvc_DaysOfMonth_Sixteenth_tfs), ( 0x00008000 ), NULL, HFILL }}, { &hf_atsvc_atsvc_DaysOfMonth_Sixth, { "Sixth", "atsvc.atsvc_DaysOfMonth.Sixth", FT_BOOLEAN, 32, TFS(&atsvc_DaysOfMonth_Sixth_tfs), ( 0x00000020 ), NULL, HFILL }}, { &hf_atsvc_atsvc_DaysOfMonth_Tenth, { "Tenth", "atsvc.atsvc_DaysOfMonth.Tenth", FT_BOOLEAN, 32, TFS(&atsvc_DaysOfMonth_Tenth_tfs), ( 0x00000200 ), NULL, HFILL }}, { &hf_atsvc_atsvc_DaysOfMonth_Third, { "Third", "atsvc.atsvc_DaysOfMonth.Third", FT_BOOLEAN, 32, TFS(&atsvc_DaysOfMonth_Third_tfs), ( 0x00000004 ), NULL, HFILL }}, { &hf_atsvc_atsvc_DaysOfMonth_Thirtieth, { "Thirtieth", "atsvc.atsvc_DaysOfMonth.Thirtieth", FT_BOOLEAN, 32, TFS(&atsvc_DaysOfMonth_Thirtieth_tfs), ( 0x20000000 ), NULL, HFILL }}, { &hf_atsvc_atsvc_DaysOfMonth_Thirtyfirst, { "Thirtyfirst", "atsvc.atsvc_DaysOfMonth.Thirtyfirst", FT_BOOLEAN, 32, TFS(&atsvc_DaysOfMonth_Thirtyfirst_tfs), ( 0x40000000 ), NULL, HFILL }}, { &hf_atsvc_atsvc_DaysOfMonth_Thitteenth, { "Thitteenth", "atsvc.atsvc_DaysOfMonth.Thitteenth", FT_BOOLEAN, 32, TFS(&atsvc_DaysOfMonth_Thitteenth_tfs), ( 0x00001000 ), NULL, HFILL }}, { &hf_atsvc_atsvc_DaysOfMonth_Twelfth, { "Twelfth", "atsvc.atsvc_DaysOfMonth.Twelfth", FT_BOOLEAN, 32, TFS(&atsvc_DaysOfMonth_Twelfth_tfs), ( 0x00000800 ), NULL, HFILL }}, { &hf_atsvc_atsvc_DaysOfMonth_Twentyeighth, { "Twentyeighth", "atsvc.atsvc_DaysOfMonth.Twentyeighth", FT_BOOLEAN, 32, TFS(&atsvc_DaysOfMonth_Twentyeighth_tfs), ( 0x08000000 ), NULL, HFILL }}, { &hf_atsvc_atsvc_DaysOfMonth_Twentyfifth, { "Twentyfifth", "atsvc.atsvc_DaysOfMonth.Twentyfifth", FT_BOOLEAN, 32, TFS(&atsvc_DaysOfMonth_Twentyfifth_tfs), ( 0x01000000 ), NULL, HFILL }}, { &hf_atsvc_atsvc_DaysOfMonth_Twentyfirst, { "Twentyfirst", "atsvc.atsvc_DaysOfMonth.Twentyfirst", FT_BOOLEAN, 32, TFS(&atsvc_DaysOfMonth_Twentyfirst_tfs), ( 0x00100000 ), NULL, HFILL }}, { &hf_atsvc_atsvc_DaysOfMonth_Twentyfourth, { "Twentyfourth", "atsvc.atsvc_DaysOfMonth.Twentyfourth", FT_BOOLEAN, 32, TFS(&atsvc_DaysOfMonth_Twentyfourth_tfs), ( 0x00800000 ), NULL, HFILL }}, { &hf_atsvc_atsvc_DaysOfMonth_Twentyninth, { "Twentyninth", "atsvc.atsvc_DaysOfMonth.Twentyninth", FT_BOOLEAN, 32, TFS(&atsvc_DaysOfMonth_Twentyninth_tfs), ( 0x10000000 ), NULL, HFILL }}, { &hf_atsvc_atsvc_DaysOfMonth_Twentysecond, { "Twentysecond", "atsvc.atsvc_DaysOfMonth.Twentysecond", FT_BOOLEAN, 32, TFS(&atsvc_DaysOfMonth_Twentysecond_tfs), ( 0x00200000 ), NULL, HFILL }}, { &hf_atsvc_atsvc_DaysOfMonth_Twentyseventh, { "Twentyseventh", "atsvc.atsvc_DaysOfMonth.Twentyseventh", FT_BOOLEAN, 32, TFS(&atsvc_DaysOfMonth_Twentyseventh_tfs), ( 0x04000000 ), NULL, HFILL }}, { &hf_atsvc_atsvc_DaysOfMonth_Twentysixth, { "Twentysixth", "atsvc.atsvc_DaysOfMonth.Twentysixth", FT_BOOLEAN, 32, TFS(&atsvc_DaysOfMonth_Twentysixth_tfs), ( 0x02000000 ), NULL, HFILL }}, { &hf_atsvc_atsvc_DaysOfMonth_Twentyth, { "Twentyth", "atsvc.atsvc_DaysOfMonth.Twentyth", FT_BOOLEAN, 32, TFS(&atsvc_DaysOfMonth_Twentyth_tfs), ( 0x00080000 ), NULL, HFILL }}, { &hf_atsvc_atsvc_DaysOfMonth_Twentythird, { "Twentythird", "atsvc.atsvc_DaysOfMonth.Twentythird", FT_BOOLEAN, 32, TFS(&atsvc_DaysOfMonth_Twentythird_tfs), ( 0x00400000 ), NULL, HFILL }}, { &hf_atsvc_atsvc_DaysOfWeek_DAYSOFWEEK_FRIDAY, { "DAYSOFWEEK FRIDAY", "atsvc.atsvc_DaysOfWeek.DAYSOFWEEK_FRIDAY", FT_BOOLEAN, 8, TFS(&atsvc_DaysOfWeek_DAYSOFWEEK_FRIDAY_tfs), ( 0x10 ), NULL, HFILL }}, { &hf_atsvc_atsvc_DaysOfWeek_DAYSOFWEEK_MONDAY, { "DAYSOFWEEK MONDAY", "atsvc.atsvc_DaysOfWeek.DAYSOFWEEK_MONDAY", FT_BOOLEAN, 8, TFS(&atsvc_DaysOfWeek_DAYSOFWEEK_MONDAY_tfs), ( 0x01 ), NULL, HFILL }}, { &hf_atsvc_atsvc_DaysOfWeek_DAYSOFWEEK_SATURDAY, { "DAYSOFWEEK SATURDAY", "atsvc.atsvc_DaysOfWeek.DAYSOFWEEK_SATURDAY", FT_BOOLEAN, 8, TFS(&atsvc_DaysOfWeek_DAYSOFWEEK_SATURDAY_tfs), ( 0x20 ), NULL, HFILL }}, { &hf_atsvc_atsvc_DaysOfWeek_DAYSOFWEEK_SUNDAY, { "DAYSOFWEEK SUNDAY", "atsvc.atsvc_DaysOfWeek.DAYSOFWEEK_SUNDAY", FT_BOOLEAN, 8, TFS(&atsvc_DaysOfWeek_DAYSOFWEEK_SUNDAY_tfs), ( 0x40 ), NULL, HFILL }}, { &hf_atsvc_atsvc_DaysOfWeek_DAYSOFWEEK_THURSDAY, { "DAYSOFWEEK THURSDAY", "atsvc.atsvc_DaysOfWeek.DAYSOFWEEK_THURSDAY", FT_BOOLEAN, 8, TFS(&atsvc_DaysOfWeek_DAYSOFWEEK_THURSDAY_tfs), ( 0x08 ), NULL, HFILL }}, { &hf_atsvc_atsvc_DaysOfWeek_DAYSOFWEEK_TUESDAY, { "DAYSOFWEEK TUESDAY", "atsvc.atsvc_DaysOfWeek.DAYSOFWEEK_TUESDAY", FT_BOOLEAN, 8, TFS(&atsvc_DaysOfWeek_DAYSOFWEEK_TUESDAY_tfs), ( 0x02 ), NULL, HFILL }}, { &hf_atsvc_atsvc_DaysOfWeek_DAYSOFWEEK_WEDNESDAY, { "DAYSOFWEEK WEDNESDAY", "atsvc.atsvc_DaysOfWeek.DAYSOFWEEK_WEDNESDAY", FT_BOOLEAN, 8, TFS(&atsvc_DaysOfWeek_DAYSOFWEEK_WEDNESDAY_tfs), ( 0x04 ), NULL, HFILL }}, { &hf_atsvc_atsvc_Flags_JOB_ADD_CURRENT_DATE, { "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 }}, { &hf_atsvc_atsvc_Flags_JOB_EXEC_ERROR, { "JOB EXEC ERROR", "atsvc.atsvc_Flags.JOB_EXEC_ERROR", FT_BOOLEAN, 8, TFS(&atsvc_Flags_JOB_EXEC_ERROR_tfs), ( 0x02 ), NULL, HFILL }}, { &hf_atsvc_atsvc_Flags_JOB_NONINTERACTIVE, { "JOB NONINTERACTIVE", "atsvc.atsvc_Flags.JOB_NONINTERACTIVE", FT_BOOLEAN, 8, TFS(&atsvc_Flags_JOB_NONINTERACTIVE_tfs), ( 0x10 ), NULL, HFILL }}, { &hf_atsvc_atsvc_Flags_JOB_RUNS_TODAY, { "JOB RUNS TODAY", "atsvc.atsvc_Flags.JOB_RUNS_TODAY", FT_BOOLEAN, 8, TFS(&atsvc_Flags_JOB_RUNS_TODAY_tfs), ( 0x04 ), NULL, HFILL }}, { &hf_atsvc_atsvc_Flags_JOB_RUN_PERIODICALLY, { "JOB RUN PERIODICALLY", "atsvc.atsvc_Flags.JOB_RUN_PERIODICALLY", FT_BOOLEAN, 8, TFS(&atsvc_Flags_JOB_RUN_PERIODICALLY_tfs), ( 0x01 ), NULL, HFILL }}, { &hf_atsvc_atsvc_JobDel_max_job_id, { "Max Job Id", "atsvc.atsvc_JobDel.max_job_id", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, { &hf_atsvc_atsvc_JobDel_min_job_id, { "Min Job Id", "atsvc.atsvc_JobDel.min_job_id", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, { &hf_atsvc_atsvc_JobEnumInfo_command, { "Command", "atsvc.atsvc_JobEnumInfo.command", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_atsvc_atsvc_JobEnumInfo_days_of_month, { "Days Of Month", "atsvc.atsvc_JobEnumInfo.days_of_month", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }}, { &hf_atsvc_atsvc_JobEnumInfo_days_of_week, { "Days Of Week", "atsvc.atsvc_JobEnumInfo.days_of_week", FT_UINT8, BASE_HEX, NULL, 0, NULL, HFILL }}, { &hf_atsvc_atsvc_JobEnumInfo_flags, { "Flags", "atsvc.atsvc_JobEnumInfo.flags", FT_UINT8, BASE_HEX, NULL, 0, NULL, HFILL }}, { &hf_atsvc_atsvc_JobEnumInfo_job_time, { "Job Time", "atsvc.atsvc_JobEnumInfo.job_time", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, { &hf_atsvc_atsvc_JobEnum_ctr, { "Ctr", "atsvc.atsvc_JobEnum.ctr", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_atsvc_atsvc_JobEnum_preferred_max_len, { "Preferred Max Len", "atsvc.atsvc_JobEnum.preferred_max_len", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, { &hf_atsvc_atsvc_JobEnum_resume_handle, { "Resume Handle", "atsvc.atsvc_JobEnum.resume_handle", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, { &hf_atsvc_atsvc_JobEnum_total_entries, { "Total Entries", "atsvc.atsvc_JobEnum.total_entries", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, { &hf_atsvc_atsvc_JobInfo_command, { "Command", "atsvc.atsvc_JobInfo.command", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_atsvc_atsvc_JobInfo_days_of_month, { "Days Of Month", "atsvc.atsvc_JobInfo.days_of_month", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }}, { &hf_atsvc_atsvc_JobInfo_days_of_week, { "Days Of Week", "atsvc.atsvc_JobInfo.days_of_week", FT_UINT8, BASE_HEX, NULL, 0, NULL, HFILL }}, { &hf_atsvc_atsvc_JobInfo_flags, { "Flags", "atsvc.atsvc_JobInfo.flags", FT_UINT8, BASE_HEX, NULL, 0, NULL, HFILL }}, { &hf_atsvc_atsvc_JobInfo_job_time, { "Job Time", "atsvc.atsvc_JobInfo.job_time", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, { &hf_atsvc_atsvc_enum_ctr_entries_read, { "Entries Read", "atsvc.atsvc_enum_ctr.entries_read", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, { &hf_atsvc_atsvc_enum_ctr_first_entry, { "First Entry", "atsvc.atsvc_enum_ctr.first_entry", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_atsvc_job_id, { "Job Id", "atsvc.job_id", FT_UINT32, BASE_DEC, NULL, 0, "Identifier of the scheduled job", HFILL }}, { &hf_atsvc_job_info, { "JobInfo", "atcvs.job_info", FT_NONE, BASE_NONE, NULL, 0, "JobInfo structure", HFILL }}, { &hf_atsvc_opnum, { "Operation", "atsvc.opnum", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }}, { &hf_atsvc_servername, { "Server", "atsvc.server", FT_STRING, BASE_NONE, NULL, 0, "Name of the server", HFILL }}, { &hf_atsvc_status, { "NT Error", "atsvc.status", FT_UINT32, BASE_HEX|BASE_EXT_STRING, &NT_errors_ext, 0, NULL, HFILL }}, }; static int *ett[] = { &ett_dcerpc_atsvc, &ett_atsvc_atsvc_DaysOfMonth, &ett_atsvc_atsvc_Flags, &ett_atsvc_atsvc_DaysOfWeek, &ett_atsvc_atsvc_JobInfo, &ett_atsvc_atsvc_JobEnumInfo, &ett_atsvc_atsvc_enum_ctr, }; proto_dcerpc_atsvc = proto_register_protocol("Microsoft AT-Scheduler Service", "ATSVC", "atsvc"); proto_register_field_array(proto_dcerpc_atsvc, hf, array_length (hf)); proto_register_subtree_array(ett, array_length(ett)); } void proto_reg_handoff_dcerpc_atsvc(void) { dcerpc_init_uuid(proto_dcerpc_atsvc, ett_dcerpc_atsvc, &uuid_dcerpc_atsvc, ver_dcerpc_atsvc, atsvc_dissectors, hf_atsvc_opnum); }