/* DO NOT EDIT * This dissector is autogenerated */ /* packet-dcerpc-atsvc.c * Routines for ATSVC packet disassembly * based on the original dissector that was * * Copyright 2003 Jean-Baptiste Marchand * and IDL file from samba 4 * * $Id$ * * Ethereal - Network traffic analyzer * By Gerald Combs * Copyright 1998 Gerald Combs * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License * as published by the Free Software Foundation; either version 2 * of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #ifdef HAVE_CONFIG_H #include "config.h" #endif #include #include #include #include "packet-dcerpc.h" #include "packet-dcerpc-nt.h" #include "packet-windows-common.h" #include "packet-dcerpc-atsvc.h" static int proto_atsvc = -1; /* INCLUDED FILE : ETH_HF */ static int hf_atsvc_job_time = -1; static int hf_atsvc_job_id = -1; static int hf_atsvc_opnum = -1; static int hf_atsvc_rc = -1; static int hf_atsvc_DaysOfMonth_First = -1; static int hf_atsvc_DaysOfMonth_Second = -1; static int hf_atsvc_DaysOfMonth_Third = -1; static int hf_atsvc_DaysOfMonth_Fourth = -1; static int hf_atsvc_DaysOfMonth_Fifth = -1; static int hf_atsvc_DaysOfMonth_Sixth = -1; static int hf_atsvc_DaysOfMonth_Seventh = -1; static int hf_atsvc_DaysOfMonth_Eight = -1; static int hf_atsvc_DaysOfMonth_Ninth = -1; static int hf_atsvc_DaysOfMonth_Tenth = -1; static int hf_atsvc_DaysOfMonth_Eleventh = -1; static int hf_atsvc_DaysOfMonth_Twelfth = -1; static int hf_atsvc_DaysOfMonth_Thitteenth = -1; static int hf_atsvc_DaysOfMonth_Fourteenth = -1; static int hf_atsvc_DaysOfMonth_Fifteenth = -1; static int hf_atsvc_DaysOfMonth_Sixteenth = -1; static int hf_atsvc_DaysOfMonth_Seventeenth = -1; static int hf_atsvc_DaysOfMonth_Eighteenth = -1; static int hf_atsvc_DaysOfMonth_Ninteenth = -1; static int hf_atsvc_DaysOfMonth_Twentyth = -1; static int hf_atsvc_DaysOfMonth_Twentyfirst = -1; static int hf_atsvc_DaysOfMonth_Twentysecond = -1; static int hf_atsvc_DaysOfMonth_Twentythird = -1; static int hf_atsvc_DaysOfMonth_Twentyfourth = -1; static int hf_atsvc_DaysOfMonth_Twentyfifth = -1; static int hf_atsvc_DaysOfMonth_Twentysixth = -1; static int hf_atsvc_DaysOfMonth_Twentyseventh = -1; static int hf_atsvc_DaysOfMonth_Twentyeighth = -1; static int hf_atsvc_DaysOfMonth_Twentyninth = -1; static int hf_atsvc_DaysOfMonth_Thirtieth = -1; static int hf_atsvc_DaysOfMonth_Thirtyfirst = -1; static int hf_atsvc_DaysOfWeek_Monday = -1; static int hf_atsvc_DaysOfWeek_Tuesday = -1; static int hf_atsvc_DaysOfWeek_Wednesday = -1; static int hf_atsvc_DaysOfWeek_Thursday = -1; static int hf_atsvc_DaysOfWeek_Friday = -1; static int hf_atsvc_DaysOfWeek_Saturday = -1; static int hf_atsvc_DaysOfWeek_Sunday = -1; static int hf_atsvc_Flags_JOB_RUN_PERIODICALLY = -1; static int hf_atsvc_Flags_JOB_EXEC_ERROR = -1; static int hf_atsvc_Flags_JOB_RUNS_TODAY = -1; static int hf_atsvc_Flags_JOB_ADD_CURRENT_DATE = -1; static int hf_atsvc_Flags_JOB_NONINTERACTIVE = -1; static int hf_atsvc_JobInfo_days_of_month = -1; static int hf_atsvc_JobInfo_days_of_week = -1; static int hf_atsvc_JobInfo_flags = -1; static int hf_atsvc_JobInfo_command = -1; static int hf_atsvc_JobAdd_servername = -1; static int hf_atsvc_JobAdd_job_info = -1; static int hf_atsvc_JobDel_servername = -1; static int hf_atsvc_JobDel_min_job_id = -1; static int hf_atsvc_JobDel_max_job_id = -1; static int hf_atsvc_JobEnumInfo_days_of_month = -1; static int hf_atsvc_JobEnumInfo_days_of_week = -1; static int hf_atsvc_JobEnumInfo_flags = -1; static int hf_atsvc_JobEnumInfo_command = -1; static int hf_atsvc_enum_ctr_entries_read = -1; static int hf_atsvc_enum_ctr_first_entry = -1; static int hf_atsvc_JobEnum_servername = -1; static int hf_atsvc_JobEnum_ctr = -1; static int hf_atsvc_JobEnum_preferred_max_len = -1; static int hf_atsvc_JobEnum_total_entries = -1; static int hf_atsvc_JobEnum_resume_handle = -1; static int hf_atsvc_JobGetInfo_servername = -1; static int hf_atsvc_JobGetInfo_job_info = -1; /* END OF INCLUDED FILE : ETH_HF */ /* INCLUDED FILE : ETH_ETT */ static gint ett_atsvc = -1; static gint ett_atsvc_DaysOfMonth = -1; static gint ett_atsvc_DaysOfWeek = -1; static gint ett_atsvc_Flags = -1; static gint ett_atsvc_JobInfo = -1; static gint ett_atsvc_JobEnumInfo = -1; static gint ett_atsvc_enum_ctr = -1; /* END OF INCLUDED FILE : ETH_ETT */ static int atsvc_dissect_JobTime(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep, int hf_index, guint32 param _U_) { guint32 job_time; guint8 job_hour, job_min, job_sec; guint16 job_msec; offset = dissect_ndr_uint32(tvb, offset, pinfo, NULL, drep, -1, &job_time); job_hour = job_time / 3600000; job_min = (job_time - job_hour * 3600000) / 60000; job_sec = (job_time - (job_hour * 3600000) - (job_min * 60000)) / 1000; job_msec = (job_time - (job_hour * 3600000) - (job_min * 60000) - (job_sec * 1000)); proto_tree_add_uint_format(tree, hf_index, tvb, offset - 4, 4, job_time, "Time: %02d:%02d:%02d:%03d", job_hour, job_min, job_sec, job_msec); return offset; } /* INCLUDED FILE : ETH_CODE */ static e_uuid_t uuid_dcerpc_atsvc = { 0x1ff70682, 0x0a51, 0x30e8, { 0x07, 0x6d, 0x74, 0x0b, 0xe8, 0xce, 0xe9, 0x8b} }; static guint16 ver_atsvc = 1; static const true_false_string First_tfs = { "First is SET", "First is NOT set" }; static const true_false_string Second_tfs = { "Second is SET", "Second is NOT set" }; static const true_false_string Third_tfs = { "Third is SET", "Third is NOT set" }; static const true_false_string Fourth_tfs = { "Fourth is SET", "Fourth is NOT set" }; static const true_false_string Fifth_tfs = { "Fifth is SET", "Fifth is NOT set" }; static const true_false_string Sixth_tfs = { "Sixth is SET", "Sixth is NOT set" }; static const true_false_string Seventh_tfs = { "Seventh is SET", "Seventh is NOT set" }; static const true_false_string Eight_tfs = { "Eight is SET", "Eight is NOT set" }; static const true_false_string Ninth_tfs = { "Ninth is SET", "Ninth is NOT set" }; static const true_false_string Tenth_tfs = { "Tenth is SET", "Tenth is NOT set" }; static const true_false_string Eleventh_tfs = { "Eleventh is SET", "Eleventh is NOT set" }; static const true_false_string Twelfth_tfs = { "Twelfth is SET", "Twelfth is NOT set" }; static const true_false_string Thitteenth_tfs = { "Thitteenth is SET", "Thitteenth is NOT set" }; static const true_false_string Fourteenth_tfs = { "Fourteenth is SET", "Fourteenth is NOT set" }; static const true_false_string Fifteenth_tfs = { "Fifteenth is SET", "Fifteenth is NOT set" }; static const true_false_string Sixteenth_tfs = { "Sixteenth is SET", "Sixteenth is NOT set" }; static const true_false_string Seventeenth_tfs = { "Seventeenth is SET", "Seventeenth is NOT set" }; static const true_false_string Eighteenth_tfs = { "Eighteenth is SET", "Eighteenth is NOT set" }; static const true_false_string Ninteenth_tfs = { "Ninteenth is SET", "Ninteenth is NOT set" }; static const true_false_string Twentyth_tfs = { "Twentyth is SET", "Twentyth is NOT set" }; static const true_false_string Twentyfirst_tfs = { "Twentyfirst is SET", "Twentyfirst is NOT set" }; static const true_false_string Twentysecond_tfs = { "Twentysecond is SET", "Twentysecond is NOT set" }; static const true_false_string Twentythird_tfs = { "Twentythird is SET", "Twentythird is NOT set" }; static const true_false_string Twentyfourth_tfs = { "Twentyfourth is SET", "Twentyfourth is NOT set" }; static const true_false_string Twentyfifth_tfs = { "Twentyfifth is SET", "Twentyfifth is NOT set" }; static const true_false_string Twentysixth_tfs = { "Twentysixth is SET", "Twentysixth is NOT set" }; static const true_false_string Twentyseventh_tfs = { "Twentyseventh is SET", "Twentyseventh is NOT set" }; static const true_false_string Twentyeighth_tfs = { "Twentyeighth is SET", "Twentyeighth is NOT set" }; static const true_false_string Twentyninth_tfs = { "Twentyninth is SET", "Twentyninth is NOT set" }; static const true_false_string Thirtieth_tfs = { "Thirtieth is SET", "Thirtieth is NOT set" }; static const true_false_string Thirtyfirst_tfs = { "Thirtyfirst is SET", "Thirtyfirst is NOT set" }; int atsvc_dissect_DaysOfMonth(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *parent_tree, guint8 *drep, int hf_index, guint32 param _U_) { proto_item *item=NULL; proto_tree *tree=NULL; guint32 flags; ALIGN_TO_4_BYTES; if(parent_tree){ item=proto_tree_add_item(parent_tree, hf_index, tvb, offset, 4, TRUE); tree=proto_item_add_subtree(item, ett_atsvc_DaysOfMonth); } offset=dissect_ndr_uint32(tvb, offset, pinfo, NULL, drep, -1, &flags); proto_tree_add_boolean(tree, hf_atsvc_DaysOfMonth_First, tvb, offset-4, 4, flags); if(flags&0x00000001){ proto_item_append_text(item, " First"); } flags&=(~0x00000001); proto_tree_add_boolean(tree, hf_atsvc_DaysOfMonth_Second, tvb, offset-4, 4, flags); if(flags&0x00000002){ proto_item_append_text(item, " Second"); } flags&=(~0x00000002); proto_tree_add_boolean(tree, hf_atsvc_DaysOfMonth_Third, tvb, offset-4, 4, flags); if(flags&0x00000004){ proto_item_append_text(item, " Third"); } flags&=(~0x00000004); proto_tree_add_boolean(tree, hf_atsvc_DaysOfMonth_Fourth, tvb, offset-4, 4, flags); if(flags&0x00000008){ proto_item_append_text(item, " Fourth"); } flags&=(~0x00000008); proto_tree_add_boolean(tree, hf_atsvc_DaysOfMonth_Fifth, tvb, offset-4, 4, flags); if(flags&0x00000010){ proto_item_append_text(item, " Fifth"); } flags&=(~0x00000010); proto_tree_add_boolean(tree, hf_atsvc_DaysOfMonth_Sixth, tvb, offset-4, 4, flags); if(flags&0x00000020){ proto_item_append_text(item, " Sixth"); } flags&=(~0x00000020); proto_tree_add_boolean(tree, hf_atsvc_DaysOfMonth_Seventh, tvb, offset-4, 4, flags); if(flags&0x00000040){ proto_item_append_text(item, " Seventh"); } flags&=(~0x00000040); proto_tree_add_boolean(tree, hf_atsvc_DaysOfMonth_Eight, tvb, offset-4, 4, flags); if(flags&0x00000080){ proto_item_append_text(item, " Eight"); } flags&=(~0x00000080); proto_tree_add_boolean(tree, hf_atsvc_DaysOfMonth_Ninth, tvb, offset-4, 4, flags); if(flags&0x00000100){ proto_item_append_text(item, " Ninth"); } flags&=(~0x00000100); proto_tree_add_boolean(tree, hf_atsvc_DaysOfMonth_Tenth, tvb, offset-4, 4, flags); if(flags&0x00000200){ proto_item_append_text(item, " Tenth"); } flags&=(~0x00000200); proto_tree_add_boolean(tree, hf_atsvc_DaysOfMonth_Eleventh, tvb, offset-4, 4, flags); if(flags&0x00000400){ proto_item_append_text(item, " Eleventh"); } flags&=(~0x00000400); proto_tree_add_boolean(tree, hf_atsvc_DaysOfMonth_Twelfth, tvb, offset-4, 4, flags); if(flags&0x00000800){ proto_item_append_text(item, " Twelfth"); } flags&=(~0x00000800); proto_tree_add_boolean(tree, hf_atsvc_DaysOfMonth_Thitteenth, tvb, offset-4, 4, flags); if(flags&0x00001000){ proto_item_append_text(item, " Thitteenth"); } flags&=(~0x00001000); proto_tree_add_boolean(tree, hf_atsvc_DaysOfMonth_Fourteenth, tvb, offset-4, 4, flags); if(flags&0x00002000){ proto_item_append_text(item, " Fourteenth"); } flags&=(~0x00002000); proto_tree_add_boolean(tree, hf_atsvc_DaysOfMonth_Fifteenth, tvb, offset-4, 4, flags); if(flags&0x00004000){ proto_item_append_text(item, " Fifteenth"); } flags&=(~0x00004000); proto_tree_add_boolean(tree, hf_atsvc_DaysOfMonth_Sixteenth, tvb, offset-4, 4, flags); if(flags&0x00008000){ proto_item_append_text(item, " Sixteenth"); } flags&=(~0x00008000); proto_tree_add_boolean(tree, hf_atsvc_DaysOfMonth_Seventeenth, tvb, offset-4, 4, flags); if(flags&0x00010000){ proto_item_append_text(item, " Seventeenth"); } flags&=(~0x00010000); proto_tree_add_boolean(tree, hf_atsvc_DaysOfMonth_Eighteenth, tvb, offset-4, 4, flags); if(flags&0x00020000){ proto_item_append_text(item, " Eighteenth"); } flags&=(~0x00020000); proto_tree_add_boolean(tree, hf_atsvc_DaysOfMonth_Ninteenth, tvb, offset-4, 4, flags); if(flags&0x00040000){ proto_item_append_text(item, " Ninteenth"); } flags&=(~0x00040000); proto_tree_add_boolean(tree, hf_atsvc_DaysOfMonth_Twentyth, tvb, offset-4, 4, flags); if(flags&0x00080000){ proto_item_append_text(item, " Twentyth"); } flags&=(~0x00080000); proto_tree_add_boolean(tree, hf_atsvc_DaysOfMonth_Twentyfirst, tvb, offset-4, 4, flags); if(flags&0x00100000){ proto_item_append_text(item, " Twentyfirst"); } flags&=(~0x00100000); proto_tree_add_boolean(tree, hf_atsvc_DaysOfMonth_Twentysecond, tvb, offset-4, 4, flags); if(flags&0x00200000){ proto_item_append_text(item, " Twentysecond"); } flags&=(~0x00200000); proto_tree_add_boolean(tree, hf_atsvc_DaysOfMonth_Twentythird, tvb, offset-4, 4, flags); if(flags&0x00400000){ proto_item_append_text(item, " Twentythird"); } flags&=(~0x00400000); proto_tree_add_boolean(tree, hf_atsvc_DaysOfMonth_Twentyfourth, tvb, offset-4, 4, flags); if(flags&0x00800000){ proto_item_append_text(item, " Twentyfourth"); } flags&=(~0x00800000); proto_tree_add_boolean(tree, hf_atsvc_DaysOfMonth_Twentyfifth, tvb, offset-4, 4, flags); if(flags&0x01000000){ proto_item_append_text(item, " Twentyfifth"); } flags&=(~0x01000000); proto_tree_add_boolean(tree, hf_atsvc_DaysOfMonth_Twentysixth, tvb, offset-4, 4, flags); if(flags&0x02000000){ proto_item_append_text(item, " Twentysixth"); } flags&=(~0x02000000); proto_tree_add_boolean(tree, hf_atsvc_DaysOfMonth_Twentyseventh, tvb, offset-4, 4, flags); if(flags&0x04000000){ proto_item_append_text(item, " Twentyseventh"); } flags&=(~0x04000000); proto_tree_add_boolean(tree, hf_atsvc_DaysOfMonth_Twentyeighth, tvb, offset-4, 4, flags); if(flags&0x08000000){ proto_item_append_text(item, " Twentyeighth"); } flags&=(~0x08000000); proto_tree_add_boolean(tree, hf_atsvc_DaysOfMonth_Twentyninth, tvb, offset-4, 4, flags); if(flags&0x10000000){ proto_item_append_text(item, " Twentyninth"); } flags&=(~0x10000000); proto_tree_add_boolean(tree, hf_atsvc_DaysOfMonth_Thirtieth, tvb, offset-4, 4, flags); if(flags&0x20000000){ proto_item_append_text(item, " Thirtieth"); } flags&=(~0x20000000); proto_tree_add_boolean(tree, hf_atsvc_DaysOfMonth_Thirtyfirst, tvb, offset-4, 4, flags); if(flags&0x40000000){ proto_item_append_text(item, " Thirtyfirst"); } flags&=(~0x40000000); if(flags){ proto_item_append_text(item, "UNKNOWN-FLAGS"); } return offset; } static const true_false_string Monday_tfs = { "Monday is SET", "Monday is NOT set" }; static const true_false_string Tuesday_tfs = { "Tuesday is SET", "Tuesday is NOT set" }; static const true_false_string Wednesday_tfs = { "Wednesday is SET", "Wednesday is NOT set" }; static const true_false_string Thursday_tfs = { "Thursday is SET", "Thursday is NOT set" }; static const true_false_string Friday_tfs = { "Friday is SET", "Friday is NOT set" }; static const true_false_string Saturday_tfs = { "Saturday is SET", "Saturday is NOT set" }; static const true_false_string Sunday_tfs = { "Sunday is SET", "Sunday is NOT set" }; int atsvc_dissect_DaysOfWeek(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *parent_tree, guint8 *drep, int hf_index, guint32 param _U_) { proto_item *item=NULL; proto_tree *tree=NULL; guint8 flags; if(parent_tree){ item=proto_tree_add_item(parent_tree, hf_index, tvb, offset, 1, TRUE); tree=proto_item_add_subtree(item, ett_atsvc_DaysOfWeek); } offset=dissect_ndr_uint8(tvb, offset, pinfo, NULL, drep, -1, &flags); proto_tree_add_boolean(tree, hf_atsvc_DaysOfWeek_Monday, tvb, offset-1, 1, flags); if(flags&0x01){ proto_item_append_text(item, " Monday"); } flags&=(~0x01); proto_tree_add_boolean(tree, hf_atsvc_DaysOfWeek_Tuesday, tvb, offset-1, 1, flags); if(flags&0x02){ proto_item_append_text(item, " Tuesday"); } flags&=(~0x02); proto_tree_add_boolean(tree, hf_atsvc_DaysOfWeek_Wednesday, tvb, offset-1, 1, flags); if(flags&0x04){ proto_item_append_text(item, " Wednesday"); } flags&=(~0x04); proto_tree_add_boolean(tree, hf_atsvc_DaysOfWeek_Thursday, tvb, offset-1, 1, flags); if(flags&0x08){ proto_item_append_text(item, " Thursday"); } flags&=(~0x08); proto_tree_add_boolean(tree, hf_atsvc_DaysOfWeek_Friday, tvb, offset-1, 1, flags); if(flags&0x10){ proto_item_append_text(item, " Friday"); } flags&=(~0x10); proto_tree_add_boolean(tree, hf_atsvc_DaysOfWeek_Saturday, tvb, offset-1, 1, flags); if(flags&0x20){ proto_item_append_text(item, " Saturday"); } flags&=(~0x20); proto_tree_add_boolean(tree, hf_atsvc_DaysOfWeek_Sunday, tvb, offset-1, 1, flags); if(flags&0x40){ proto_item_append_text(item, " Sunday"); } flags&=(~0x40); if(flags){ proto_item_append_text(item, "UNKNOWN-FLAGS"); } return offset; } static const true_false_string JOB_RUN_PERIODICALLY_tfs = { "JOB_RUN_PERIODICALLY is SET", "JOB_RUN_PERIODICALLY is NOT set" }; static const true_false_string JOB_EXEC_ERROR_tfs = { "JOB_EXEC_ERROR is SET", "JOB_EXEC_ERROR is NOT set" }; static const true_false_string JOB_RUNS_TODAY_tfs = { "JOB_RUNS_TODAY is SET", "JOB_RUNS_TODAY is NOT set" }; static const true_false_string JOB_ADD_CURRENT_DATE_tfs = { "JOB_ADD_CURRENT_DATE is SET", "JOB_ADD_CURRENT_DATE is NOT set" }; static const true_false_string JOB_NONINTERACTIVE_tfs = { "JOB_NONINTERACTIVE is SET", "JOB_NONINTERACTIVE is NOT set" }; int atsvc_dissect_Flags(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *parent_tree, guint8 *drep, int hf_index, guint32 param _U_) { proto_item *item=NULL; proto_tree *tree=NULL; guint8 flags; if(parent_tree){ item=proto_tree_add_item(parent_tree, hf_index, tvb, offset, 1, TRUE); tree=proto_item_add_subtree(item, ett_atsvc_Flags); } offset=dissect_ndr_uint8(tvb, offset, pinfo, NULL, drep, -1, &flags); proto_tree_add_boolean(tree, hf_atsvc_Flags_JOB_RUN_PERIODICALLY, tvb, offset-1, 1, flags); if(flags&0x01){ proto_item_append_text(item, " JOB_RUN_PERIODICALLY"); } flags&=(~0x01); proto_tree_add_boolean(tree, hf_atsvc_Flags_JOB_EXEC_ERROR, tvb, offset-1, 1, flags); if(flags&0x02){ proto_item_append_text(item, " JOB_EXEC_ERROR"); } flags&=(~0x02); proto_tree_add_boolean(tree, hf_atsvc_Flags_JOB_RUNS_TODAY, tvb, offset-1, 1, flags); if(flags&0x04){ proto_item_append_text(item, " JOB_RUNS_TODAY"); } flags&=(~0x04); proto_tree_add_boolean(tree, hf_atsvc_Flags_JOB_ADD_CURRENT_DATE, tvb, offset-1, 1, flags); if(flags&0x08){ proto_item_append_text(item, " JOB_ADD_CURRENT_DATE"); } flags&=(~0x08); proto_tree_add_boolean(tree, hf_atsvc_Flags_JOB_NONINTERACTIVE, tvb, offset-1, 1, flags); if(flags&0x10){ proto_item_append_text(item, " JOB_NONINTERACTIVE"); } flags&=(~0x10); if(flags){ proto_item_append_text(item, "UNKNOWN-FLAGS"); } return offset; } static int atsvc_dissect_JobInfo_job_time(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) { guint32 param=0; offset=atsvc_dissect_JobTime(tvb, offset, pinfo, tree, drep, hf_atsvc_job_time, param); return offset; } static int atsvc_dissect_JobInfo_days_of_month(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) { guint32 param=0; offset=atsvc_dissect_DaysOfMonth(tvb, offset, pinfo, tree, drep, hf_atsvc_JobInfo_days_of_month, param); return offset; } static int atsvc_dissect_JobInfo_days_of_week(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) { guint32 param=0; offset=atsvc_dissect_DaysOfWeek(tvb, offset, pinfo, tree, drep, hf_atsvc_JobInfo_days_of_week, param); return offset; } static int atsvc_dissect_JobInfo_flags(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) { guint32 param=0; offset=atsvc_dissect_Flags(tvb, offset, pinfo, tree, drep, hf_atsvc_JobInfo_flags, param); return offset; } static int atsvc_dissect_unistr(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep, int hf_index, guint32 param _U_) { offset=dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, 2, hf_index, FALSE, NULL); return offset; } static int atsvc_dissect_JobInfo_command(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) { guint32 param=0; offset=atsvc_dissect_unistr(tvb, offset, pinfo, tree, drep, hf_atsvc_JobInfo_command, param); return offset; } static int unique_atsvc_dissect_JobInfo_command(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) { offset=dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, atsvc_dissect_JobInfo_command, NDR_POINTER_UNIQUE, "command", -1); return offset; } int atsvc_dissect_JobInfo(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *parent_tree, guint8 *drep, int hf_index, guint32 param _U_) { proto_item *item=NULL; proto_tree *tree=NULL; int old_offset; ALIGN_TO_4_BYTES; old_offset=offset; if(parent_tree){ item=proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE); tree=proto_item_add_subtree(item, ett_atsvc_JobInfo); } offset=atsvc_dissect_JobInfo_job_time(tvb, offset, pinfo, tree, drep); offset=atsvc_dissect_JobInfo_days_of_month(tvb, offset, pinfo, tree, drep); offset=atsvc_dissect_JobInfo_days_of_week(tvb, offset, pinfo, tree, drep); offset=atsvc_dissect_JobInfo_flags(tvb, offset, pinfo, tree, drep); offset=unique_atsvc_dissect_JobInfo_command(tvb, offset, pinfo, tree, drep); proto_item_set_len(item, offset-old_offset); return offset; } static int atsvc_dissect_JobAdd_servername(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) { guint32 param=0; offset=atsvc_dissect_unistr(tvb, offset, pinfo, tree, drep, hf_atsvc_JobAdd_servername, param); return offset; } static int unique_atsvc_dissect_JobAdd_servername(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) { offset=dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, atsvc_dissect_JobAdd_servername, NDR_POINTER_UNIQUE, "servername", -1); return offset; } static int atsvc_dissect_JobAdd_job_info(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) { guint32 param=0; offset=atsvc_dissect_JobInfo(tvb, offset, pinfo, tree, drep, hf_atsvc_JobAdd_job_info, param); return offset; } static int ref_atsvc_dissect_JobAdd_job_info(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) { offset=dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, atsvc_dissect_JobAdd_job_info, NDR_POINTER_REF, "job_info", -1); return offset; } static int atsvc_dissect_uint32(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep, int hf_index, guint32 param _U_) { offset=dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, NULL); return offset; } static int atsvc_dissect_JobAdd_job_id(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) { guint32 param=0; offset=atsvc_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_atsvc_job_id, param); return offset; } static int atsvc_dissect_JobAdd_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_) { offset=unique_atsvc_dissect_JobAdd_servername(tvb, offset, pinfo, tree, drep); offset=dissect_deferred_pointers(pinfo, tvb, offset, drep); offset=ref_atsvc_dissect_JobAdd_job_info(tvb, offset, pinfo, tree, drep); offset=dissect_deferred_pointers(pinfo, tvb, offset, drep); return offset; } static int atsvc_dissect_JobAdd_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_) { offset=atsvc_dissect_JobAdd_job_id(tvb, offset, pinfo, tree, drep); offset=dissect_deferred_pointers(pinfo, tvb, offset, drep); offset=dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_atsvc_rc, NULL); return offset; } static int atsvc_dissect_JobDel_servername(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) { guint32 param=0; offset=atsvc_dissect_unistr(tvb, offset, pinfo, tree, drep, hf_atsvc_JobDel_servername, param); return offset; } static int unique_atsvc_dissect_JobDel_servername(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) { offset=dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, atsvc_dissect_JobDel_servername, NDR_POINTER_UNIQUE, "servername", -1); return offset; } static int atsvc_dissect_JobDel_min_job_id(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) { guint32 param=0; offset=atsvc_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_atsvc_JobDel_min_job_id, param); return offset; } static int atsvc_dissect_JobDel_max_job_id(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) { guint32 param=0; offset=atsvc_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_atsvc_JobDel_max_job_id, param); return offset; } static int atsvc_dissect_JobDel_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_) { offset=unique_atsvc_dissect_JobDel_servername(tvb, offset, pinfo, tree, drep); offset=dissect_deferred_pointers(pinfo, tvb, offset, drep); offset=atsvc_dissect_JobDel_min_job_id(tvb, offset, pinfo, tree, drep); offset=dissect_deferred_pointers(pinfo, tvb, offset, drep); offset=atsvc_dissect_JobDel_max_job_id(tvb, offset, pinfo, tree, drep); offset=dissect_deferred_pointers(pinfo, tvb, offset, drep); return offset; } static int atsvc_dissect_JobDel_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_) { offset=dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_atsvc_rc, NULL); return offset; } static int atsvc_dissect_JobEnumInfo_job_id(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) { guint32 param=0; offset=atsvc_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_atsvc_job_id, param); return offset; } static int atsvc_dissect_JobEnumInfo_job_time(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) { guint32 param=0; offset=atsvc_dissect_JobTime(tvb, offset, pinfo, tree, drep, hf_atsvc_job_time, param); return offset; } static int atsvc_dissect_JobEnumInfo_days_of_month(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) { guint32 param=0; offset=atsvc_dissect_DaysOfMonth(tvb, offset, pinfo, tree, drep, hf_atsvc_JobEnumInfo_days_of_month, param); return offset; } static int atsvc_dissect_JobEnumInfo_days_of_week(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) { guint32 param=0; offset=atsvc_dissect_DaysOfWeek(tvb, offset, pinfo, tree, drep, hf_atsvc_JobEnumInfo_days_of_week, param); return offset; } static int atsvc_dissect_JobEnumInfo_flags(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) { guint32 param=0; offset=atsvc_dissect_Flags(tvb, offset, pinfo, tree, drep, hf_atsvc_JobEnumInfo_flags, param); return offset; } static int atsvc_dissect_JobEnumInfo_command(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) { guint32 param=0; offset=atsvc_dissect_unistr(tvb, offset, pinfo, tree, drep, hf_atsvc_JobEnumInfo_command, param); return offset; } static int unique_atsvc_dissect_JobEnumInfo_command(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) { offset=dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, atsvc_dissect_JobEnumInfo_command, NDR_POINTER_UNIQUE, "command", -1); return offset; } int atsvc_dissect_JobEnumInfo(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *parent_tree, guint8 *drep, int hf_index, guint32 param _U_) { proto_item *item=NULL; proto_tree *tree=NULL; int old_offset; ALIGN_TO_4_BYTES; old_offset=offset; if(parent_tree){ item=proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE); tree=proto_item_add_subtree(item, ett_atsvc_JobEnumInfo); } offset=atsvc_dissect_JobEnumInfo_job_id(tvb, offset, pinfo, tree, drep); offset=atsvc_dissect_JobEnumInfo_job_time(tvb, offset, pinfo, tree, drep); offset=atsvc_dissect_JobEnumInfo_days_of_month(tvb, offset, pinfo, tree, drep); offset=atsvc_dissect_JobEnumInfo_days_of_week(tvb, offset, pinfo, tree, drep); offset=atsvc_dissect_JobEnumInfo_flags(tvb, offset, pinfo, tree, drep); offset=unique_atsvc_dissect_JobEnumInfo_command(tvb, offset, pinfo, tree, drep); proto_item_set_len(item, offset-old_offset); return offset; } static int atsvc_dissect_enum_ctr_entries_read(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) { guint32 param=0; offset=atsvc_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_atsvc_enum_ctr_entries_read, param); return offset; } static int atsvc_dissect_enum_ctr_first_entry(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) { guint32 param=0; offset=atsvc_dissect_JobEnumInfo(tvb, offset, pinfo, tree, drep, hf_atsvc_enum_ctr_first_entry, param); return offset; } static int ucarray_atsvc_dissect_enum_ctr_first_entry(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) { offset=dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, atsvc_dissect_enum_ctr_first_entry); return offset; } static int unique_ucarray_atsvc_dissect_enum_ctr_first_entry(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) { offset=dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, ucarray_atsvc_dissect_enum_ctr_first_entry, NDR_POINTER_UNIQUE, "first_entry", -1); return offset; } int atsvc_dissect_enum_ctr(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *parent_tree, guint8 *drep, int hf_index, guint32 param _U_) { proto_item *item=NULL; proto_tree *tree=NULL; int old_offset; ALIGN_TO_4_BYTES; old_offset=offset; if(parent_tree){ item=proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE); tree=proto_item_add_subtree(item, ett_atsvc_enum_ctr); } offset=atsvc_dissect_enum_ctr_entries_read(tvb, offset, pinfo, tree, drep); offset=unique_ucarray_atsvc_dissect_enum_ctr_first_entry(tvb, offset, pinfo, tree, drep); proto_item_set_len(item, offset-old_offset); return offset; } static int atsvc_dissect_JobEnum_servername(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) { guint32 param=0; offset=atsvc_dissect_unistr(tvb, offset, pinfo, tree, drep, hf_atsvc_JobEnum_servername, param); return offset; } static int unique_atsvc_dissect_JobEnum_servername(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) { offset=dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, atsvc_dissect_JobEnum_servername, NDR_POINTER_UNIQUE, "servername", -1); return offset; } static int atsvc_dissect_JobEnum_ctr(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) { guint32 param=0; offset=atsvc_dissect_enum_ctr(tvb, offset, pinfo, tree, drep, hf_atsvc_JobEnum_ctr, param); return offset; } static int ref_atsvc_dissect_JobEnum_ctr(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) { offset=dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, atsvc_dissect_JobEnum_ctr, NDR_POINTER_REF, "ctr", -1); return offset; } static int atsvc_dissect_JobEnum_preferred_max_len(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) { guint32 param=0; offset=atsvc_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_atsvc_JobEnum_preferred_max_len, param); return offset; } static int atsvc_dissect_JobEnum_total_entries(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) { guint32 param=0; offset=atsvc_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_atsvc_JobEnum_total_entries, param); return offset; } static int atsvc_dissect_JobEnum_resume_handle(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) { guint32 param=0; offset=atsvc_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_atsvc_JobEnum_resume_handle, param); return offset; } static int unique_atsvc_dissect_JobEnum_resume_handle(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) { offset=dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, atsvc_dissect_JobEnum_resume_handle, NDR_POINTER_UNIQUE, "resume_handle", -1); return offset; } static int atsvc_dissect_JobEnum_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_) { offset=unique_atsvc_dissect_JobEnum_servername(tvb, offset, pinfo, tree, drep); offset=dissect_deferred_pointers(pinfo, tvb, offset, drep); offset=ref_atsvc_dissect_JobEnum_ctr(tvb, offset, pinfo, tree, drep); offset=dissect_deferred_pointers(pinfo, tvb, offset, drep); offset=atsvc_dissect_JobEnum_preferred_max_len(tvb, offset, pinfo, tree, drep); offset=dissect_deferred_pointers(pinfo, tvb, offset, drep); offset=unique_atsvc_dissect_JobEnum_resume_handle(tvb, offset, pinfo, tree, drep); offset=dissect_deferred_pointers(pinfo, tvb, offset, drep); return offset; } static int atsvc_dissect_JobEnum_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_) { offset=ref_atsvc_dissect_JobEnum_ctr(tvb, offset, pinfo, tree, drep); offset=dissect_deferred_pointers(pinfo, tvb, offset, drep); offset=atsvc_dissect_JobEnum_total_entries(tvb, offset, pinfo, tree, drep); offset=dissect_deferred_pointers(pinfo, tvb, offset, drep); offset=unique_atsvc_dissect_JobEnum_resume_handle(tvb, offset, pinfo, tree, drep); offset=dissect_deferred_pointers(pinfo, tvb, offset, drep); offset=dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_atsvc_rc, NULL); return offset; } static int atsvc_dissect_JobGetInfo_servername(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) { guint32 param=0; offset=atsvc_dissect_unistr(tvb, offset, pinfo, tree, drep, hf_atsvc_JobGetInfo_servername, param); return offset; } static int unique_atsvc_dissect_JobGetInfo_servername(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) { offset=dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, atsvc_dissect_JobGetInfo_servername, NDR_POINTER_UNIQUE, "servername", -1); return offset; } static int atsvc_dissect_JobGetInfo_job_id(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) { guint32 param=0; offset=atsvc_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_atsvc_job_id, param); return offset; } static int atsvc_dissect_JobGetInfo_job_info(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) { guint32 param=0; offset=atsvc_dissect_JobInfo(tvb, offset, pinfo, tree, drep, hf_atsvc_JobGetInfo_job_info, param); return offset; } static int unique_atsvc_dissect_JobGetInfo_job_info(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) { offset=dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, atsvc_dissect_JobGetInfo_job_info, NDR_POINTER_UNIQUE, "job_info", -1); return offset; } static int atsvc_dissect_JobGetInfo_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_) { offset=unique_atsvc_dissect_JobGetInfo_servername(tvb, offset, pinfo, tree, drep); offset=dissect_deferred_pointers(pinfo, tvb, offset, drep); offset=atsvc_dissect_JobGetInfo_job_id(tvb, offset, pinfo, tree, drep); offset=dissect_deferred_pointers(pinfo, tvb, offset, drep); return offset; } static int atsvc_dissect_JobGetInfo_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_) { offset=unique_atsvc_dissect_JobGetInfo_job_info(tvb, offset, pinfo, tree, drep); offset=dissect_deferred_pointers(pinfo, tvb, offset, drep); offset=dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_atsvc_rc, NULL); return offset; } /* END OF INCLUDED FILE : ETH_CODE */ void proto_register_atsvc(void) { static hf_register_info hf[] = { /* INCLUDED FILE : ETH_HFARR */ { &hf_atsvc_job_time, { "JobTime", "atsvc.JobTime", FT_UINT32, BASE_HEX, NULL, 0, "Job Time", HFILL }}, { &hf_atsvc_job_id, { "Job ID", "atsvc.JobId", FT_UINT32, BASE_HEX, NULL, 0, "Job Id", HFILL }}, { &hf_atsvc_opnum, { "Operation", "atsvc.opnum", FT_UINT16, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_atsvc_rc, { "Return code", "atsvc.rc", FT_UINT32, BASE_HEX, VALS(NT_errors), 0, "", HFILL }}, { &hf_atsvc_DaysOfMonth_First, { "First", "atsvc.DaysOfMonth.First", FT_BOOLEAN, 32, TFS(&First_tfs), 0x00000001, "", HFILL }}, { &hf_atsvc_DaysOfMonth_Second, { "Second", "atsvc.DaysOfMonth.Second", FT_BOOLEAN, 32, TFS(&Second_tfs), 0x00000002, "", HFILL }}, { &hf_atsvc_DaysOfMonth_Third, { "Third", "atsvc.DaysOfMonth.Third", FT_BOOLEAN, 32, TFS(&Third_tfs), 0x00000004, "", HFILL }}, { &hf_atsvc_DaysOfMonth_Fourth, { "Fourth", "atsvc.DaysOfMonth.Fourth", FT_BOOLEAN, 32, TFS(&Fourth_tfs), 0x00000008, "", HFILL }}, { &hf_atsvc_DaysOfMonth_Fifth, { "Fifth", "atsvc.DaysOfMonth.Fifth", FT_BOOLEAN, 32, TFS(&Fifth_tfs), 0x00000010, "", HFILL }}, { &hf_atsvc_DaysOfMonth_Sixth, { "Sixth", "atsvc.DaysOfMonth.Sixth", FT_BOOLEAN, 32, TFS(&Sixth_tfs), 0x00000020, "", HFILL }}, { &hf_atsvc_DaysOfMonth_Seventh, { "Seventh", "atsvc.DaysOfMonth.Seventh", FT_BOOLEAN, 32, TFS(&Seventh_tfs), 0x00000040, "", HFILL }}, { &hf_atsvc_DaysOfMonth_Eight, { "Eight", "atsvc.DaysOfMonth.Eight", FT_BOOLEAN, 32, TFS(&Eight_tfs), 0x00000080, "", HFILL }}, { &hf_atsvc_DaysOfMonth_Ninth, { "Ninth", "atsvc.DaysOfMonth.Ninth", FT_BOOLEAN, 32, TFS(&Ninth_tfs), 0x00000100, "", HFILL }}, { &hf_atsvc_DaysOfMonth_Tenth, { "Tenth", "atsvc.DaysOfMonth.Tenth", FT_BOOLEAN, 32, TFS(&Tenth_tfs), 0x00000200, "", HFILL }}, { &hf_atsvc_DaysOfMonth_Eleventh, { "Eleventh", "atsvc.DaysOfMonth.Eleventh", FT_BOOLEAN, 32, TFS(&Eleventh_tfs), 0x00000400, "", HFILL }}, { &hf_atsvc_DaysOfMonth_Twelfth, { "Twelfth", "atsvc.DaysOfMonth.Twelfth", FT_BOOLEAN, 32, TFS(&Twelfth_tfs), 0x00000800, "", HFILL }}, { &hf_atsvc_DaysOfMonth_Thitteenth, { "Thitteenth", "atsvc.DaysOfMonth.Thitteenth", FT_BOOLEAN, 32, TFS(&Thitteenth_tfs), 0x00001000, "", HFILL }}, { &hf_atsvc_DaysOfMonth_Fourteenth, { "Fourteenth", "atsvc.DaysOfMonth.Fourteenth", FT_BOOLEAN, 32, TFS(&Fourteenth_tfs), 0x00002000, "", HFILL }}, { &hf_atsvc_DaysOfMonth_Fifteenth, { "Fifteenth", "atsvc.DaysOfMonth.Fifteenth", FT_BOOLEAN, 32, TFS(&Fifteenth_tfs), 0x00004000, "", HFILL }}, { &hf_atsvc_DaysOfMonth_Sixteenth, { "Sixteenth", "atsvc.DaysOfMonth.Sixteenth", FT_BOOLEAN, 32, TFS(&Sixteenth_tfs), 0x00008000, "", HFILL }}, { &hf_atsvc_DaysOfMonth_Seventeenth, { "Seventeenth", "atsvc.DaysOfMonth.Seventeenth", FT_BOOLEAN, 32, TFS(&Seventeenth_tfs), 0x00010000, "", HFILL }}, { &hf_atsvc_DaysOfMonth_Eighteenth, { "Eighteenth", "atsvc.DaysOfMonth.Eighteenth", FT_BOOLEAN, 32, TFS(&Eighteenth_tfs), 0x00020000, "", HFILL }}, { &hf_atsvc_DaysOfMonth_Ninteenth, { "Ninteenth", "atsvc.DaysOfMonth.Ninteenth", FT_BOOLEAN, 32, TFS(&Ninteenth_tfs), 0x00040000, "", HFILL }}, { &hf_atsvc_DaysOfMonth_Twentyth, { "Twentyth", "atsvc.DaysOfMonth.Twentyth", FT_BOOLEAN, 32, TFS(&Twentyth_tfs), 0x00080000, "", HFILL }}, { &hf_atsvc_DaysOfMonth_Twentyfirst, { "Twentyfirst", "atsvc.DaysOfMonth.Twentyfirst", FT_BOOLEAN, 32, TFS(&Twentyfirst_tfs), 0x00100000, "", HFILL }}, { &hf_atsvc_DaysOfMonth_Twentysecond, { "Twentysecond", "atsvc.DaysOfMonth.Twentysecond", FT_BOOLEAN, 32, TFS(&Twentysecond_tfs), 0x00200000, "", HFILL }}, { &hf_atsvc_DaysOfMonth_Twentythird, { "Twentythird", "atsvc.DaysOfMonth.Twentythird", FT_BOOLEAN, 32, TFS(&Twentythird_tfs), 0x00400000, "", HFILL }}, { &hf_atsvc_DaysOfMonth_Twentyfourth, { "Twentyfourth", "atsvc.DaysOfMonth.Twentyfourth", FT_BOOLEAN, 32, TFS(&Twentyfourth_tfs), 0x00800000, "", HFILL }}, { &hf_atsvc_DaysOfMonth_Twentyfifth, { "Twentyfifth", "atsvc.DaysOfMonth.Twentyfifth", FT_BOOLEAN, 32, TFS(&Twentyfifth_tfs), 0x01000000, "", HFILL }}, { &hf_atsvc_DaysOfMonth_Twentysixth, { "Twentysixth", "atsvc.DaysOfMonth.Twentysixth", FT_BOOLEAN, 32, TFS(&Twentysixth_tfs), 0x02000000, "", HFILL }}, { &hf_atsvc_DaysOfMonth_Twentyseventh, { "Twentyseventh", "atsvc.DaysOfMonth.Twentyseventh", FT_BOOLEAN, 32, TFS(&Twentyseventh_tfs), 0x04000000, "", HFILL }}, { &hf_atsvc_DaysOfMonth_Twentyeighth, { "Twentyeighth", "atsvc.DaysOfMonth.Twentyeighth", FT_BOOLEAN, 32, TFS(&Twentyeighth_tfs), 0x08000000, "", HFILL }}, { &hf_atsvc_DaysOfMonth_Twentyninth, { "Twentyninth", "atsvc.DaysOfMonth.Twentyninth", FT_BOOLEAN, 32, TFS(&Twentyninth_tfs), 0x10000000, "", HFILL }}, { &hf_atsvc_DaysOfMonth_Thirtieth, { "Thirtieth", "atsvc.DaysOfMonth.Thirtieth", FT_BOOLEAN, 32, TFS(&Thirtieth_tfs), 0x20000000, "", HFILL }}, { &hf_atsvc_DaysOfMonth_Thirtyfirst, { "Thirtyfirst", "atsvc.DaysOfMonth.Thirtyfirst", FT_BOOLEAN, 32, TFS(&Thirtyfirst_tfs), 0x40000000, "", HFILL }}, { &hf_atsvc_DaysOfWeek_Monday, { "Monday", "atsvc.DaysOfWeek.Monday", FT_BOOLEAN, 8, TFS(&Monday_tfs), 0x01, "", HFILL }}, { &hf_atsvc_DaysOfWeek_Tuesday, { "Tuesday", "atsvc.DaysOfWeek.Tuesday", FT_BOOLEAN, 8, TFS(&Tuesday_tfs), 0x02, "", HFILL }}, { &hf_atsvc_DaysOfWeek_Wednesday, { "Wednesday", "atsvc.DaysOfWeek.Wednesday", FT_BOOLEAN, 8, TFS(&Wednesday_tfs), 0x04, "", HFILL }}, { &hf_atsvc_DaysOfWeek_Thursday, { "Thursday", "atsvc.DaysOfWeek.Thursday", FT_BOOLEAN, 8, TFS(&Thursday_tfs), 0x08, "", HFILL }}, { &hf_atsvc_DaysOfWeek_Friday, { "Friday", "atsvc.DaysOfWeek.Friday", FT_BOOLEAN, 8, TFS(&Friday_tfs), 0x10, "", HFILL }}, { &hf_atsvc_DaysOfWeek_Saturday, { "Saturday", "atsvc.DaysOfWeek.Saturday", FT_BOOLEAN, 8, TFS(&Saturday_tfs), 0x20, "", HFILL }}, { &hf_atsvc_DaysOfWeek_Sunday, { "Sunday", "atsvc.DaysOfWeek.Sunday", FT_BOOLEAN, 8, TFS(&Sunday_tfs), 0x40, "", HFILL }}, { &hf_atsvc_Flags_JOB_RUN_PERIODICALLY, { "JOB_RUN_PERIODICALLY", "atsvc.Flags.JOB_RUN_PERIODICALLY", FT_BOOLEAN, 8, TFS(&JOB_RUN_PERIODICALLY_tfs), 0x01, "", HFILL }}, { &hf_atsvc_Flags_JOB_EXEC_ERROR, { "JOB_EXEC_ERROR", "atsvc.Flags.JOB_EXEC_ERROR", FT_BOOLEAN, 8, TFS(&JOB_EXEC_ERROR_tfs), 0x02, "", HFILL }}, { &hf_atsvc_Flags_JOB_RUNS_TODAY, { "JOB_RUNS_TODAY", "atsvc.Flags.JOB_RUNS_TODAY", FT_BOOLEAN, 8, TFS(&JOB_RUNS_TODAY_tfs), 0x04, "", HFILL }}, { &hf_atsvc_Flags_JOB_ADD_CURRENT_DATE, { "JOB_ADD_CURRENT_DATE", "atsvc.Flags.JOB_ADD_CURRENT_DATE", FT_BOOLEAN, 8, TFS(&JOB_ADD_CURRENT_DATE_tfs), 0x08, "", HFILL }}, { &hf_atsvc_Flags_JOB_NONINTERACTIVE, { "JOB_NONINTERACTIVE", "atsvc.Flags.JOB_NONINTERACTIVE", FT_BOOLEAN, 8, TFS(&JOB_NONINTERACTIVE_tfs), 0x10, "", HFILL }}, { &hf_atsvc_JobInfo_days_of_month, { "days_of_month", "atsvc.JobInfo.days_of_month", FT_UINT32, BASE_HEX, NULL, 0, "", HFILL }}, { &hf_atsvc_JobInfo_days_of_week, { "days_of_week", "atsvc.JobInfo.days_of_week", FT_UINT8, BASE_HEX, NULL, 0, "", HFILL }}, { &hf_atsvc_JobInfo_flags, { "flags", "atsvc.JobInfo.flags", FT_UINT8, BASE_HEX, NULL, 0, "", HFILL }}, { &hf_atsvc_JobInfo_command, { "command", "atsvc.JobInfo.command", FT_STRING, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_atsvc_JobAdd_servername, { "servername", "atsvc.JobAdd.servername", FT_STRING, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_atsvc_JobAdd_job_info, { "job_info", "atsvc.JobAdd.job_info", FT_NONE, BASE_NONE, NULL, 0, "", HFILL }}, { &hf_atsvc_JobDel_servername, { "servername", "atsvc.JobDel.servername", FT_STRING, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_atsvc_JobDel_min_job_id, { "min_job_id", "atsvc.JobDel.min_job_id", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_atsvc_JobDel_max_job_id, { "max_job_id", "atsvc.JobDel.max_job_id", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_atsvc_JobEnumInfo_days_of_month, { "days_of_month", "atsvc.JobEnumInfo.days_of_month", FT_UINT32, BASE_HEX, NULL, 0, "", HFILL }}, { &hf_atsvc_JobEnumInfo_days_of_week, { "days_of_week", "atsvc.JobEnumInfo.days_of_week", FT_UINT8, BASE_HEX, NULL, 0, "", HFILL }}, { &hf_atsvc_JobEnumInfo_flags, { "flags", "atsvc.JobEnumInfo.flags", FT_UINT8, BASE_HEX, NULL, 0, "", HFILL }}, { &hf_atsvc_JobEnumInfo_command, { "command", "atsvc.JobEnumInfo.command", FT_STRING, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_atsvc_enum_ctr_entries_read, { "entries_read", "atsvc.enum_ctr.entries_read", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_atsvc_enum_ctr_first_entry, { "first_entry", "atsvc.enum_ctr.first_entry", FT_NONE, BASE_NONE, NULL, 0, "", HFILL }}, { &hf_atsvc_JobEnum_servername, { "servername", "atsvc.JobEnum.servername", FT_STRING, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_atsvc_JobEnum_ctr, { "ctr", "atsvc.JobEnum.ctr", FT_NONE, BASE_NONE, NULL, 0, "", HFILL }}, { &hf_atsvc_JobEnum_preferred_max_len, { "preferred_max_len", "atsvc.JobEnum.preferred_max_len", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_atsvc_JobEnum_total_entries, { "total_entries", "atsvc.JobEnum.total_entries", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_atsvc_JobEnum_resume_handle, { "resume_handle", "atsvc.JobEnum.resume_handle", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_atsvc_JobGetInfo_servername, { "servername", "atsvc.JobGetInfo.servername", FT_STRING, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_atsvc_JobGetInfo_job_info, { "job_info", "atsvc.JobGetInfo.job_info", FT_NONE, BASE_NONE, NULL, 0, "", HFILL }}, /* END OF INCLUDED FILE : ETH_HFARR */ }; static gint *ett[] = { /* INCLUDED FILE : ETH_ETTARR */ &ett_atsvc, &ett_atsvc_DaysOfMonth, &ett_atsvc_DaysOfWeek, &ett_atsvc_Flags, &ett_atsvc_JobInfo, &ett_atsvc_JobEnumInfo, &ett_atsvc_enum_ctr, /* END OF INCLUDED FILE : ETH_ETTARR */ }; proto_atsvc = proto_register_protocol( "Microsoft Task Scheduler Service", "ATSVC", "atsvc"); proto_register_field_array(proto_atsvc, hf, array_length(hf)); proto_register_subtree_array(ett, array_length(ett)); } static dcerpc_sub_dissector function_dissectors[] = { /* INCLUDED FILE : ETH_FT */ { 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 }, /* END OF INCLUDED FILE : ETH_FT */ { 0, NULL, NULL, NULL }, }; void proto_reg_handoff_atsvc(void) { /* INCLUDED FILE : ETH_HANDOFF */ dcerpc_init_uuid(proto_atsvc, ett_atsvc, &uuid_dcerpc_atsvc, ver_atsvc, function_dissectors, hf_atsvc_opnum); /* END OF INCLUDED FILE : ETH_HANDOFF */ }