From af26289df3da5dacae1d93e7042ef2fcb7ab6152 Mon Sep 17 00:00:00 2001 From: Ronnie Sahlberg Date: Thu, 21 Sep 2006 09:18:39 +0000 Subject: [PATCH] dfs updates svn path=/trunk/; revision=19269 --- epan/dissectors/packet-dcerpc-dfs.c | 2051 ++++++++++++++++++++++++--- epan/dissectors/packet-dcerpc-dfs.h | 26 + epan/dissectors/pidl/dfs.idl | 179 ++- 3 files changed, 2049 insertions(+), 207 deletions(-) diff --git a/epan/dissectors/packet-dcerpc-dfs.c b/epan/dissectors/packet-dcerpc-dfs.c index 9f25c0a2c1..18e1a2cd45 100644 --- a/epan/dissectors/packet-dcerpc-dfs.c +++ b/epan/dissectors/packet-dcerpc-dfs.c @@ -26,13 +26,25 @@ static gint ett_dcerpc_netdfs = -1; static gint ett_netdfs_dfs_Info0 = -1; static gint ett_netdfs_dfs_Info1 = -1; +static gint ett_netdfs_dfs_VolumeState = -1; static gint ett_netdfs_dfs_Info2 = -1; +static gint ett_netdfs_dfs_StorageState = -1; static gint ett_netdfs_dfs_StorageInfo = -1; static gint ett_netdfs_dfs_Info3 = -1; static gint ett_netdfs_dfs_Info4 = -1; +static gint ett_netdfs_dfs_PropertyFlags = -1; +static gint ett_netdfs_dfs_Info5 = -1; +static gint ett_netdfs_dfs_Target_Priority = -1; +static gint ett_netdfs_dfs_StorageInfo2 = -1; +static gint ett_netdfs_dfs_Info6 = -1; +static gint ett_netdfs_dfs_Info7 = -1; static gint ett_netdfs_dfs_Info100 = -1; static gint ett_netdfs_dfs_Info101 = -1; static gint ett_netdfs_dfs_Info102 = -1; +static gint ett_netdfs_dfs_Info103 = -1; +static gint ett_netdfs_dfs_Info104 = -1; +static gint ett_netdfs_dfs_Info105 = -1; +static gint ett_netdfs_dfs_Info106 = -1; static gint ett_netdfs_dfs_Info200 = -1; static gint ett_netdfs_dfs_Info300 = -1; static gint ett_netdfs_dfs_Info = -1; @@ -48,84 +60,155 @@ static gint ett_netdfs_dfs_EnumStruct = -1; /* Header field declarations */ static gint hf_netdfs_dfs_EnumEx_level = -1; -static gint hf_netdfs_dfs_EnumEx_total = -1; +static gint hf_netdfs_dfs_Info5_pktsize = -1; +static gint hf_netdfs_dfs_StorageState_DFS_STORAGE_STATE_ONLINE = -1; static gint hf_netdfs_dfs_EnumEx_bufsize = -1; static gint hf_netdfs_dfs_Info4_comment = -1; -static gint hf_netdfs_dfs_Remove_server = -1; -static gint hf_netdfs_dfs_GetInfo_level = -1; -static gint hf_netdfs_dfs_Add_server = -1; -static gint hf_netdfs_dfs_EnumArray300_s = -1; -static gint hf_netdfs_werror = -1; +static gint hf_netdfs_dfs_PropertyFlags_DFS_PROPERTY_FLAG_SITE_COSTING = -1; +static gint hf_netdfs_dfs_PropertyFlags_DFS_PROPERTY_FLAG_ROOT_SCALABILITY = -1; +static gint hf_netdfs_dfs_VolumeState_DFS_VOLUME_STATE_OFFLINE = -1; +static gint hf_netdfs_dfs_Info5_guid = -1; +static gint hf_netdfs_dfs_Target_Priority_target_priority_rank = -1; +static gint hf_netdfs_dfs_AddStdRootForced_servername = -1; static gint hf_netdfs_dfs_EnumInfo_info200 = -1; -static gint hf_netdfs_dfs_EnumArray3_count = -1; -static gint hf_netdfs_dfs_EnumEx_name = -1; +static gint hf_netdfs_dfs_PropertyFlags_DFS_PROPERTY_FLAG_TARGET_FAILBACK = -1; +static gint hf_netdfs_dfs_Target_Priority_reserved = -1; static gint hf_netdfs_dfs_Enum_bufsize = -1; -static gint hf_netdfs_dfs_Add_flags = -1; +static gint hf_netdfs_dfs_AddStdRootForced_rootshare = -1; static gint hf_netdfs_dfs_EnumArray4_s = -1; +static gint hf_netdfs_dfs_Info6_comment = -1; +static gint hf_netdfs_dfs_Info6_entry_path = -1; static gint hf_netdfs_dfs_Info1_path = -1; -static gint hf_netdfs_dfs_GetInfo_path = -1; static gint hf_netdfs_dfs_EnumStruct_level = -1; +static gint hf_netdfs_dfs_GetInfo_sharename = -1; +static gint hf_netdfs_dfs_Info105_comment = -1; +static gint hf_netdfs_dfs_AddStdRoot_rootshare = -1; +static gint hf_netdfs_dfs_SetInfo_level = -1; +static gint hf_netdfs_dfs_Info6_flags = -1; +static gint hf_netdfs_dfs_Info4_state = -1; +static gint hf_netdfs_dfs_Info4_guid = -1; +static gint hf_netdfs_dfs_Info105_property_flags = -1; +static gint hf_netdfs_dfs_Enum_total = -1; +static gint hf_netdfs_dfs_EnumStruct_e = -1; +static gint hf_netdfs_dfs_EnumArray4_count = -1; +static gint hf_netdfs_dfs_StorageInfo2_info = -1; +static gint hf_netdfs_dfs_Info105_state = -1; +static gint hf_netdfs_dfs_Info4_stores = -1; +static gint hf_netdfs_dfs_Info4_num_stores = -1; +static gint hf_netdfs_dfs_GetInfo_dfs_entry_path = -1; +static gint hf_netdfs_dfs_EnumArray1_count = -1; +static gint hf_netdfs_dfs_StorageInfo_state = -1; +static gint hf_netdfs_dfs_AddStdRoot_servername = -1; +static gint hf_netdfs_dfs_EnumArray200_s = -1; +static gint hf_netdfs_dfs_Info6_stores = -1; +static gint hf_netdfs_dfs_GetInfo_servername = -1; +static gint hf_netdfs_dfs_StorageInfo2_target_priority = -1; +static gint hf_netdfs_dfs_EnumArray2_s = -1; +static gint hf_netdfs_dfs_EnumArray200_count = -1; +static gint hf_netdfs_dfs_EnumEx_info = -1; +static gint hf_netdfs_dfs_Info104_priority = -1; +static gint hf_netdfs_dfs_Info4_timeout = -1; +static gint hf_netdfs_dfs_PropertyFlags_DFS_PROPERTY_FLAG_CLUSTER_ENABLED = -1; +static gint hf_netdfs_dfs_Enum_info = -1; +static gint hf_netdfs_dfs_AddStdRoot_comment = -1; +static gint hf_netdfs_dfs_GetInfo_info = -1; +static gint hf_netdfs_dfs_Add_share = -1; +static gint hf_netdfs_dfs_Info100_comment = -1; +static gint hf_netdfs_dfs_EnumInfo_info300 = -1; +static gint hf_netdfs_dfs_Info6_state = -1; +static gint hf_netdfs_dfs_VolumeState_DFS_VOLUME_STATE_AD_BLOB = -1; +static gint hf_netdfs_dfs_Add_comment = -1; +static gint hf_netdfs_dfs_Info6_timeout = -1; +static gint hf_netdfs_dfs_Info105_timeout = -1; +static gint hf_netdfs_dfs_Info3_comment = -1; +static gint hf_netdfs_dfs_Info3_state = -1; +static gint hf_netdfs_dfs_Info5_flags = -1; +static gint hf_netdfs_dfs_Info7_generation_guid = -1; +static gint hf_netdfs_dfs_EnumEx_total = -1; +static gint hf_netdfs_dfs_GetInfo_level = -1; +static gint hf_netdfs_dfs_Info5_num_stores = -1; +static gint hf_netdfs_dfs_Info6_pktsize = -1; +static gint hf_netdfs_dfs_EnumArray300_s = -1; +static gint hf_netdfs_dfs_Add_server = -1; +static gint hf_netdfs_dfs_Info5_comment = -1; +static gint hf_netdfs_werror = -1; +static gint hf_netdfs_dfs_EnumArray3_count = -1; +static gint hf_netdfs_dfs_VolumeState_DFS_VOLUME_STATE_INCONSISTENT = -1; +static gint hf_netdfs_dfs_Add_flags = -1; +static gint hf_netdfs_dfs_RemoveStdRoot_servername = -1; +static gint hf_netdfs_dfs_Remove_sharename = -1; static gint hf_netdfs_dfs_Info101_state = -1; +static gint hf_netdfs_dfs_Info103_flags = -1; static gint hf_netdfs_dfs_Info200_dom_root = -1; +static gint hf_netdfs_dfs_StorageState_DFS_STORAGE_STATE_OFFLINE = -1; +static gint hf_netdfs_dfs_VolumeState_DFS_VOLUME_STATE_ONLINE = -1; static gint hf_netdfs_dfs_Info_info0 = -1; +static gint hf_netdfs_dfs_SetInfo_servername = -1; static gint hf_netdfs_dfs_Info_info1 = -1; static gint hf_netdfs_dfs_Info2_num_stores = -1; -static gint hf_netdfs_dfs_Info4_state = -1; static gint hf_netdfs_dfs_Info_info2 = -1; static gint hf_netdfs_dfs_Info_info3 = -1; static gint hf_netdfs_dfs_Info_info4 = -1; -static gint hf_netdfs_dfs_Info4_guid = -1; +static gint hf_netdfs_dfs_Info_info5 = -1; +static gint hf_netdfs_dfs_StorageState_DFS_STORAGE_STATE_ACTIVE = -1; +static gint hf_netdfs_dfs_Info_info6 = -1; +static gint hf_netdfs_dfs_Info_info7 = -1; static gint hf_netdfs_dfs_Enum_level = -1; -static gint hf_netdfs_dfs_Enum_total = -1; -static gint hf_netdfs_dfs_Remove_path = -1; +static gint hf_netdfs_dfs_Info300_flavor = -1; +static gint hf_netdfs_dfs_AddStdRootForced_store = -1; +static gint hf_netdfs_dfs_Info5_path = -1; static gint hf_netdfs_dfs_GetManagerVersion_version = -1; static gint hf_netdfs_dfs_Info3_stores = -1; +static gint hf_netdfs_dfs_VolumeState_DFS_VOLUME_STATE_STANDALONE = -1; static gint hf_netdfs_dfs_EnumArray3_s = -1; -static gint hf_netdfs_dfs_EnumStruct_e = -1; -static gint hf_netdfs_dfs_EnumArray4_count = -1; -static gint hf_netdfs_dfs_Info300_flags = -1; -static gint hf_netdfs_dfs_Info4_stores = -1; -static gint hf_netdfs_dfs_Info4_num_stores = -1; -static gint hf_netdfs_dfs_StorageInfo_state = -1; -static gint hf_netdfs_dfs_EnumArray1_count = -1; +static gint hf_netdfs_dfs_Info106_priority = -1; +static gint hf_netdfs_dfs_VolumeState_DFS_VOLUME_STATE_OK = -1; static gint hf_netdfs_dfs_StorageInfo_server = -1; -static gint hf_netdfs_dfs_Remove_share = -1; -static gint hf_netdfs_dfs_EnumArray200_s = -1; +static gint hf_netdfs_dfs_SetInfo_dfs_entry_path = -1; +static gint hf_netdfs_dfs_RemoveStdRoot_flags = -1; +static gint hf_netdfs_dfs_ManagerInitialize_flags = -1; static gint hf_netdfs_dfs_Info4_path = -1; -static gint hf_netdfs_dfs_GetInfo_share = -1; +static gint hf_netdfs_dfs_Info5_state = -1; static gint hf_netdfs_dfs_StorageInfo_share = -1; -static gint hf_netdfs_dfs_EnumArray2_s = -1; +static gint hf_netdfs_dfs_AddStdRoot_flags = -1; +static gint hf_netdfs_dfs_Info6_num_stores = -1; +static gint hf_netdfs_dfs_Target_Priority_target_priority_class = -1; static gint hf_netdfs_opnum = -1; +static gint hf_netdfs_dfs_PropertyFlags_DFS_PROPERTY_FLAG_INSITE_REFERRALS = -1; static gint hf_netdfs_dfs_Info2_state = -1; +static gint hf_netdfs_dfs_Info106_state = -1; static gint hf_netdfs_dfs_Info_info100 = -1; +static gint hf_netdfs_dfs_AddStdRootForced_comment = -1; static gint hf_netdfs_dfs_Info_info101 = -1; -static gint hf_netdfs_dfs_EnumArray200_count = -1; static gint hf_netdfs_dfs_Add_path = -1; static gint hf_netdfs_dfs_Info102_timeout = -1; static gint hf_netdfs_dfs_Info_info102 = -1; -static gint hf_netdfs_dfs_EnumEx_info = -1; +static gint hf_netdfs_dfs_Info_info103 = -1; +static gint hf_netdfs_dfs_Info_info104 = -1; static gint hf_netdfs_dfs_Info3_path = -1; -static gint hf_netdfs_dfs_Info4_timeout = -1; -static gint hf_netdfs_dfs_Enum_info = -1; +static gint hf_netdfs_dfs_Info_info105 = -1; +static gint hf_netdfs_dfs_Info_info106 = -1; +static gint hf_netdfs_dfs_SetInfo_sharename = -1; +static gint hf_netdfs_dfs_ManagerInitialize_servername = -1; static gint hf_netdfs_dfs_EnumInfo_info1 = -1; static gint hf_netdfs_dfs_Info300_dom_root = -1; static gint hf_netdfs_dfs_EnumArray2_count = -1; static gint hf_netdfs_dfs_EnumArray300_count = -1; static gint hf_netdfs_dfs_EnumInfo_info2 = -1; +static gint hf_netdfs_dfs_Remove_dfs_entry_path = -1; static gint hf_netdfs_dfs_EnumInfo_info3 = -1; +static gint hf_netdfs_dfs_EnumEx_dfs_name = -1; +static gint hf_netdfs_dfs_RemoveStdRoot_rootshare = -1; static gint hf_netdfs_dfs_EnumInfo_info4 = -1; -static gint hf_netdfs_dfs_GetInfo_server = -1; +static gint hf_netdfs_dfs_Info5_timeout = -1; static gint hf_netdfs_dfs_EnumArray1_s = -1; -static gint hf_netdfs_dfs_GetInfo_info = -1; -static gint hf_netdfs_dfs_Info100_comment = -1; -static gint hf_netdfs_dfs_Add_share = -1; +static gint hf_netdfs_dfs_Remove_servername = -1; static gint hf_netdfs_dfs_Info3_num_stores = -1; +static gint hf_netdfs_dfs_Info105_property_flag_mask = -1; static gint hf_netdfs_dfs_Info2_comment = -1; -static gint hf_netdfs_dfs_EnumInfo_info300 = -1; -static gint hf_netdfs_dfs_Add_comment = -1; -static gint hf_netdfs_dfs_Info3_comment = -1; +static gint hf_netdfs_dfs_Info6_guid = -1; static gint hf_netdfs_dfs_Info2_path = -1; -static gint hf_netdfs_dfs_Info3_state = -1; +static gint hf_netdfs_dfs_SetInfo_info = -1; static gint proto_dcerpc_netdfs = -1; /* Version information */ @@ -145,12 +228,48 @@ const value_string netdfs_dfs_ManagerVersion_vals[] = { }; static int netdfs_dissect_element_dfs_Info1_path(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep); static int netdfs_dissect_element_dfs_Info1_path_(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep); +static const true_false_string dfs_VolumeState_DFS_VOLUME_STATE_OK_tfs = { + "DFS_VOLUME_STATE_OK is SET", + "DFS_VOLUME_STATE_OK is NOT SET", +}; +static const true_false_string dfs_VolumeState_DFS_VOLUME_STATE_INCONSISTENT_tfs = { + "DFS_VOLUME_STATE_INCONSISTENT is SET", + "DFS_VOLUME_STATE_INCONSISTENT is NOT SET", +}; +static const true_false_string dfs_VolumeState_DFS_VOLUME_STATE_OFFLINE_tfs = { + "DFS_VOLUME_STATE_OFFLINE is SET", + "DFS_VOLUME_STATE_OFFLINE is NOT SET", +}; +static const true_false_string dfs_VolumeState_DFS_VOLUME_STATE_ONLINE_tfs = { + "DFS_VOLUME_STATE_ONLINE is SET", + "DFS_VOLUME_STATE_ONLINE is NOT SET", +}; +static const true_false_string dfs_VolumeState_DFS_VOLUME_STATE_STANDALONE_tfs = { + "DFS_VOLUME_STATE_STANDALONE is SET", + "DFS_VOLUME_STATE_STANDALONE is NOT SET", +}; +static const true_false_string dfs_VolumeState_DFS_VOLUME_STATE_AD_BLOB_tfs = { + "DFS_VOLUME_STATE_AD_BLOB is SET", + "DFS_VOLUME_STATE_AD_BLOB is NOT SET", +}; static int netdfs_dissect_element_dfs_Info2_path(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep); static int netdfs_dissect_element_dfs_Info2_path_(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep); static int netdfs_dissect_element_dfs_Info2_comment(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep); static int netdfs_dissect_element_dfs_Info2_comment_(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep); static int netdfs_dissect_element_dfs_Info2_state(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep); static int netdfs_dissect_element_dfs_Info2_num_stores(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep); +static const true_false_string dfs_StorageState_DFS_STORAGE_STATE_OFFLINE_tfs = { + "DFS_STORAGE_STATE_OFFLINE is SET", + "DFS_STORAGE_STATE_OFFLINE is NOT SET", +}; +static const true_false_string dfs_StorageState_DFS_STORAGE_STATE_ONLINE_tfs = { + "DFS_STORAGE_STATE_ONLINE is SET", + "DFS_STORAGE_STATE_ONLINE is NOT SET", +}; +static const true_false_string dfs_StorageState_DFS_STORAGE_STATE_ACTIVE_tfs = { + "DFS_STORAGE_STATE_ACTIVE is SET", + "DFS_STORAGE_STATE_ACTIVE is NOT SET", +}; static int netdfs_dissect_element_dfs_StorageInfo_state(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep); static int netdfs_dissect_element_dfs_StorageInfo_server(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep); static int netdfs_dissect_element_dfs_StorageInfo_server_(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep); @@ -176,13 +295,86 @@ static int netdfs_dissect_element_dfs_Info4_num_stores(tvbuff_t *tvb, int offset static int netdfs_dissect_element_dfs_Info4_stores(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep); static int netdfs_dissect_element_dfs_Info4_stores_(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep); static int netdfs_dissect_element_dfs_Info4_stores__(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep); +static const true_false_string dfs_PropertyFlags_DFS_PROPERTY_FLAG_INSITE_REFERRALS_tfs = { + "DFS_PROPERTY_FLAG_INSITE_REFERRALS is SET", + "DFS_PROPERTY_FLAG_INSITE_REFERRALS is NOT SET", +}; +static const true_false_string dfs_PropertyFlags_DFS_PROPERTY_FLAG_ROOT_SCALABILITY_tfs = { + "DFS_PROPERTY_FLAG_ROOT_SCALABILITY is SET", + "DFS_PROPERTY_FLAG_ROOT_SCALABILITY is NOT SET", +}; +static const true_false_string dfs_PropertyFlags_DFS_PROPERTY_FLAG_SITE_COSTING_tfs = { + "DFS_PROPERTY_FLAG_SITE_COSTING is SET", + "DFS_PROPERTY_FLAG_SITE_COSTING is NOT SET", +}; +static const true_false_string dfs_PropertyFlags_DFS_PROPERTY_FLAG_TARGET_FAILBACK_tfs = { + "DFS_PROPERTY_FLAG_TARGET_FAILBACK is SET", + "DFS_PROPERTY_FLAG_TARGET_FAILBACK is NOT SET", +}; +static const true_false_string dfs_PropertyFlags_DFS_PROPERTY_FLAG_CLUSTER_ENABLED_tfs = { + "DFS_PROPERTY_FLAG_CLUSTER_ENABLED is SET", + "DFS_PROPERTY_FLAG_CLUSTER_ENABLED is NOT SET", +}; +static int netdfs_dissect_element_dfs_Info5_path(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep); +static int netdfs_dissect_element_dfs_Info5_path_(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep); +static int netdfs_dissect_element_dfs_Info5_comment(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep); +static int netdfs_dissect_element_dfs_Info5_comment_(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep); +static int netdfs_dissect_element_dfs_Info5_state(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep); +static int netdfs_dissect_element_dfs_Info5_timeout(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep); +static int netdfs_dissect_element_dfs_Info5_guid(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep); +static int netdfs_dissect_element_dfs_Info5_flags(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep); +static int netdfs_dissect_element_dfs_Info5_pktsize(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep); +static int netdfs_dissect_element_dfs_Info5_num_stores(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep); +const value_string netdfs_dfs_Target_PriorityClass_vals[] = { + { DFS_INVALID_PRIORITY_CLASS, "DFS_INVALID_PRIORITY_CLASS" }, + { DFS_SITE_COST_NORMAL_PRIORITY_CLASS, "DFS_SITE_COST_NORMAL_PRIORITY_CLASS" }, + { DFS_GLOBAL_HIGH_PRIORITY_CLASS, "DFS_GLOBAL_HIGH_PRIORITY_CLASS" }, + { DFS_SITE_COST_HIGH_PRIORITY_CLASS, "DFS_SITE_COST_HIGH_PRIORITY_CLASS" }, + { DFS_SITE_COST_LOW_PRIORITY_CLASS, "DFS_SITE_COST_LOW_PRIORITY_CLASS" }, + { DFS_GLOBAL_LOW_PRIORITY_CLASS, "DFS_GLOBAL_LOW_PRIORITY_CLASS" }, +{ 0, NULL } +}; +static int netdfs_dissect_element_dfs_Target_Priority_target_priority_class(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep); +static int netdfs_dissect_element_dfs_Target_Priority_target_priority_rank(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep); +static int netdfs_dissect_element_dfs_Target_Priority_reserved(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep); +static int netdfs_dissect_element_dfs_StorageInfo2_info(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep); +static int netdfs_dissect_element_dfs_StorageInfo2_target_priority(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep); +static int netdfs_dissect_element_dfs_Info6_entry_path(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep); +static int netdfs_dissect_element_dfs_Info6_entry_path_(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep); +static int netdfs_dissect_element_dfs_Info6_comment(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep); +static int netdfs_dissect_element_dfs_Info6_comment_(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep); +static int netdfs_dissect_element_dfs_Info6_state(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep); +static int netdfs_dissect_element_dfs_Info6_timeout(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep); +static int netdfs_dissect_element_dfs_Info6_guid(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep); +static int netdfs_dissect_element_dfs_Info6_flags(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep); +static int netdfs_dissect_element_dfs_Info6_pktsize(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep); +static int netdfs_dissect_element_dfs_Info6_num_stores(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep); +static int netdfs_dissect_element_dfs_Info6_stores(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep); +static int netdfs_dissect_element_dfs_Info6_stores_(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep); +static int netdfs_dissect_element_dfs_Info6_stores__(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep); +static int netdfs_dissect_element_dfs_Info7_generation_guid(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep); static int netdfs_dissect_element_dfs_Info100_comment(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep); static int netdfs_dissect_element_dfs_Info100_comment_(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep); static int netdfs_dissect_element_dfs_Info101_state(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep); static int netdfs_dissect_element_dfs_Info102_timeout(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep); +static int netdfs_dissect_element_dfs_Info103_flags(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep); +static int netdfs_dissect_element_dfs_Info104_priority(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep); +static int netdfs_dissect_element_dfs_Info105_comment(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep); +static int netdfs_dissect_element_dfs_Info105_comment_(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep); +static int netdfs_dissect_element_dfs_Info105_state(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep); +static int netdfs_dissect_element_dfs_Info105_timeout(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep); +static int netdfs_dissect_element_dfs_Info105_property_flag_mask(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep); +static int netdfs_dissect_element_dfs_Info105_property_flags(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep); +static int netdfs_dissect_element_dfs_Info106_state(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep); +static int netdfs_dissect_element_dfs_Info106_priority(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep); static int netdfs_dissect_element_dfs_Info200_dom_root(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep); static int netdfs_dissect_element_dfs_Info200_dom_root_(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep); -static int netdfs_dissect_element_dfs_Info300_flags(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep); +const value_string netdfs_dfs_VolumeFlavor_vals[] = { + { DFS_VOLUME_FLAVOR_STANDALONE, "DFS_VOLUME_FLAVOR_STANDALONE" }, + { DFS_VOLUME_FLAVOR_AD_BLOB, "DFS_VOLUME_FLAVOR_AD_BLOB" }, +{ 0, NULL } +}; +static int netdfs_dissect_element_dfs_Info300_flavor(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep); static int netdfs_dissect_element_dfs_Info300_dom_root(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep); static int netdfs_dissect_element_dfs_Info300_dom_root_(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep); static int netdfs_dissect_element_dfs_Info_info0(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep); @@ -195,12 +387,26 @@ static int netdfs_dissect_element_dfs_Info_info3(tvbuff_t *tvb, int offset, pack static int netdfs_dissect_element_dfs_Info_info3_(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep); static int netdfs_dissect_element_dfs_Info_info4(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep); static int netdfs_dissect_element_dfs_Info_info4_(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep); +static int netdfs_dissect_element_dfs_Info_info5(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep); +static int netdfs_dissect_element_dfs_Info_info5_(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep); +static int netdfs_dissect_element_dfs_Info_info6(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep); +static int netdfs_dissect_element_dfs_Info_info6_(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep); +static int netdfs_dissect_element_dfs_Info_info7(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep); +static int netdfs_dissect_element_dfs_Info_info7_(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep); static int netdfs_dissect_element_dfs_Info_info100(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep); static int netdfs_dissect_element_dfs_Info_info100_(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep); static int netdfs_dissect_element_dfs_Info_info101(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep); static int netdfs_dissect_element_dfs_Info_info101_(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep); static int netdfs_dissect_element_dfs_Info_info102(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep); static int netdfs_dissect_element_dfs_Info_info102_(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep); +static int netdfs_dissect_element_dfs_Info_info103(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep); +static int netdfs_dissect_element_dfs_Info_info103_(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep); +static int netdfs_dissect_element_dfs_Info_info104(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep); +static int netdfs_dissect_element_dfs_Info_info104_(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep); +static int netdfs_dissect_element_dfs_Info_info105(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep); +static int netdfs_dissect_element_dfs_Info_info105_(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep); +static int netdfs_dissect_element_dfs_Info_info106(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep); +static int netdfs_dissect_element_dfs_Info_info106_(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep); static int netdfs_dissect_element_dfs_EnumArray1_count(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep); static int netdfs_dissect_element_dfs_EnumArray1_s(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep); static int netdfs_dissect_element_dfs_EnumArray1_s_(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep); @@ -250,17 +456,25 @@ static int netdfs_dissect_element_dfs_Add_share_(tvbuff_t *tvb, int offset, pack static int netdfs_dissect_element_dfs_Add_comment(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep); static int netdfs_dissect_element_dfs_Add_comment_(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep); static int netdfs_dissect_element_dfs_Add_flags(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep); -static int netdfs_dissect_element_dfs_Remove_path(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep); -static int netdfs_dissect_element_dfs_Remove_path_(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep); -static int netdfs_dissect_element_dfs_Remove_server(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep); -static int netdfs_dissect_element_dfs_Remove_server_(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep); -static int netdfs_dissect_element_dfs_Remove_share(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep); -static int netdfs_dissect_element_dfs_Remove_share_(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep); -static int netdfs_dissect_element_dfs_GetInfo_path(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep); -static int netdfs_dissect_element_dfs_GetInfo_server(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep); -static int netdfs_dissect_element_dfs_GetInfo_server_(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep); -static int netdfs_dissect_element_dfs_GetInfo_share(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep); -static int netdfs_dissect_element_dfs_GetInfo_share_(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep); +static int netdfs_dissect_element_dfs_Remove_dfs_entry_path(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep); +static int netdfs_dissect_element_dfs_Remove_dfs_entry_path_(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep); +static int netdfs_dissect_element_dfs_Remove_servername(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep); +static int netdfs_dissect_element_dfs_Remove_servername_(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep); +static int netdfs_dissect_element_dfs_Remove_sharename(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep); +static int netdfs_dissect_element_dfs_Remove_sharename_(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep); +static int netdfs_dissect_element_dfs_SetInfo_dfs_entry_path(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep); +static int netdfs_dissect_element_dfs_SetInfo_servername(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep); +static int netdfs_dissect_element_dfs_SetInfo_servername_(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep); +static int netdfs_dissect_element_dfs_SetInfo_sharename(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep); +static int netdfs_dissect_element_dfs_SetInfo_sharename_(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep); +static int netdfs_dissect_element_dfs_SetInfo_level(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep); +static int netdfs_dissect_element_dfs_SetInfo_info(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep); +static int netdfs_dissect_element_dfs_SetInfo_info_(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep); +static int netdfs_dissect_element_dfs_GetInfo_dfs_entry_path(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep); +static int netdfs_dissect_element_dfs_GetInfo_servername(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep); +static int netdfs_dissect_element_dfs_GetInfo_servername_(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep); +static int netdfs_dissect_element_dfs_GetInfo_sharename(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep); +static int netdfs_dissect_element_dfs_GetInfo_sharename_(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep); static int netdfs_dissect_element_dfs_GetInfo_level(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep); static int netdfs_dissect_element_dfs_GetInfo_info(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep); static int netdfs_dissect_element_dfs_GetInfo_info_(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep); @@ -270,7 +484,21 @@ static int netdfs_dissect_element_dfs_Enum_info(tvbuff_t *tvb, int offset, packe static int netdfs_dissect_element_dfs_Enum_info_(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep); static int netdfs_dissect_element_dfs_Enum_total(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep); static int netdfs_dissect_element_dfs_Enum_total_(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep); -static int netdfs_dissect_element_dfs_EnumEx_name(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep); +static int netdfs_dissect_element_dfs_AddStdRoot_servername(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep); +static int netdfs_dissect_element_dfs_AddStdRoot_rootshare(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep); +static int netdfs_dissect_element_dfs_AddStdRoot_comment(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep); +static int netdfs_dissect_element_dfs_AddStdRoot_flags(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep); +static int netdfs_dissect_element_dfs_RemoveStdRoot_servername(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep); +static int netdfs_dissect_element_dfs_RemoveStdRoot_rootshare(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep); +static int netdfs_dissect_element_dfs_RemoveStdRoot_flags(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep); +static int netdfs_dissect_element_dfs_ManagerInitialize_servername(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep); +static int netdfs_dissect_element_dfs_ManagerInitialize_servername_(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep); +static int netdfs_dissect_element_dfs_ManagerInitialize_flags(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep); +static int netdfs_dissect_element_dfs_AddStdRootForced_servername(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep); +static int netdfs_dissect_element_dfs_AddStdRootForced_rootshare(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep); +static int netdfs_dissect_element_dfs_AddStdRootForced_comment(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep); +static int netdfs_dissect_element_dfs_AddStdRootForced_store(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep); +static int netdfs_dissect_element_dfs_EnumEx_dfs_name(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep); static int netdfs_dissect_element_dfs_EnumEx_level(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep); static int netdfs_dissect_element_dfs_EnumEx_bufsize(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep); static int netdfs_dissect_element_dfs_EnumEx_info(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep); @@ -362,10 +590,94 @@ netdfs_dissect_struct_dfs_Info1(tvbuff_t *tvb, int offset, packet_info *pinfo, p return offset; } +/* IDL: typedef bitmap { */ +/* IDL: DFS_VOLUME_STATE_OK = 0x1 , */ +/* IDL: DFS_VOLUME_STATE_INCONSISTENT = 0x2 , */ +/* IDL: DFS_VOLUME_STATE_OFFLINE = 0x4 , */ +/* IDL: DFS_VOLUME_STATE_ONLINE = 0x8 , */ +/* IDL: DFS_VOLUME_STATE_STANDALONE = DFS_VOLUME_FLAVOR_STANDALONE , */ +/* IDL: DFS_VOLUME_STATE_AD_BLOB = DFS_VOLUME_FLAVOR_AD_BLOB , */ +/* IDL: } dfs_VolumeState; */ + +int +netdfs_dissect_bitmap_dfs_VolumeState(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_netdfs_dfs_VolumeState); + } + + offset = dissect_ndr_uint32(tvb, offset, pinfo, NULL, drep, -1, &flags); + proto_item_append_text(item, ": "); + + if (!flags) + proto_item_append_text(item, "(No values set)"); + + proto_tree_add_boolean(tree, hf_netdfs_dfs_VolumeState_DFS_VOLUME_STATE_OK, tvb, offset-4, 4, flags); + if (flags&( 0x1 )){ + proto_item_append_text(item, "DFS_VOLUME_STATE_OK"); + if (flags & (~( 0x1 ))) + proto_item_append_text(item, ", "); + } + flags&=(~( 0x1 )); + + proto_tree_add_boolean(tree, hf_netdfs_dfs_VolumeState_DFS_VOLUME_STATE_INCONSISTENT, tvb, offset-4, 4, flags); + if (flags&( 0x2 )){ + proto_item_append_text(item, "DFS_VOLUME_STATE_INCONSISTENT"); + if (flags & (~( 0x2 ))) + proto_item_append_text(item, ", "); + } + flags&=(~( 0x2 )); + + proto_tree_add_boolean(tree, hf_netdfs_dfs_VolumeState_DFS_VOLUME_STATE_OFFLINE, tvb, offset-4, 4, flags); + if (flags&( 0x4 )){ + proto_item_append_text(item, "DFS_VOLUME_STATE_OFFLINE"); + if (flags & (~( 0x4 ))) + proto_item_append_text(item, ", "); + } + flags&=(~( 0x4 )); + + proto_tree_add_boolean(tree, hf_netdfs_dfs_VolumeState_DFS_VOLUME_STATE_ONLINE, tvb, offset-4, 4, flags); + if (flags&( 0x8 )){ + proto_item_append_text(item, "DFS_VOLUME_STATE_ONLINE"); + if (flags & (~( 0x8 ))) + proto_item_append_text(item, ", "); + } + flags&=(~( 0x8 )); + + proto_tree_add_boolean(tree, hf_netdfs_dfs_VolumeState_DFS_VOLUME_STATE_STANDALONE, tvb, offset-4, 4, flags); + if (flags&( DFS_VOLUME_FLAVOR_STANDALONE )){ + proto_item_append_text(item, "DFS_VOLUME_STATE_STANDALONE"); + if (flags & (~( DFS_VOLUME_FLAVOR_STANDALONE ))) + proto_item_append_text(item, ", "); + } + flags&=(~( DFS_VOLUME_FLAVOR_STANDALONE )); + + proto_tree_add_boolean(tree, hf_netdfs_dfs_VolumeState_DFS_VOLUME_STATE_AD_BLOB, tvb, offset-4, 4, flags); + if (flags&( DFS_VOLUME_FLAVOR_AD_BLOB )){ + proto_item_append_text(item, "DFS_VOLUME_STATE_AD_BLOB"); + if (flags & (~( DFS_VOLUME_FLAVOR_AD_BLOB ))) + proto_item_append_text(item, ", "); + } + flags&=(~( DFS_VOLUME_FLAVOR_AD_BLOB )); + + if (flags) { + proto_item_append_text(item, "Unknown bitmap value 0x%x", flags); + } + + return offset; +} + /* IDL: typedef struct { */ /* IDL: [charset(UTF16)] [unique(1)] uint16 *path; */ /* IDL: [charset(UTF16)] [unique(1)] uint16 *comment; */ -/* IDL: uint32 state; */ +/* IDL: dfs_VolumeState state; */ /* IDL: uint32 num_stores; */ /* IDL: } dfs_Info2; */ @@ -410,7 +722,7 @@ netdfs_dissect_element_dfs_Info2_comment_(tvbuff_t *tvb, int offset, packet_info static int netdfs_dissect_element_dfs_Info2_state(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) { - offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_netdfs_dfs_Info2_state,NULL); + offset = netdfs_dissect_bitmap_dfs_VolumeState(tvb, offset, pinfo, tree, drep, hf_netdfs_dfs_Info2_state, 0); return offset; } @@ -453,8 +765,65 @@ netdfs_dissect_struct_dfs_Info2(tvbuff_t *tvb, int offset, packet_info *pinfo, p return offset; } +/* IDL: typedef bitmap { */ +/* IDL: DFS_STORAGE_STATE_OFFLINE = 1 , */ +/* IDL: DFS_STORAGE_STATE_ONLINE = 2 , */ +/* IDL: DFS_STORAGE_STATE_ACTIVE = 4 , */ +/* IDL: } dfs_StorageState; */ + +int +netdfs_dissect_bitmap_dfs_StorageState(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_netdfs_dfs_StorageState); + } + + offset = dissect_ndr_uint32(tvb, offset, pinfo, NULL, drep, -1, &flags); + proto_item_append_text(item, ": "); + + if (!flags) + proto_item_append_text(item, "(No values set)"); + + proto_tree_add_boolean(tree, hf_netdfs_dfs_StorageState_DFS_STORAGE_STATE_OFFLINE, tvb, offset-4, 4, flags); + if (flags&( 1 )){ + proto_item_append_text(item, "DFS_STORAGE_STATE_OFFLINE"); + if (flags & (~( 1 ))) + proto_item_append_text(item, ", "); + } + flags&=(~( 1 )); + + proto_tree_add_boolean(tree, hf_netdfs_dfs_StorageState_DFS_STORAGE_STATE_ONLINE, tvb, offset-4, 4, flags); + if (flags&( 2 )){ + proto_item_append_text(item, "DFS_STORAGE_STATE_ONLINE"); + if (flags & (~( 2 ))) + proto_item_append_text(item, ", "); + } + flags&=(~( 2 )); + + proto_tree_add_boolean(tree, hf_netdfs_dfs_StorageState_DFS_STORAGE_STATE_ACTIVE, tvb, offset-4, 4, flags); + if (flags&( 4 )){ + proto_item_append_text(item, "DFS_STORAGE_STATE_ACTIVE"); + if (flags & (~( 4 ))) + proto_item_append_text(item, ", "); + } + flags&=(~( 4 )); + + if (flags) { + proto_item_append_text(item, "Unknown bitmap value 0x%x", flags); + } + + return offset; +} + /* IDL: typedef struct { */ -/* IDL: uint32 state; */ +/* IDL: dfs_StorageState state; */ /* IDL: [charset(UTF16)] [unique(1)] uint16 *server; */ /* IDL: [charset(UTF16)] [unique(1)] uint16 *share; */ /* IDL: } dfs_StorageInfo; */ @@ -462,7 +831,7 @@ netdfs_dissect_struct_dfs_Info2(tvbuff_t *tvb, int offset, packet_info *pinfo, p static int netdfs_dissect_element_dfs_StorageInfo_state(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) { - offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_netdfs_dfs_StorageInfo_state,NULL); + offset = netdfs_dissect_bitmap_dfs_StorageState(tvb, offset, pinfo, tree, drep, hf_netdfs_dfs_StorageInfo_state, 0); return offset; } @@ -536,7 +905,7 @@ netdfs_dissect_struct_dfs_StorageInfo(tvbuff_t *tvb, int offset, packet_info *pi /* IDL: typedef struct { */ /* IDL: [charset(UTF16)] [unique(1)] uint16 *path; */ /* IDL: [charset(UTF16)] [unique(1)] uint16 *comment; */ -/* IDL: uint32 state; */ +/* IDL: dfs_VolumeState state; */ /* IDL: uint32 num_stores; */ /* IDL: [size_is(num_stores)] [unique(1)] dfs_StorageInfo *stores; */ /* IDL: } dfs_Info3; */ @@ -582,7 +951,7 @@ netdfs_dissect_element_dfs_Info3_comment_(tvbuff_t *tvb, int offset, packet_info static int netdfs_dissect_element_dfs_Info3_state(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) { - offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_netdfs_dfs_Info3_state,NULL); + offset = netdfs_dissect_bitmap_dfs_VolumeState(tvb, offset, pinfo, tree, drep, hf_netdfs_dfs_Info3_state, 0); return offset; } @@ -654,7 +1023,7 @@ netdfs_dissect_struct_dfs_Info3(tvbuff_t *tvb, int offset, packet_info *pinfo, p /* IDL: typedef struct { */ /* IDL: [charset(UTF16)] [unique(1)] uint16 *path; */ /* IDL: [charset(UTF16)] [unique(1)] uint16 *comment; */ -/* IDL: uint32 state; */ +/* IDL: dfs_VolumeState state; */ /* IDL: uint32 timeout; */ /* IDL: GUID guid; */ /* IDL: uint32 num_stores; */ @@ -702,7 +1071,7 @@ netdfs_dissect_element_dfs_Info4_comment_(tvbuff_t *tvb, int offset, packet_info static int netdfs_dissect_element_dfs_Info4_state(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) { - offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_netdfs_dfs_Info4_state,NULL); + offset = netdfs_dissect_bitmap_dfs_VolumeState(tvb, offset, pinfo, tree, drep, hf_netdfs_dfs_Info4_state, 0); return offset; } @@ -791,6 +1160,535 @@ netdfs_dissect_struct_dfs_Info4(tvbuff_t *tvb, int offset, packet_info *pinfo, p return offset; } +/* IDL: typedef bitmap { */ +/* IDL: DFS_PROPERTY_FLAG_INSITE_REFERRALS = 0x01 , */ +/* IDL: DFS_PROPERTY_FLAG_ROOT_SCALABILITY = 0x02 , */ +/* IDL: DFS_PROPERTY_FLAG_SITE_COSTING = 0x04 , */ +/* IDL: DFS_PROPERTY_FLAG_TARGET_FAILBACK = 0x08 , */ +/* IDL: DFS_PROPERTY_FLAG_CLUSTER_ENABLED = 0x10 , */ +/* IDL: } dfs_PropertyFlags; */ + +int +netdfs_dissect_bitmap_dfs_PropertyFlags(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_netdfs_dfs_PropertyFlags); + } + + offset = dissect_ndr_uint32(tvb, offset, pinfo, NULL, drep, -1, &flags); + proto_item_append_text(item, ": "); + + if (!flags) + proto_item_append_text(item, "(No values set)"); + + proto_tree_add_boolean(tree, hf_netdfs_dfs_PropertyFlags_DFS_PROPERTY_FLAG_INSITE_REFERRALS, tvb, offset-4, 4, flags); + if (flags&( 0x01 )){ + proto_item_append_text(item, "DFS_PROPERTY_FLAG_INSITE_REFERRALS"); + if (flags & (~( 0x01 ))) + proto_item_append_text(item, ", "); + } + flags&=(~( 0x01 )); + + proto_tree_add_boolean(tree, hf_netdfs_dfs_PropertyFlags_DFS_PROPERTY_FLAG_ROOT_SCALABILITY, tvb, offset-4, 4, flags); + if (flags&( 0x02 )){ + proto_item_append_text(item, "DFS_PROPERTY_FLAG_ROOT_SCALABILITY"); + if (flags & (~( 0x02 ))) + proto_item_append_text(item, ", "); + } + flags&=(~( 0x02 )); + + proto_tree_add_boolean(tree, hf_netdfs_dfs_PropertyFlags_DFS_PROPERTY_FLAG_SITE_COSTING, tvb, offset-4, 4, flags); + if (flags&( 0x04 )){ + proto_item_append_text(item, "DFS_PROPERTY_FLAG_SITE_COSTING"); + if (flags & (~( 0x04 ))) + proto_item_append_text(item, ", "); + } + flags&=(~( 0x04 )); + + proto_tree_add_boolean(tree, hf_netdfs_dfs_PropertyFlags_DFS_PROPERTY_FLAG_TARGET_FAILBACK, tvb, offset-4, 4, flags); + if (flags&( 0x08 )){ + proto_item_append_text(item, "DFS_PROPERTY_FLAG_TARGET_FAILBACK"); + if (flags & (~( 0x08 ))) + proto_item_append_text(item, ", "); + } + flags&=(~( 0x08 )); + + proto_tree_add_boolean(tree, hf_netdfs_dfs_PropertyFlags_DFS_PROPERTY_FLAG_CLUSTER_ENABLED, tvb, offset-4, 4, flags); + if (flags&( 0x10 )){ + proto_item_append_text(item, "DFS_PROPERTY_FLAG_CLUSTER_ENABLED"); + if (flags & (~( 0x10 ))) + proto_item_append_text(item, ", "); + } + flags&=(~( 0x10 )); + + if (flags) { + proto_item_append_text(item, "Unknown bitmap value 0x%x", flags); + } + + return offset; +} + +/* IDL: typedef struct { */ +/* IDL: [charset(UTF16)] [unique(1)] uint16 *path; */ +/* IDL: [charset(UTF16)] [unique(1)] uint16 *comment; */ +/* IDL: dfs_VolumeState state; */ +/* IDL: uint32 timeout; */ +/* IDL: GUID guid; */ +/* IDL: dfs_PropertyFlags flags; */ +/* IDL: uint32 pktsize; */ +/* IDL: uint32 num_stores; */ +/* IDL: } dfs_Info5; */ + +static int +netdfs_dissect_element_dfs_Info5_path(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, netdfs_dissect_element_dfs_Info5_path_, NDR_POINTER_UNIQUE, "Pointer to Path (uint16)",hf_netdfs_dfs_Info5_path); + + return offset; +} + +static int +netdfs_dissect_element_dfs_Info5_path_(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + char *data; + + offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_netdfs_dfs_Info5_path, FALSE, &data); + proto_item_append_text(tree, ": %s", data); + + return offset; +} + +static int +netdfs_dissect_element_dfs_Info5_comment(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, netdfs_dissect_element_dfs_Info5_comment_, NDR_POINTER_UNIQUE, "Pointer to Comment (uint16)",hf_netdfs_dfs_Info5_comment); + + return offset; +} + +static int +netdfs_dissect_element_dfs_Info5_comment_(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + char *data; + + offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_netdfs_dfs_Info5_comment, FALSE, &data); + proto_item_append_text(tree, ": %s", data); + + return offset; +} + +static int +netdfs_dissect_element_dfs_Info5_state(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + offset = netdfs_dissect_bitmap_dfs_VolumeState(tvb, offset, pinfo, tree, drep, hf_netdfs_dfs_Info5_state, 0); + + return offset; +} + +static int +netdfs_dissect_element_dfs_Info5_timeout(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_netdfs_dfs_Info5_timeout,NULL); + + return offset; +} + +static int +netdfs_dissect_element_dfs_Info5_guid(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, drep, hf_netdfs_dfs_Info5_guid, NULL); + + return offset; +} + +static int +netdfs_dissect_element_dfs_Info5_flags(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + offset = netdfs_dissect_bitmap_dfs_PropertyFlags(tvb, offset, pinfo, tree, drep, hf_netdfs_dfs_Info5_flags, 0); + + return offset; +} + +static int +netdfs_dissect_element_dfs_Info5_pktsize(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_netdfs_dfs_Info5_pktsize,NULL); + + return offset; +} + +static int +netdfs_dissect_element_dfs_Info5_num_stores(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_netdfs_dfs_Info5_num_stores,NULL); + + return offset; +} + +int +netdfs_dissect_struct_dfs_Info5(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_netdfs_dfs_Info5); + } + + offset = netdfs_dissect_element_dfs_Info5_path(tvb, offset, pinfo, tree, drep); + + offset = netdfs_dissect_element_dfs_Info5_comment(tvb, offset, pinfo, tree, drep); + + offset = netdfs_dissect_element_dfs_Info5_state(tvb, offset, pinfo, tree, drep); + + offset = netdfs_dissect_element_dfs_Info5_timeout(tvb, offset, pinfo, tree, drep); + + offset = netdfs_dissect_element_dfs_Info5_guid(tvb, offset, pinfo, tree, drep); + + offset = netdfs_dissect_element_dfs_Info5_flags(tvb, offset, pinfo, tree, drep); + + offset = netdfs_dissect_element_dfs_Info5_pktsize(tvb, offset, pinfo, tree, drep); + + offset = netdfs_dissect_element_dfs_Info5_num_stores(tvb, offset, pinfo, tree, drep); + + + proto_item_set_len(item, offset-old_offset); + + return offset; +} + +/* IDL: typedef enum { */ +/* IDL: DFS_INVALID_PRIORITY_CLASS=-1, */ +/* IDL: DFS_SITE_COST_NORMAL_PRIORITY_CLASS=0, */ +/* IDL: DFS_GLOBAL_HIGH_PRIORITY_CLASS=1, */ +/* IDL: DFS_SITE_COST_HIGH_PRIORITY_CLASS=2, */ +/* IDL: DFS_SITE_COST_LOW_PRIORITY_CLASS=3, */ +/* IDL: DFS_GLOBAL_LOW_PRIORITY_CLASS=4, */ +/* IDL: } dfs_Target_PriorityClass; */ + +int +netdfs_dissect_enum_dfs_Target_PriorityClass(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; +} + +/* IDL: typedef struct { */ +/* IDL: dfs_Target_PriorityClass target_priority_class; */ +/* IDL: uint16 target_priority_rank; */ +/* IDL: uint16 reserved; */ +/* IDL: } dfs_Target_Priority; */ + +static int +netdfs_dissect_element_dfs_Target_Priority_target_priority_class(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + offset = netdfs_dissect_enum_dfs_Target_PriorityClass(tvb, offset, pinfo, tree, drep, hf_netdfs_dfs_Target_Priority_target_priority_class, 0); + + return offset; +} + +static int +netdfs_dissect_element_dfs_Target_Priority_target_priority_rank(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + offset = dissect_ndr_uint16(tvb, offset, pinfo, tree, drep, hf_netdfs_dfs_Target_Priority_target_priority_rank,NULL); + + return offset; +} + +static int +netdfs_dissect_element_dfs_Target_Priority_reserved(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + offset = dissect_ndr_uint16(tvb, offset, pinfo, tree, drep, hf_netdfs_dfs_Target_Priority_reserved,NULL); + + return offset; +} + +int +netdfs_dissect_struct_dfs_Target_Priority(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_netdfs_dfs_Target_Priority); + } + + offset = netdfs_dissect_element_dfs_Target_Priority_target_priority_class(tvb, offset, pinfo, tree, drep); + + offset = netdfs_dissect_element_dfs_Target_Priority_target_priority_rank(tvb, offset, pinfo, tree, drep); + + offset = netdfs_dissect_element_dfs_Target_Priority_reserved(tvb, offset, pinfo, tree, drep); + + + proto_item_set_len(item, offset-old_offset); + + return offset; +} + +/* IDL: typedef struct { */ +/* IDL: dfs_StorageInfo info; */ +/* IDL: dfs_Target_Priority target_priority; */ +/* IDL: } dfs_StorageInfo2; */ + +static int +netdfs_dissect_element_dfs_StorageInfo2_info(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + offset = netdfs_dissect_struct_dfs_StorageInfo(tvb,offset,pinfo,tree,drep,hf_netdfs_dfs_StorageInfo2_info,0); + + return offset; +} + +static int +netdfs_dissect_element_dfs_StorageInfo2_target_priority(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + offset = netdfs_dissect_struct_dfs_Target_Priority(tvb,offset,pinfo,tree,drep,hf_netdfs_dfs_StorageInfo2_target_priority,0); + + return offset; +} + +int +netdfs_dissect_struct_dfs_StorageInfo2(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_netdfs_dfs_StorageInfo2); + } + + offset = netdfs_dissect_element_dfs_StorageInfo2_info(tvb, offset, pinfo, tree, drep); + + offset = netdfs_dissect_element_dfs_StorageInfo2_target_priority(tvb, offset, pinfo, tree, drep); + + + proto_item_set_len(item, offset-old_offset); + + return offset; +} + +/* IDL: typedef struct { */ +/* IDL: [charset(UTF16)] [unique(1)] uint16 *entry_path; */ +/* IDL: [charset(UTF16)] [unique(1)] uint16 *comment; */ +/* IDL: dfs_VolumeState state; */ +/* IDL: uint32 timeout; */ +/* IDL: GUID guid; */ +/* IDL: dfs_PropertyFlags flags; */ +/* IDL: uint32 pktsize; */ +/* IDL: uint16 num_stores; */ +/* IDL: [size_is(num_stores)] [unique(1)] dfs_StorageInfo2 *stores; */ +/* IDL: } dfs_Info6; */ + +static int +netdfs_dissect_element_dfs_Info6_entry_path(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, netdfs_dissect_element_dfs_Info6_entry_path_, NDR_POINTER_UNIQUE, "Pointer to Entry Path (uint16)",hf_netdfs_dfs_Info6_entry_path); + + return offset; +} + +static int +netdfs_dissect_element_dfs_Info6_entry_path_(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + char *data; + + offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_netdfs_dfs_Info6_entry_path, FALSE, &data); + proto_item_append_text(tree, ": %s", data); + + return offset; +} + +static int +netdfs_dissect_element_dfs_Info6_comment(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, netdfs_dissect_element_dfs_Info6_comment_, NDR_POINTER_UNIQUE, "Pointer to Comment (uint16)",hf_netdfs_dfs_Info6_comment); + + return offset; +} + +static int +netdfs_dissect_element_dfs_Info6_comment_(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + char *data; + + offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_netdfs_dfs_Info6_comment, FALSE, &data); + proto_item_append_text(tree, ": %s", data); + + return offset; +} + +static int +netdfs_dissect_element_dfs_Info6_state(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + offset = netdfs_dissect_bitmap_dfs_VolumeState(tvb, offset, pinfo, tree, drep, hf_netdfs_dfs_Info6_state, 0); + + return offset; +} + +static int +netdfs_dissect_element_dfs_Info6_timeout(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_netdfs_dfs_Info6_timeout,NULL); + + return offset; +} + +static int +netdfs_dissect_element_dfs_Info6_guid(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, drep, hf_netdfs_dfs_Info6_guid, NULL); + + return offset; +} + +static int +netdfs_dissect_element_dfs_Info6_flags(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + offset = netdfs_dissect_bitmap_dfs_PropertyFlags(tvb, offset, pinfo, tree, drep, hf_netdfs_dfs_Info6_flags, 0); + + return offset; +} + +static int +netdfs_dissect_element_dfs_Info6_pktsize(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_netdfs_dfs_Info6_pktsize,NULL); + + return offset; +} + +static int +netdfs_dissect_element_dfs_Info6_num_stores(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + offset = dissect_ndr_uint16(tvb, offset, pinfo, tree, drep, hf_netdfs_dfs_Info6_num_stores,NULL); + + return offset; +} + +static int +netdfs_dissect_element_dfs_Info6_stores(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, netdfs_dissect_element_dfs_Info6_stores_, NDR_POINTER_UNIQUE, "Pointer to Stores (dfs_StorageInfo2)",hf_netdfs_dfs_Info6_stores); + + return offset; +} + +static int +netdfs_dissect_element_dfs_Info6_stores_(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, netdfs_dissect_element_dfs_Info6_stores__); + + return offset; +} + +static int +netdfs_dissect_element_dfs_Info6_stores__(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + offset = netdfs_dissect_struct_dfs_StorageInfo2(tvb,offset,pinfo,tree,drep,hf_netdfs_dfs_Info6_stores,0); + + return offset; +} + +int +netdfs_dissect_struct_dfs_Info6(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_netdfs_dfs_Info6); + } + + offset = netdfs_dissect_element_dfs_Info6_entry_path(tvb, offset, pinfo, tree, drep); + + offset = netdfs_dissect_element_dfs_Info6_comment(tvb, offset, pinfo, tree, drep); + + offset = netdfs_dissect_element_dfs_Info6_state(tvb, offset, pinfo, tree, drep); + + offset = netdfs_dissect_element_dfs_Info6_timeout(tvb, offset, pinfo, tree, drep); + + offset = netdfs_dissect_element_dfs_Info6_guid(tvb, offset, pinfo, tree, drep); + + offset = netdfs_dissect_element_dfs_Info6_flags(tvb, offset, pinfo, tree, drep); + + offset = netdfs_dissect_element_dfs_Info6_pktsize(tvb, offset, pinfo, tree, drep); + + offset = netdfs_dissect_element_dfs_Info6_num_stores(tvb, offset, pinfo, tree, drep); + + offset = netdfs_dissect_element_dfs_Info6_stores(tvb, offset, pinfo, tree, drep); + + + proto_item_set_len(item, offset-old_offset); + + return offset; +} + +/* IDL: typedef struct { */ +/* IDL: GUID generation_guid; */ +/* IDL: } dfs_Info7; */ + +static int +netdfs_dissect_element_dfs_Info7_generation_guid(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, drep, hf_netdfs_dfs_Info7_generation_guid, NULL); + + return offset; +} + +int +netdfs_dissect_struct_dfs_Info7(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_netdfs_dfs_Info7); + } + + offset = netdfs_dissect_element_dfs_Info7_generation_guid(tvb, offset, pinfo, tree, drep); + + + proto_item_set_len(item, offset-old_offset); + + return offset; +} + /* IDL: typedef struct { */ /* IDL: [charset(UTF16)] [unique(1)] uint16 *comment; */ /* IDL: } dfs_Info100; */ @@ -839,13 +1737,13 @@ netdfs_dissect_struct_dfs_Info100(tvbuff_t *tvb, int offset, packet_info *pinfo, } /* IDL: typedef struct { */ -/* IDL: uint32 state; */ +/* IDL: dfs_StorageState state; */ /* IDL: } dfs_Info101; */ static int netdfs_dissect_element_dfs_Info101_state(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) { - offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_netdfs_dfs_Info101_state,NULL); + offset = netdfs_dissect_bitmap_dfs_StorageState(tvb, offset, pinfo, tree, drep, hf_netdfs_dfs_Info101_state, 0); return offset; } @@ -910,6 +1808,216 @@ netdfs_dissect_struct_dfs_Info102(tvbuff_t *tvb, int offset, packet_info *pinfo, return offset; } +/* IDL: typedef struct { */ +/* IDL: dfs_PropertyFlags flags; */ +/* IDL: } dfs_Info103; */ + +static int +netdfs_dissect_element_dfs_Info103_flags(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + offset = netdfs_dissect_bitmap_dfs_PropertyFlags(tvb, offset, pinfo, tree, drep, hf_netdfs_dfs_Info103_flags, 0); + + return offset; +} + +int +netdfs_dissect_struct_dfs_Info103(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_netdfs_dfs_Info103); + } + + offset = netdfs_dissect_element_dfs_Info103_flags(tvb, offset, pinfo, tree, drep); + + + proto_item_set_len(item, offset-old_offset); + + return offset; +} + +/* IDL: typedef struct { */ +/* IDL: dfs_Target_Priority priority; */ +/* IDL: } dfs_Info104; */ + +static int +netdfs_dissect_element_dfs_Info104_priority(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + offset = netdfs_dissect_struct_dfs_Target_Priority(tvb,offset,pinfo,tree,drep,hf_netdfs_dfs_Info104_priority,0); + + return offset; +} + +int +netdfs_dissect_struct_dfs_Info104(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_netdfs_dfs_Info104); + } + + offset = netdfs_dissect_element_dfs_Info104_priority(tvb, offset, pinfo, tree, drep); + + + proto_item_set_len(item, offset-old_offset); + + return offset; +} + +/* IDL: typedef struct { */ +/* IDL: [charset(UTF16)] [unique(1)] uint16 *comment; */ +/* IDL: dfs_VolumeState state; */ +/* IDL: uint32 timeout; */ +/* IDL: uint32 property_flag_mask; */ +/* IDL: uint32 property_flags; */ +/* IDL: } dfs_Info105; */ + +static int +netdfs_dissect_element_dfs_Info105_comment(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, netdfs_dissect_element_dfs_Info105_comment_, NDR_POINTER_UNIQUE, "Pointer to Comment (uint16)",hf_netdfs_dfs_Info105_comment); + + return offset; +} + +static int +netdfs_dissect_element_dfs_Info105_comment_(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + char *data; + + offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_netdfs_dfs_Info105_comment, FALSE, &data); + proto_item_append_text(tree, ": %s", data); + + return offset; +} + +static int +netdfs_dissect_element_dfs_Info105_state(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + offset = netdfs_dissect_bitmap_dfs_VolumeState(tvb, offset, pinfo, tree, drep, hf_netdfs_dfs_Info105_state, 0); + + return offset; +} + +static int +netdfs_dissect_element_dfs_Info105_timeout(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_netdfs_dfs_Info105_timeout,NULL); + + return offset; +} + +static int +netdfs_dissect_element_dfs_Info105_property_flag_mask(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_netdfs_dfs_Info105_property_flag_mask,NULL); + + return offset; +} + +static int +netdfs_dissect_element_dfs_Info105_property_flags(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_netdfs_dfs_Info105_property_flags,NULL); + + return offset; +} + +int +netdfs_dissect_struct_dfs_Info105(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_netdfs_dfs_Info105); + } + + offset = netdfs_dissect_element_dfs_Info105_comment(tvb, offset, pinfo, tree, drep); + + offset = netdfs_dissect_element_dfs_Info105_state(tvb, offset, pinfo, tree, drep); + + offset = netdfs_dissect_element_dfs_Info105_timeout(tvb, offset, pinfo, tree, drep); + + offset = netdfs_dissect_element_dfs_Info105_property_flag_mask(tvb, offset, pinfo, tree, drep); + + offset = netdfs_dissect_element_dfs_Info105_property_flags(tvb, offset, pinfo, tree, drep); + + + proto_item_set_len(item, offset-old_offset); + + return offset; +} + +/* IDL: typedef struct { */ +/* IDL: dfs_StorageState state; */ +/* IDL: dfs_Target_Priority priority; */ +/* IDL: } dfs_Info106; */ + +static int +netdfs_dissect_element_dfs_Info106_state(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + offset = netdfs_dissect_bitmap_dfs_StorageState(tvb, offset, pinfo, tree, drep, hf_netdfs_dfs_Info106_state, 0); + + return offset; +} + +static int +netdfs_dissect_element_dfs_Info106_priority(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + offset = netdfs_dissect_struct_dfs_Target_Priority(tvb,offset,pinfo,tree,drep,hf_netdfs_dfs_Info106_priority,0); + + return offset; +} + +int +netdfs_dissect_struct_dfs_Info106(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_netdfs_dfs_Info106); + } + + offset = netdfs_dissect_element_dfs_Info106_state(tvb, offset, pinfo, tree, drep); + + offset = netdfs_dissect_element_dfs_Info106_priority(tvb, offset, pinfo, tree, drep); + + + proto_item_set_len(item, offset-old_offset); + + return offset; +} + /* IDL: typedef struct { */ /* IDL: [charset(UTF16)] [unique(1)] uint16 *dom_root; */ /* IDL: } dfs_Info200; */ @@ -957,15 +2065,27 @@ netdfs_dissect_struct_dfs_Info200(tvbuff_t *tvb, int offset, packet_info *pinfo, return offset; } +/* IDL: typedef enum { */ +/* IDL: DFS_VOLUME_FLAVOR_STANDALONE=0x100, */ +/* IDL: DFS_VOLUME_FLAVOR_AD_BLOB=0x200, */ +/* IDL: } dfs_VolumeFlavor; */ + +int +netdfs_dissect_enum_dfs_VolumeFlavor(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep, int hf_index, guint32 param _U_) +{ + offset = dissect_ndr_uint16(tvb, offset, pinfo, tree, drep, hf_index, NULL); + return offset; +} + /* IDL: typedef struct { */ -/* IDL: uint32 flags; */ +/* IDL: dfs_VolumeFlavor flavor; */ /* IDL: [charset(UTF16)] [unique(1)] uint16 *dom_root; */ /* IDL: } dfs_Info300; */ static int -netdfs_dissect_element_dfs_Info300_flags(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +netdfs_dissect_element_dfs_Info300_flavor(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) { - offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_netdfs_dfs_Info300_flags,NULL); + offset = netdfs_dissect_enum_dfs_VolumeFlavor(tvb, offset, pinfo, tree, drep, hf_netdfs_dfs_Info300_flavor, 0); return offset; } @@ -1005,7 +2125,7 @@ netdfs_dissect_struct_dfs_Info300(tvbuff_t *tvb, int offset, packet_info *pinfo, tree = proto_item_add_subtree(item, ett_netdfs_dfs_Info300); } - offset = netdfs_dissect_element_dfs_Info300_flags(tvb, offset, pinfo, tree, drep); + offset = netdfs_dissect_element_dfs_Info300_flavor(tvb, offset, pinfo, tree, drep); offset = netdfs_dissect_element_dfs_Info300_dom_root(tvb, offset, pinfo, tree, drep); @@ -1021,9 +2141,16 @@ netdfs_dissect_struct_dfs_Info300(tvbuff_t *tvb, int offset, packet_info *pinfo, /* IDL: [case(2)] [unique(1)] [case(2)] dfs_Info2 *info2; */ /* IDL: [case(3)] [unique(1)] [case(3)] dfs_Info3 *info3; */ /* IDL: [case(4)] [unique(1)] [case(4)] dfs_Info4 *info4; */ +/* IDL: [case(5)] [unique(1)] [case(5)] dfs_Info5 *info5; */ +/* IDL: [case(6)] [unique(1)] [case(6)] dfs_Info6 *info6; */ +/* IDL: [case(7)] [unique(1)] [case(7)] dfs_Info7 *info7; */ /* IDL: [case(100)] [unique(1)] [case(100)] dfs_Info100 *info100; */ /* IDL: [case(101)] [unique(1)] [case(101)] dfs_Info101 *info101; */ /* IDL: [case(102)] [unique(1)] [case(102)] dfs_Info102 *info102; */ +/* IDL: [case(103)] [unique(1)] [case(103)] dfs_Info103 *info103; */ +/* IDL: [case(104)] [unique(1)] [case(104)] dfs_Info104 *info104; */ +/* IDL: [case(105)] [unique(1)] [case(105)] dfs_Info105 *info105; */ +/* IDL: [case(106)] [unique(1)] [case(106)] dfs_Info106 *info106; */ /* IDL: } dfs_Info; */ static int @@ -1106,6 +2233,54 @@ netdfs_dissect_element_dfs_Info_info4_(tvbuff_t *tvb, int offset, packet_info *p return offset; } +static int +netdfs_dissect_element_dfs_Info_info5(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, netdfs_dissect_element_dfs_Info_info5_, NDR_POINTER_UNIQUE, "Pointer to Info5 (dfs_Info5)",hf_netdfs_dfs_Info_info5); + + return offset; +} + +static int +netdfs_dissect_element_dfs_Info_info5_(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + offset = netdfs_dissect_struct_dfs_Info5(tvb,offset,pinfo,tree,drep,hf_netdfs_dfs_Info_info5,0); + + return offset; +} + +static int +netdfs_dissect_element_dfs_Info_info6(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, netdfs_dissect_element_dfs_Info_info6_, NDR_POINTER_UNIQUE, "Pointer to Info6 (dfs_Info6)",hf_netdfs_dfs_Info_info6); + + return offset; +} + +static int +netdfs_dissect_element_dfs_Info_info6_(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + offset = netdfs_dissect_struct_dfs_Info6(tvb,offset,pinfo,tree,drep,hf_netdfs_dfs_Info_info6,0); + + return offset; +} + +static int +netdfs_dissect_element_dfs_Info_info7(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, netdfs_dissect_element_dfs_Info_info7_, NDR_POINTER_UNIQUE, "Pointer to Info7 (dfs_Info7)",hf_netdfs_dfs_Info_info7); + + return offset; +} + +static int +netdfs_dissect_element_dfs_Info_info7_(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + offset = netdfs_dissect_struct_dfs_Info7(tvb,offset,pinfo,tree,drep,hf_netdfs_dfs_Info_info7,0); + + return offset; +} + static int netdfs_dissect_element_dfs_Info_info100(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) { @@ -1154,6 +2329,70 @@ netdfs_dissect_element_dfs_Info_info102_(tvbuff_t *tvb, int offset, packet_info return offset; } +static int +netdfs_dissect_element_dfs_Info_info103(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, netdfs_dissect_element_dfs_Info_info103_, NDR_POINTER_UNIQUE, "Pointer to Info103 (dfs_Info103)",hf_netdfs_dfs_Info_info103); + + return offset; +} + +static int +netdfs_dissect_element_dfs_Info_info103_(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + offset = netdfs_dissect_struct_dfs_Info103(tvb,offset,pinfo,tree,drep,hf_netdfs_dfs_Info_info103,0); + + return offset; +} + +static int +netdfs_dissect_element_dfs_Info_info104(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, netdfs_dissect_element_dfs_Info_info104_, NDR_POINTER_UNIQUE, "Pointer to Info104 (dfs_Info104)",hf_netdfs_dfs_Info_info104); + + return offset; +} + +static int +netdfs_dissect_element_dfs_Info_info104_(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + offset = netdfs_dissect_struct_dfs_Info104(tvb,offset,pinfo,tree,drep,hf_netdfs_dfs_Info_info104,0); + + return offset; +} + +static int +netdfs_dissect_element_dfs_Info_info105(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, netdfs_dissect_element_dfs_Info_info105_, NDR_POINTER_UNIQUE, "Pointer to Info105 (dfs_Info105)",hf_netdfs_dfs_Info_info105); + + return offset; +} + +static int +netdfs_dissect_element_dfs_Info_info105_(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + offset = netdfs_dissect_struct_dfs_Info105(tvb,offset,pinfo,tree,drep,hf_netdfs_dfs_Info_info105,0); + + return offset; +} + +static int +netdfs_dissect_element_dfs_Info_info106(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, netdfs_dissect_element_dfs_Info_info106_, NDR_POINTER_UNIQUE, "Pointer to Info106 (dfs_Info106)",hf_netdfs_dfs_Info_info106); + + return offset; +} + +static int +netdfs_dissect_element_dfs_Info_info106_(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + offset = netdfs_dissect_struct_dfs_Info106(tvb,offset,pinfo,tree,drep,hf_netdfs_dfs_Info_info106,0); + + return offset; +} + static int netdfs_dissect_dfs_Info(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *parent_tree, guint8 *drep, int hf_index, guint32 param _U_) { @@ -1192,6 +2431,18 @@ netdfs_dissect_dfs_Info(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tre offset = netdfs_dissect_element_dfs_Info_info4(tvb, offset, pinfo, tree, drep); break; + case 5: + offset = netdfs_dissect_element_dfs_Info_info5(tvb, offset, pinfo, tree, drep); + break; + + case 6: + offset = netdfs_dissect_element_dfs_Info_info6(tvb, offset, pinfo, tree, drep); + break; + + case 7: + offset = netdfs_dissect_element_dfs_Info_info7(tvb, offset, pinfo, tree, drep); + break; + case 100: offset = netdfs_dissect_element_dfs_Info_info100(tvb, offset, pinfo, tree, drep); break; @@ -1203,6 +2454,22 @@ netdfs_dissect_dfs_Info(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tre case 102: offset = netdfs_dissect_element_dfs_Info_info102(tvb, offset, pinfo, tree, drep); break; + + case 103: + offset = netdfs_dissect_element_dfs_Info_info103(tvb, offset, pinfo, tree, drep); + break; + + case 104: + offset = netdfs_dissect_element_dfs_Info_info104(tvb, offset, pinfo, tree, drep); + break; + + case 105: + offset = netdfs_dissect_element_dfs_Info_info105(tvb, offset, pinfo, tree, drep); + break; + + case 106: + offset = netdfs_dissect_element_dfs_Info_info106(tvb, offset, pinfo, tree, drep); + break; } proto_item_set_len(item, offset-old_offset); @@ -1943,66 +3210,66 @@ netdfs_dissect_dfs_Add_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *p } static int -netdfs_dissect_element_dfs_Remove_path(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +netdfs_dissect_element_dfs_Remove_dfs_entry_path(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) { - offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netdfs_dissect_element_dfs_Remove_path_, NDR_POINTER_REF, "Pointer to Path (uint16)",hf_netdfs_dfs_Remove_path); + offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netdfs_dissect_element_dfs_Remove_dfs_entry_path_, NDR_POINTER_REF, "Pointer to Dfs Entry Path (uint16)",hf_netdfs_dfs_Remove_dfs_entry_path); return offset; } static int -netdfs_dissect_element_dfs_Remove_path_(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +netdfs_dissect_element_dfs_Remove_dfs_entry_path_(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) { char *data; - offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_netdfs_dfs_Remove_path, FALSE, &data); + offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_netdfs_dfs_Remove_dfs_entry_path, FALSE, &data); proto_item_append_text(tree, ": %s", data); return offset; } static int -netdfs_dissect_element_dfs_Remove_server(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +netdfs_dissect_element_dfs_Remove_servername(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) { - offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netdfs_dissect_element_dfs_Remove_server_, NDR_POINTER_UNIQUE, "Pointer to Server (uint16)",hf_netdfs_dfs_Remove_server); + offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netdfs_dissect_element_dfs_Remove_servername_, NDR_POINTER_UNIQUE, "Pointer to Servername (uint16)",hf_netdfs_dfs_Remove_servername); return offset; } static int -netdfs_dissect_element_dfs_Remove_server_(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +netdfs_dissect_element_dfs_Remove_servername_(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) { char *data; - offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_netdfs_dfs_Remove_server, FALSE, &data); + offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_netdfs_dfs_Remove_servername, FALSE, &data); proto_item_append_text(tree, ": %s", data); return offset; } static int -netdfs_dissect_element_dfs_Remove_share(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +netdfs_dissect_element_dfs_Remove_sharename(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) { - offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netdfs_dissect_element_dfs_Remove_share_, NDR_POINTER_UNIQUE, "Pointer to Share (uint16)",hf_netdfs_dfs_Remove_share); + offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netdfs_dissect_element_dfs_Remove_sharename_, NDR_POINTER_UNIQUE, "Pointer to Sharename (uint16)",hf_netdfs_dfs_Remove_sharename); return offset; } static int -netdfs_dissect_element_dfs_Remove_share_(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +netdfs_dissect_element_dfs_Remove_sharename_(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) { char *data; - offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_netdfs_dfs_Remove_share, FALSE, &data); + offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_netdfs_dfs_Remove_sharename, FALSE, &data); proto_item_append_text(tree, ": %s", data); return offset; } /* IDL: WERROR dfs_Remove( */ -/* IDL: [charset(UTF16)] [in] [ref] uint16 *path, */ -/* IDL: [charset(UTF16)] [unique(1)] [in] uint16 *server, */ -/* IDL: [charset(UTF16)] [unique(1)] [in] uint16 *share */ +/* IDL: [charset(UTF16)] [in] [ref] uint16 *dfs_entry_path, */ +/* IDL: [charset(UTF16)] [unique(1)] [in] uint16 *servername, */ +/* IDL: [charset(UTF16)] [unique(1)] [in] uint16 *sharename */ /* IDL: ); */ static int @@ -2021,17 +3288,94 @@ netdfs_dissect_dfs_Remove_response(tvbuff_t *tvb _U_, int offset _U_, packet_inf static int netdfs_dissect_dfs_Remove_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_) { - offset = netdfs_dissect_element_dfs_Remove_path(tvb, offset, pinfo, tree, drep); + offset = netdfs_dissect_element_dfs_Remove_dfs_entry_path(tvb, offset, pinfo, tree, drep); offset = dissect_deferred_pointers(pinfo, tvb, offset, drep); - offset = netdfs_dissect_element_dfs_Remove_server(tvb, offset, pinfo, tree, drep); + offset = netdfs_dissect_element_dfs_Remove_servername(tvb, offset, pinfo, tree, drep); offset = dissect_deferred_pointers(pinfo, tvb, offset, drep); - offset = netdfs_dissect_element_dfs_Remove_share(tvb, offset, pinfo, tree, drep); + offset = netdfs_dissect_element_dfs_Remove_sharename(tvb, offset, pinfo, tree, drep); offset = dissect_deferred_pointers(pinfo, tvb, offset, drep); return offset; } +static int +netdfs_dissect_element_dfs_SetInfo_dfs_entry_path(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + char *data; + + offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_netdfs_dfs_SetInfo_dfs_entry_path, FALSE, &data); + proto_item_append_text(tree, ": %s", data); + + return offset; +} + +static int +netdfs_dissect_element_dfs_SetInfo_servername(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netdfs_dissect_element_dfs_SetInfo_servername_, NDR_POINTER_UNIQUE, "Pointer to Servername (uint16)",hf_netdfs_dfs_SetInfo_servername); + + return offset; +} + +static int +netdfs_dissect_element_dfs_SetInfo_servername_(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + char *data; + + offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_netdfs_dfs_SetInfo_servername, FALSE, &data); + proto_item_append_text(tree, ": %s", data); + + return offset; +} + +static int +netdfs_dissect_element_dfs_SetInfo_sharename(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netdfs_dissect_element_dfs_SetInfo_sharename_, NDR_POINTER_UNIQUE, "Pointer to Sharename (uint16)",hf_netdfs_dfs_SetInfo_sharename); + + return offset; +} + +static int +netdfs_dissect_element_dfs_SetInfo_sharename_(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + char *data; + + offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_netdfs_dfs_SetInfo_sharename, FALSE, &data); + proto_item_append_text(tree, ": %s", data); + + return offset; +} + +static int +netdfs_dissect_element_dfs_SetInfo_level(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_netdfs_dfs_SetInfo_level,NULL); + + return offset; +} + +static int +netdfs_dissect_element_dfs_SetInfo_info(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netdfs_dissect_element_dfs_SetInfo_info_, NDR_POINTER_REF, "Pointer to Info (dfs_Info)",hf_netdfs_dfs_SetInfo_info); + + return offset; +} + +static int +netdfs_dissect_element_dfs_SetInfo_info_(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + offset = netdfs_dissect_dfs_Info(tvb, offset, pinfo, tree, drep, hf_netdfs_dfs_SetInfo_info, 0); + + return offset; +} + /* IDL: WERROR dfs_SetInfo( */ -/* IDL: */ +/* IDL: [charset(UTF16)] [in] uint16 dfs_entry_path[*], */ +/* IDL: [charset(UTF16)] [unique(1)] [in] uint16 *servername, */ +/* IDL: [charset(UTF16)] [unique(1)] [in] uint16 *sharename, */ +/* IDL: [in] uint32 level, */ +/* IDL: [switch_is(level)] [in] [ref] dfs_Info *info */ /* IDL: ); */ static int @@ -2050,53 +3394,63 @@ netdfs_dissect_dfs_SetInfo_response(tvbuff_t *tvb _U_, int offset _U_, packet_in static int netdfs_dissect_dfs_SetInfo_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_) { + offset = netdfs_dissect_element_dfs_SetInfo_dfs_entry_path(tvb, offset, pinfo, tree, drep); + offset = dissect_deferred_pointers(pinfo, tvb, offset, drep); + offset = netdfs_dissect_element_dfs_SetInfo_servername(tvb, offset, pinfo, tree, drep); + offset = dissect_deferred_pointers(pinfo, tvb, offset, drep); + offset = netdfs_dissect_element_dfs_SetInfo_sharename(tvb, offset, pinfo, tree, drep); + offset = dissect_deferred_pointers(pinfo, tvb, offset, drep); + offset = netdfs_dissect_element_dfs_SetInfo_level(tvb, offset, pinfo, tree, drep); + offset = dissect_deferred_pointers(pinfo, tvb, offset, drep); + offset = netdfs_dissect_element_dfs_SetInfo_info(tvb, offset, pinfo, tree, drep); + offset = dissect_deferred_pointers(pinfo, tvb, offset, drep); return offset; } static int -netdfs_dissect_element_dfs_GetInfo_path(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +netdfs_dissect_element_dfs_GetInfo_dfs_entry_path(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) { char *data; - offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_netdfs_dfs_GetInfo_path, FALSE, &data); + offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_netdfs_dfs_GetInfo_dfs_entry_path, FALSE, &data); proto_item_append_text(tree, ": %s", data); return offset; } static int -netdfs_dissect_element_dfs_GetInfo_server(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +netdfs_dissect_element_dfs_GetInfo_servername(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) { - offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netdfs_dissect_element_dfs_GetInfo_server_, NDR_POINTER_UNIQUE, "Pointer to Server (uint16)",hf_netdfs_dfs_GetInfo_server); + offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netdfs_dissect_element_dfs_GetInfo_servername_, NDR_POINTER_UNIQUE, "Pointer to Servername (uint16)",hf_netdfs_dfs_GetInfo_servername); return offset; } static int -netdfs_dissect_element_dfs_GetInfo_server_(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +netdfs_dissect_element_dfs_GetInfo_servername_(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) { char *data; - offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_netdfs_dfs_GetInfo_server, FALSE, &data); + offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_netdfs_dfs_GetInfo_servername, FALSE, &data); proto_item_append_text(tree, ": %s", data); return offset; } static int -netdfs_dissect_element_dfs_GetInfo_share(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +netdfs_dissect_element_dfs_GetInfo_sharename(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) { - offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netdfs_dissect_element_dfs_GetInfo_share_, NDR_POINTER_UNIQUE, "Pointer to Share (uint16)",hf_netdfs_dfs_GetInfo_share); + offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netdfs_dissect_element_dfs_GetInfo_sharename_, NDR_POINTER_UNIQUE, "Pointer to Sharename (uint16)",hf_netdfs_dfs_GetInfo_sharename); return offset; } static int -netdfs_dissect_element_dfs_GetInfo_share_(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +netdfs_dissect_element_dfs_GetInfo_sharename_(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) { char *data; - offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_netdfs_dfs_GetInfo_share, FALSE, &data); + offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_netdfs_dfs_GetInfo_sharename, FALSE, &data); proto_item_append_text(tree, ": %s", data); return offset; @@ -2127,9 +3481,9 @@ netdfs_dissect_element_dfs_GetInfo_info_(tvbuff_t *tvb, int offset, packet_info } /* IDL: WERROR dfs_GetInfo( */ -/* IDL: [charset(UTF16)] [in] uint16 path[*], */ -/* IDL: [charset(UTF16)] [unique(1)] [in] uint16 *server, */ -/* IDL: [charset(UTF16)] [unique(1)] [in] uint16 *share, */ +/* IDL: [charset(UTF16)] [in] uint16 dfs_entry_path[*], */ +/* IDL: [charset(UTF16)] [unique(1)] [in] uint16 *servername, */ +/* IDL: [charset(UTF16)] [unique(1)] [in] uint16 *sharename, */ /* IDL: [in] uint32 level, */ /* IDL: [switch_is(level)] [out] [ref] dfs_Info *info */ /* IDL: ); */ @@ -2153,11 +3507,11 @@ netdfs_dissect_dfs_GetInfo_response(tvbuff_t *tvb _U_, int offset _U_, packet_in static int netdfs_dissect_dfs_GetInfo_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_) { - offset = netdfs_dissect_element_dfs_GetInfo_path(tvb, offset, pinfo, tree, drep); + offset = netdfs_dissect_element_dfs_GetInfo_dfs_entry_path(tvb, offset, pinfo, tree, drep); offset = dissect_deferred_pointers(pinfo, tvb, offset, drep); - offset = netdfs_dissect_element_dfs_GetInfo_server(tvb, offset, pinfo, tree, drep); + offset = netdfs_dissect_element_dfs_GetInfo_servername(tvb, offset, pinfo, tree, drep); offset = dissect_deferred_pointers(pinfo, tvb, offset, drep); - offset = netdfs_dissect_element_dfs_GetInfo_share(tvb, offset, pinfo, tree, drep); + offset = netdfs_dissect_element_dfs_GetInfo_sharename(tvb, offset, pinfo, tree, drep); offset = dissect_deferred_pointers(pinfo, tvb, offset, drep); offset = netdfs_dissect_element_dfs_GetInfo_level(tvb, offset, pinfo, tree, drep); offset = dissect_deferred_pointers(pinfo, tvb, offset, drep); @@ -2390,8 +3744,52 @@ netdfs_dissect_dfs_RemoveFtRoot_request(tvbuff_t *tvb _U_, int offset _U_, packe return offset; } +static int +netdfs_dissect_element_dfs_AddStdRoot_servername(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + char *data; + + offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_netdfs_dfs_AddStdRoot_servername, FALSE, &data); + proto_item_append_text(tree, ": %s", data); + + return offset; +} + +static int +netdfs_dissect_element_dfs_AddStdRoot_rootshare(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + char *data; + + offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_netdfs_dfs_AddStdRoot_rootshare, FALSE, &data); + proto_item_append_text(tree, ": %s", data); + + return offset; +} + +static int +netdfs_dissect_element_dfs_AddStdRoot_comment(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + char *data; + + offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_netdfs_dfs_AddStdRoot_comment, FALSE, &data); + proto_item_append_text(tree, ": %s", data); + + return offset; +} + +static int +netdfs_dissect_element_dfs_AddStdRoot_flags(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_netdfs_dfs_AddStdRoot_flags,NULL); + + return offset; +} + /* IDL: WERROR dfs_AddStdRoot( */ -/* IDL: */ +/* IDL: [charset(UTF16)] [in] uint16 servername[*], */ +/* IDL: [charset(UTF16)] [in] uint16 rootshare[*], */ +/* IDL: [charset(UTF16)] [in] uint16 comment[*], */ +/* IDL: [in] uint32 flags */ /* IDL: ); */ static int @@ -2410,11 +3808,51 @@ netdfs_dissect_dfs_AddStdRoot_response(tvbuff_t *tvb _U_, int offset _U_, packet static int netdfs_dissect_dfs_AddStdRoot_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_) { + offset = netdfs_dissect_element_dfs_AddStdRoot_servername(tvb, offset, pinfo, tree, drep); + offset = dissect_deferred_pointers(pinfo, tvb, offset, drep); + offset = netdfs_dissect_element_dfs_AddStdRoot_rootshare(tvb, offset, pinfo, tree, drep); + offset = dissect_deferred_pointers(pinfo, tvb, offset, drep); + offset = netdfs_dissect_element_dfs_AddStdRoot_comment(tvb, offset, pinfo, tree, drep); + offset = dissect_deferred_pointers(pinfo, tvb, offset, drep); + offset = netdfs_dissect_element_dfs_AddStdRoot_flags(tvb, offset, pinfo, tree, drep); + offset = dissect_deferred_pointers(pinfo, tvb, offset, drep); + return offset; +} + +static int +netdfs_dissect_element_dfs_RemoveStdRoot_servername(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + char *data; + + offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_netdfs_dfs_RemoveStdRoot_servername, FALSE, &data); + proto_item_append_text(tree, ": %s", data); + + return offset; +} + +static int +netdfs_dissect_element_dfs_RemoveStdRoot_rootshare(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + char *data; + + offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_netdfs_dfs_RemoveStdRoot_rootshare, FALSE, &data); + proto_item_append_text(tree, ": %s", data); + + return offset; +} + +static int +netdfs_dissect_element_dfs_RemoveStdRoot_flags(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_netdfs_dfs_RemoveStdRoot_flags,NULL); + return offset; } /* IDL: WERROR dfs_RemoveStdRoot( */ -/* IDL: */ +/* IDL: [charset(UTF16)] [in] uint16 servername[*], */ +/* IDL: [charset(UTF16)] [in] uint16 rootshare[*], */ +/* IDL: [in] uint32 flags */ /* IDL: ); */ static int @@ -2433,11 +3871,45 @@ netdfs_dissect_dfs_RemoveStdRoot_response(tvbuff_t *tvb _U_, int offset _U_, pac static int netdfs_dissect_dfs_RemoveStdRoot_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_) { + offset = netdfs_dissect_element_dfs_RemoveStdRoot_servername(tvb, offset, pinfo, tree, drep); + offset = dissect_deferred_pointers(pinfo, tvb, offset, drep); + offset = netdfs_dissect_element_dfs_RemoveStdRoot_rootshare(tvb, offset, pinfo, tree, drep); + offset = dissect_deferred_pointers(pinfo, tvb, offset, drep); + offset = netdfs_dissect_element_dfs_RemoveStdRoot_flags(tvb, offset, pinfo, tree, drep); + offset = dissect_deferred_pointers(pinfo, tvb, offset, drep); + return offset; +} + +static int +netdfs_dissect_element_dfs_ManagerInitialize_servername(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netdfs_dissect_element_dfs_ManagerInitialize_servername_, NDR_POINTER_REF, "Pointer to Servername (uint16)",hf_netdfs_dfs_ManagerInitialize_servername); + + return offset; +} + +static int +netdfs_dissect_element_dfs_ManagerInitialize_servername_(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + char *data; + + offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_netdfs_dfs_ManagerInitialize_servername, FALSE, &data); + proto_item_append_text(tree, ": %s", data); + + return offset; +} + +static int +netdfs_dissect_element_dfs_ManagerInitialize_flags(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_netdfs_dfs_ManagerInitialize_flags,NULL); + return offset; } /* IDL: WERROR dfs_ManagerInitialize( */ -/* IDL: */ +/* IDL: [charset(UTF16)] [in] [ref] uint16 *servername, */ +/* IDL: [in] uint32 flags */ /* IDL: ); */ static int @@ -2456,11 +3928,62 @@ netdfs_dissect_dfs_ManagerInitialize_response(tvbuff_t *tvb _U_, int offset _U_, static int netdfs_dissect_dfs_ManagerInitialize_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_) { + offset = netdfs_dissect_element_dfs_ManagerInitialize_servername(tvb, offset, pinfo, tree, drep); + offset = dissect_deferred_pointers(pinfo, tvb, offset, drep); + offset = netdfs_dissect_element_dfs_ManagerInitialize_flags(tvb, offset, pinfo, tree, drep); + offset = dissect_deferred_pointers(pinfo, tvb, offset, drep); + return offset; +} + +static int +netdfs_dissect_element_dfs_AddStdRootForced_servername(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + char *data; + + offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_netdfs_dfs_AddStdRootForced_servername, FALSE, &data); + proto_item_append_text(tree, ": %s", data); + + return offset; +} + +static int +netdfs_dissect_element_dfs_AddStdRootForced_rootshare(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + char *data; + + offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_netdfs_dfs_AddStdRootForced_rootshare, FALSE, &data); + proto_item_append_text(tree, ": %s", data); + + return offset; +} + +static int +netdfs_dissect_element_dfs_AddStdRootForced_comment(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + char *data; + + offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_netdfs_dfs_AddStdRootForced_comment, FALSE, &data); + proto_item_append_text(tree, ": %s", data); + + return offset; +} + +static int +netdfs_dissect_element_dfs_AddStdRootForced_store(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + char *data; + + offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_netdfs_dfs_AddStdRootForced_store, FALSE, &data); + proto_item_append_text(tree, ": %s", data); + return offset; } /* IDL: WERROR dfs_AddStdRootForced( */ -/* IDL: */ +/* IDL: [charset(UTF16)] [in] uint16 servername[*], */ +/* IDL: [charset(UTF16)] [in] uint16 rootshare[*], */ +/* IDL: [charset(UTF16)] [in] uint16 comment[*], */ +/* IDL: [charset(UTF16)] [in] uint16 store[*] */ /* IDL: ); */ static int @@ -2479,6 +4002,14 @@ netdfs_dissect_dfs_AddStdRootForced_response(tvbuff_t *tvb _U_, int offset _U_, static int netdfs_dissect_dfs_AddStdRootForced_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_) { + offset = netdfs_dissect_element_dfs_AddStdRootForced_servername(tvb, offset, pinfo, tree, drep); + offset = dissect_deferred_pointers(pinfo, tvb, offset, drep); + offset = netdfs_dissect_element_dfs_AddStdRootForced_rootshare(tvb, offset, pinfo, tree, drep); + offset = dissect_deferred_pointers(pinfo, tvb, offset, drep); + offset = netdfs_dissect_element_dfs_AddStdRootForced_comment(tvb, offset, pinfo, tree, drep); + offset = dissect_deferred_pointers(pinfo, tvb, offset, drep); + offset = netdfs_dissect_element_dfs_AddStdRootForced_store(tvb, offset, pinfo, tree, drep); + offset = dissect_deferred_pointers(pinfo, tvb, offset, drep); return offset; } @@ -2598,11 +4129,11 @@ netdfs_dissect_dfs_Remove2_request(tvbuff_t *tvb _U_, int offset _U_, packet_inf } static int -netdfs_dissect_element_dfs_EnumEx_name(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +netdfs_dissect_element_dfs_EnumEx_dfs_name(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) { char *data; - offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_netdfs_dfs_EnumEx_name, FALSE, &data); + offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_netdfs_dfs_EnumEx_dfs_name, FALSE, &data); proto_item_append_text(tree, ": %s", data); return offset; @@ -2657,7 +4188,7 @@ netdfs_dissect_element_dfs_EnumEx_total_(tvbuff_t *tvb, int offset, packet_info } /* IDL: WERROR dfs_EnumEx( */ -/* IDL: [charset(UTF16)] [in] uint16 name[*], */ +/* IDL: [charset(UTF16)] [in] uint16 dfs_name[*], */ /* IDL: [in] uint32 level, */ /* IDL: [in] uint32 bufsize, */ /* IDL: [out] [in] [unique(1)] dfs_EnumStruct *info, */ @@ -2686,7 +4217,7 @@ netdfs_dissect_dfs_EnumEx_response(tvbuff_t *tvb _U_, int offset _U_, packet_inf static int netdfs_dissect_dfs_EnumEx_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_) { - offset = netdfs_dissect_element_dfs_EnumEx_name(tvb, offset, pinfo, tree, drep); + offset = netdfs_dissect_element_dfs_EnumEx_dfs_name(tvb, offset, pinfo, tree, drep); offset = dissect_deferred_pointers(pinfo, tvb, offset, drep); offset = netdfs_dissect_element_dfs_EnumEx_level(tvb, offset, pinfo, tree, drep); offset = dissect_deferred_pointers(pinfo, tvb, offset, drep); @@ -2778,124 +4309,266 @@ void proto_register_dcerpc_netdfs(void) static hf_register_info hf[] = { { &hf_netdfs_dfs_EnumEx_level, { "Level", "netdfs.dfs_EnumEx.level", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, - { &hf_netdfs_dfs_EnumEx_total, - { "Total", "netdfs.dfs_EnumEx.total", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, + { &hf_netdfs_dfs_Info5_pktsize, + { "Pktsize", "netdfs.dfs_Info5.pktsize", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, + { &hf_netdfs_dfs_StorageState_DFS_STORAGE_STATE_ONLINE, + { "Dfs Storage State Online", "netdfs.dfs_StorageState.DFS_STORAGE_STATE_ONLINE", FT_BOOLEAN, 32, TFS(&dfs_StorageState_DFS_STORAGE_STATE_ONLINE_tfs), ( 2 ), "", HFILL }}, { &hf_netdfs_dfs_EnumEx_bufsize, { "Bufsize", "netdfs.dfs_EnumEx.bufsize", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_netdfs_dfs_Info4_comment, { "Comment", "netdfs.dfs_Info4.comment", FT_STRING, BASE_DEC, NULL, 0, "", HFILL }}, - { &hf_netdfs_dfs_Remove_server, - { "Server", "netdfs.dfs_Remove.server", FT_STRING, BASE_DEC, NULL, 0, "", HFILL }}, - { &hf_netdfs_dfs_GetInfo_level, - { "Level", "netdfs.dfs_GetInfo.level", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, - { &hf_netdfs_dfs_Add_server, - { "Server", "netdfs.dfs_Add.server", FT_STRING, BASE_DEC, NULL, 0, "", HFILL }}, - { &hf_netdfs_dfs_EnumArray300_s, - { "S", "netdfs.dfs_EnumArray300.s", FT_NONE, BASE_NONE, NULL, 0, "", HFILL }}, - { &hf_netdfs_werror, - { "Windows Error", "netdfs.werror", FT_UINT32, BASE_HEX, VALS(DOS_errors), 0, "", HFILL }}, + { &hf_netdfs_dfs_PropertyFlags_DFS_PROPERTY_FLAG_SITE_COSTING, + { "Dfs Property Flag Site Costing", "netdfs.dfs_PropertyFlags.DFS_PROPERTY_FLAG_SITE_COSTING", FT_BOOLEAN, 32, TFS(&dfs_PropertyFlags_DFS_PROPERTY_FLAG_SITE_COSTING_tfs), ( 0x04 ), "", HFILL }}, + { &hf_netdfs_dfs_PropertyFlags_DFS_PROPERTY_FLAG_ROOT_SCALABILITY, + { "Dfs Property Flag Root Scalability", "netdfs.dfs_PropertyFlags.DFS_PROPERTY_FLAG_ROOT_SCALABILITY", FT_BOOLEAN, 32, TFS(&dfs_PropertyFlags_DFS_PROPERTY_FLAG_ROOT_SCALABILITY_tfs), ( 0x02 ), "", HFILL }}, + { &hf_netdfs_dfs_VolumeState_DFS_VOLUME_STATE_OFFLINE, + { "Dfs Volume State Offline", "netdfs.dfs_VolumeState.DFS_VOLUME_STATE_OFFLINE", FT_BOOLEAN, 32, TFS(&dfs_VolumeState_DFS_VOLUME_STATE_OFFLINE_tfs), ( 0x4 ), "", HFILL }}, + { &hf_netdfs_dfs_Info5_guid, + { "Guid", "netdfs.dfs_Info5.guid", FT_GUID, BASE_NONE, NULL, 0, "", HFILL }}, + { &hf_netdfs_dfs_Target_Priority_target_priority_rank, + { "Target Priority Rank", "netdfs.dfs_Target_Priority.target_priority_rank", FT_UINT16, BASE_DEC, NULL, 0, "", HFILL }}, + { &hf_netdfs_dfs_AddStdRootForced_servername, + { "Servername", "netdfs.dfs_AddStdRootForced.servername", FT_STRING, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_netdfs_dfs_EnumInfo_info200, { "Info200", "netdfs.dfs_EnumInfo.info200", FT_NONE, BASE_NONE, NULL, 0, "", HFILL }}, - { &hf_netdfs_dfs_EnumArray3_count, - { "Count", "netdfs.dfs_EnumArray3.count", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, - { &hf_netdfs_dfs_EnumEx_name, - { "Name", "netdfs.dfs_EnumEx.name", FT_STRING, BASE_DEC, NULL, 0, "", HFILL }}, + { &hf_netdfs_dfs_PropertyFlags_DFS_PROPERTY_FLAG_TARGET_FAILBACK, + { "Dfs Property Flag Target Failback", "netdfs.dfs_PropertyFlags.DFS_PROPERTY_FLAG_TARGET_FAILBACK", FT_BOOLEAN, 32, TFS(&dfs_PropertyFlags_DFS_PROPERTY_FLAG_TARGET_FAILBACK_tfs), ( 0x08 ), "", HFILL }}, + { &hf_netdfs_dfs_Target_Priority_reserved, + { "Reserved", "netdfs.dfs_Target_Priority.reserved", FT_UINT16, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_netdfs_dfs_Enum_bufsize, { "Bufsize", "netdfs.dfs_Enum.bufsize", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, - { &hf_netdfs_dfs_Add_flags, - { "Flags", "netdfs.dfs_Add.flags", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, + { &hf_netdfs_dfs_AddStdRootForced_rootshare, + { "Rootshare", "netdfs.dfs_AddStdRootForced.rootshare", FT_STRING, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_netdfs_dfs_EnumArray4_s, { "S", "netdfs.dfs_EnumArray4.s", FT_NONE, BASE_NONE, NULL, 0, "", HFILL }}, + { &hf_netdfs_dfs_Info6_comment, + { "Comment", "netdfs.dfs_Info6.comment", FT_STRING, BASE_DEC, NULL, 0, "", HFILL }}, + { &hf_netdfs_dfs_Info6_entry_path, + { "Entry Path", "netdfs.dfs_Info6.entry_path", FT_STRING, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_netdfs_dfs_Info1_path, { "Path", "netdfs.dfs_Info1.path", FT_STRING, BASE_DEC, NULL, 0, "", HFILL }}, - { &hf_netdfs_dfs_GetInfo_path, - { "Path", "netdfs.dfs_GetInfo.path", FT_STRING, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_netdfs_dfs_EnumStruct_level, { "Level", "netdfs.dfs_EnumStruct.level", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, + { &hf_netdfs_dfs_GetInfo_sharename, + { "Sharename", "netdfs.dfs_GetInfo.sharename", FT_STRING, BASE_DEC, NULL, 0, "", HFILL }}, + { &hf_netdfs_dfs_Info105_comment, + { "Comment", "netdfs.dfs_Info105.comment", FT_STRING, BASE_DEC, NULL, 0, "", HFILL }}, + { &hf_netdfs_dfs_AddStdRoot_rootshare, + { "Rootshare", "netdfs.dfs_AddStdRoot.rootshare", FT_STRING, BASE_DEC, NULL, 0, "", HFILL }}, + { &hf_netdfs_dfs_SetInfo_level, + { "Level", "netdfs.dfs_SetInfo.level", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, + { &hf_netdfs_dfs_Info6_flags, + { "Flags", "netdfs.dfs_Info6.flags", FT_UINT32, BASE_HEX, NULL, 0, "", HFILL }}, + { &hf_netdfs_dfs_Info4_state, + { "State", "netdfs.dfs_Info4.state", FT_UINT32, BASE_HEX, NULL, 0, "", HFILL }}, + { &hf_netdfs_dfs_Info4_guid, + { "Guid", "netdfs.dfs_Info4.guid", FT_GUID, BASE_NONE, NULL, 0, "", HFILL }}, + { &hf_netdfs_dfs_Info105_property_flags, + { "Property Flags", "netdfs.dfs_Info105.property_flags", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, + { &hf_netdfs_dfs_Enum_total, + { "Total", "netdfs.dfs_Enum.total", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, + { &hf_netdfs_dfs_EnumStruct_e, + { "E", "netdfs.dfs_EnumStruct.e", FT_NONE, BASE_NONE, NULL, 0, "", HFILL }}, + { &hf_netdfs_dfs_EnumArray4_count, + { "Count", "netdfs.dfs_EnumArray4.count", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, + { &hf_netdfs_dfs_StorageInfo2_info, + { "Info", "netdfs.dfs_StorageInfo2.info", FT_NONE, BASE_NONE, NULL, 0, "", HFILL }}, + { &hf_netdfs_dfs_Info105_state, + { "State", "netdfs.dfs_Info105.state", FT_UINT32, BASE_HEX, NULL, 0, "", HFILL }}, + { &hf_netdfs_dfs_Info4_stores, + { "Stores", "netdfs.dfs_Info4.stores", FT_NONE, BASE_NONE, NULL, 0, "", HFILL }}, + { &hf_netdfs_dfs_Info4_num_stores, + { "Num Stores", "netdfs.dfs_Info4.num_stores", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, + { &hf_netdfs_dfs_GetInfo_dfs_entry_path, + { "Dfs Entry Path", "netdfs.dfs_GetInfo.dfs_entry_path", FT_STRING, BASE_DEC, NULL, 0, "", HFILL }}, + { &hf_netdfs_dfs_EnumArray1_count, + { "Count", "netdfs.dfs_EnumArray1.count", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, + { &hf_netdfs_dfs_StorageInfo_state, + { "State", "netdfs.dfs_StorageInfo.state", FT_UINT32, BASE_HEX, NULL, 0, "", HFILL }}, + { &hf_netdfs_dfs_AddStdRoot_servername, + { "Servername", "netdfs.dfs_AddStdRoot.servername", FT_STRING, BASE_DEC, NULL, 0, "", HFILL }}, + { &hf_netdfs_dfs_EnumArray200_s, + { "S", "netdfs.dfs_EnumArray200.s", FT_NONE, BASE_NONE, NULL, 0, "", HFILL }}, + { &hf_netdfs_dfs_Info6_stores, + { "Stores", "netdfs.dfs_Info6.stores", FT_NONE, BASE_NONE, NULL, 0, "", HFILL }}, + { &hf_netdfs_dfs_GetInfo_servername, + { "Servername", "netdfs.dfs_GetInfo.servername", FT_STRING, BASE_DEC, NULL, 0, "", HFILL }}, + { &hf_netdfs_dfs_StorageInfo2_target_priority, + { "Target Priority", "netdfs.dfs_StorageInfo2.target_priority", FT_NONE, BASE_NONE, NULL, 0, "", HFILL }}, + { &hf_netdfs_dfs_EnumArray2_s, + { "S", "netdfs.dfs_EnumArray2.s", FT_NONE, BASE_NONE, NULL, 0, "", HFILL }}, + { &hf_netdfs_dfs_EnumArray200_count, + { "Count", "netdfs.dfs_EnumArray200.count", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, + { &hf_netdfs_dfs_EnumEx_info, + { "Info", "netdfs.dfs_EnumEx.info", FT_NONE, BASE_NONE, NULL, 0, "", HFILL }}, + { &hf_netdfs_dfs_Info104_priority, + { "Priority", "netdfs.dfs_Info104.priority", FT_NONE, BASE_NONE, NULL, 0, "", HFILL }}, + { &hf_netdfs_dfs_Info4_timeout, + { "Timeout", "netdfs.dfs_Info4.timeout", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, + { &hf_netdfs_dfs_PropertyFlags_DFS_PROPERTY_FLAG_CLUSTER_ENABLED, + { "Dfs Property Flag Cluster Enabled", "netdfs.dfs_PropertyFlags.DFS_PROPERTY_FLAG_CLUSTER_ENABLED", FT_BOOLEAN, 32, TFS(&dfs_PropertyFlags_DFS_PROPERTY_FLAG_CLUSTER_ENABLED_tfs), ( 0x10 ), "", HFILL }}, + { &hf_netdfs_dfs_Enum_info, + { "Info", "netdfs.dfs_Enum.info", FT_NONE, BASE_NONE, NULL, 0, "", HFILL }}, + { &hf_netdfs_dfs_AddStdRoot_comment, + { "Comment", "netdfs.dfs_AddStdRoot.comment", FT_STRING, BASE_DEC, NULL, 0, "", HFILL }}, + { &hf_netdfs_dfs_GetInfo_info, + { "Info", "netdfs.dfs_GetInfo.info", FT_NONE, BASE_NONE, NULL, 0, "", HFILL }}, + { &hf_netdfs_dfs_Add_share, + { "Share", "netdfs.dfs_Add.share", FT_STRING, BASE_DEC, NULL, 0, "", HFILL }}, + { &hf_netdfs_dfs_Info100_comment, + { "Comment", "netdfs.dfs_Info100.comment", FT_STRING, BASE_DEC, NULL, 0, "", HFILL }}, + { &hf_netdfs_dfs_EnumInfo_info300, + { "Info300", "netdfs.dfs_EnumInfo.info300", FT_NONE, BASE_NONE, NULL, 0, "", HFILL }}, + { &hf_netdfs_dfs_Info6_state, + { "State", "netdfs.dfs_Info6.state", FT_UINT32, BASE_HEX, NULL, 0, "", HFILL }}, + { &hf_netdfs_dfs_VolumeState_DFS_VOLUME_STATE_AD_BLOB, + { "Dfs Volume State Ad Blob", "netdfs.dfs_VolumeState.DFS_VOLUME_STATE_AD_BLOB", FT_BOOLEAN, 32, TFS(&dfs_VolumeState_DFS_VOLUME_STATE_AD_BLOB_tfs), ( DFS_VOLUME_FLAVOR_AD_BLOB ), "", HFILL }}, + { &hf_netdfs_dfs_Add_comment, + { "Comment", "netdfs.dfs_Add.comment", FT_STRING, BASE_DEC, NULL, 0, "", HFILL }}, + { &hf_netdfs_dfs_Info6_timeout, + { "Timeout", "netdfs.dfs_Info6.timeout", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, + { &hf_netdfs_dfs_Info105_timeout, + { "Timeout", "netdfs.dfs_Info105.timeout", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, + { &hf_netdfs_dfs_Info3_comment, + { "Comment", "netdfs.dfs_Info3.comment", FT_STRING, BASE_DEC, NULL, 0, "", HFILL }}, + { &hf_netdfs_dfs_Info3_state, + { "State", "netdfs.dfs_Info3.state", FT_UINT32, BASE_HEX, NULL, 0, "", HFILL }}, + { &hf_netdfs_dfs_Info5_flags, + { "Flags", "netdfs.dfs_Info5.flags", FT_UINT32, BASE_HEX, NULL, 0, "", HFILL }}, + { &hf_netdfs_dfs_Info7_generation_guid, + { "Generation Guid", "netdfs.dfs_Info7.generation_guid", FT_GUID, BASE_NONE, NULL, 0, "", HFILL }}, + { &hf_netdfs_dfs_EnumEx_total, + { "Total", "netdfs.dfs_EnumEx.total", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, + { &hf_netdfs_dfs_GetInfo_level, + { "Level", "netdfs.dfs_GetInfo.level", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, + { &hf_netdfs_dfs_Info5_num_stores, + { "Num Stores", "netdfs.dfs_Info5.num_stores", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, + { &hf_netdfs_dfs_Info6_pktsize, + { "Pktsize", "netdfs.dfs_Info6.pktsize", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, + { &hf_netdfs_dfs_EnumArray300_s, + { "S", "netdfs.dfs_EnumArray300.s", FT_NONE, BASE_NONE, NULL, 0, "", HFILL }}, + { &hf_netdfs_dfs_Add_server, + { "Server", "netdfs.dfs_Add.server", FT_STRING, BASE_DEC, NULL, 0, "", HFILL }}, + { &hf_netdfs_dfs_Info5_comment, + { "Comment", "netdfs.dfs_Info5.comment", FT_STRING, BASE_DEC, NULL, 0, "", HFILL }}, + { &hf_netdfs_werror, + { "Windows Error", "netdfs.werror", FT_UINT32, BASE_HEX, VALS(DOS_errors), 0, "", HFILL }}, + { &hf_netdfs_dfs_EnumArray3_count, + { "Count", "netdfs.dfs_EnumArray3.count", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, + { &hf_netdfs_dfs_VolumeState_DFS_VOLUME_STATE_INCONSISTENT, + { "Dfs Volume State Inconsistent", "netdfs.dfs_VolumeState.DFS_VOLUME_STATE_INCONSISTENT", FT_BOOLEAN, 32, TFS(&dfs_VolumeState_DFS_VOLUME_STATE_INCONSISTENT_tfs), ( 0x2 ), "", HFILL }}, + { &hf_netdfs_dfs_Add_flags, + { "Flags", "netdfs.dfs_Add.flags", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, + { &hf_netdfs_dfs_RemoveStdRoot_servername, + { "Servername", "netdfs.dfs_RemoveStdRoot.servername", FT_STRING, BASE_DEC, NULL, 0, "", HFILL }}, + { &hf_netdfs_dfs_Remove_sharename, + { "Sharename", "netdfs.dfs_Remove.sharename", FT_STRING, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_netdfs_dfs_Info101_state, - { "State", "netdfs.dfs_Info101.state", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, + { "State", "netdfs.dfs_Info101.state", FT_UINT32, BASE_HEX, NULL, 0, "", HFILL }}, + { &hf_netdfs_dfs_Info103_flags, + { "Flags", "netdfs.dfs_Info103.flags", FT_UINT32, BASE_HEX, NULL, 0, "", HFILL }}, { &hf_netdfs_dfs_Info200_dom_root, { "Dom Root", "netdfs.dfs_Info200.dom_root", FT_STRING, BASE_DEC, NULL, 0, "", HFILL }}, + { &hf_netdfs_dfs_StorageState_DFS_STORAGE_STATE_OFFLINE, + { "Dfs Storage State Offline", "netdfs.dfs_StorageState.DFS_STORAGE_STATE_OFFLINE", FT_BOOLEAN, 32, TFS(&dfs_StorageState_DFS_STORAGE_STATE_OFFLINE_tfs), ( 1 ), "", HFILL }}, + { &hf_netdfs_dfs_VolumeState_DFS_VOLUME_STATE_ONLINE, + { "Dfs Volume State Online", "netdfs.dfs_VolumeState.DFS_VOLUME_STATE_ONLINE", FT_BOOLEAN, 32, TFS(&dfs_VolumeState_DFS_VOLUME_STATE_ONLINE_tfs), ( 0x8 ), "", HFILL }}, { &hf_netdfs_dfs_Info_info0, { "Info0", "netdfs.dfs_Info.info0", FT_NONE, BASE_NONE, NULL, 0, "", HFILL }}, + { &hf_netdfs_dfs_SetInfo_servername, + { "Servername", "netdfs.dfs_SetInfo.servername", FT_STRING, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_netdfs_dfs_Info_info1, { "Info1", "netdfs.dfs_Info.info1", FT_NONE, BASE_NONE, NULL, 0, "", HFILL }}, { &hf_netdfs_dfs_Info2_num_stores, { "Num Stores", "netdfs.dfs_Info2.num_stores", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, - { &hf_netdfs_dfs_Info4_state, - { "State", "netdfs.dfs_Info4.state", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_netdfs_dfs_Info_info2, { "Info2", "netdfs.dfs_Info.info2", FT_NONE, BASE_NONE, NULL, 0, "", HFILL }}, { &hf_netdfs_dfs_Info_info3, { "Info3", "netdfs.dfs_Info.info3", FT_NONE, BASE_NONE, NULL, 0, "", HFILL }}, { &hf_netdfs_dfs_Info_info4, { "Info4", "netdfs.dfs_Info.info4", FT_NONE, BASE_NONE, NULL, 0, "", HFILL }}, - { &hf_netdfs_dfs_Info4_guid, - { "Guid", "netdfs.dfs_Info4.guid", FT_GUID, BASE_NONE, NULL, 0, "", HFILL }}, + { &hf_netdfs_dfs_Info_info5, + { "Info5", "netdfs.dfs_Info.info5", FT_NONE, BASE_NONE, NULL, 0, "", HFILL }}, + { &hf_netdfs_dfs_StorageState_DFS_STORAGE_STATE_ACTIVE, + { "Dfs Storage State Active", "netdfs.dfs_StorageState.DFS_STORAGE_STATE_ACTIVE", FT_BOOLEAN, 32, TFS(&dfs_StorageState_DFS_STORAGE_STATE_ACTIVE_tfs), ( 4 ), "", HFILL }}, + { &hf_netdfs_dfs_Info_info6, + { "Info6", "netdfs.dfs_Info.info6", FT_NONE, BASE_NONE, NULL, 0, "", HFILL }}, + { &hf_netdfs_dfs_Info_info7, + { "Info7", "netdfs.dfs_Info.info7", FT_NONE, BASE_NONE, NULL, 0, "", HFILL }}, { &hf_netdfs_dfs_Enum_level, { "Level", "netdfs.dfs_Enum.level", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, - { &hf_netdfs_dfs_Enum_total, - { "Total", "netdfs.dfs_Enum.total", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, - { &hf_netdfs_dfs_Remove_path, - { "Path", "netdfs.dfs_Remove.path", FT_STRING, BASE_DEC, NULL, 0, "", HFILL }}, + { &hf_netdfs_dfs_Info300_flavor, + { "Flavor", "netdfs.dfs_Info300.flavor", FT_UINT16, BASE_DEC, VALS(netdfs_dfs_VolumeFlavor_vals), 0, "", HFILL }}, + { &hf_netdfs_dfs_AddStdRootForced_store, + { "Store", "netdfs.dfs_AddStdRootForced.store", FT_STRING, BASE_DEC, NULL, 0, "", HFILL }}, + { &hf_netdfs_dfs_Info5_path, + { "Path", "netdfs.dfs_Info5.path", FT_STRING, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_netdfs_dfs_GetManagerVersion_version, { "Version", "netdfs.dfs_GetManagerVersion.version", FT_UINT32, BASE_DEC, VALS(netdfs_dfs_ManagerVersion_vals), 0, "", HFILL }}, { &hf_netdfs_dfs_Info3_stores, { "Stores", "netdfs.dfs_Info3.stores", FT_NONE, BASE_NONE, NULL, 0, "", HFILL }}, + { &hf_netdfs_dfs_VolumeState_DFS_VOLUME_STATE_STANDALONE, + { "Dfs Volume State Standalone", "netdfs.dfs_VolumeState.DFS_VOLUME_STATE_STANDALONE", FT_BOOLEAN, 32, TFS(&dfs_VolumeState_DFS_VOLUME_STATE_STANDALONE_tfs), ( DFS_VOLUME_FLAVOR_STANDALONE ), "", HFILL }}, { &hf_netdfs_dfs_EnumArray3_s, { "S", "netdfs.dfs_EnumArray3.s", FT_NONE, BASE_NONE, NULL, 0, "", HFILL }}, - { &hf_netdfs_dfs_EnumStruct_e, - { "E", "netdfs.dfs_EnumStruct.e", FT_NONE, BASE_NONE, NULL, 0, "", HFILL }}, - { &hf_netdfs_dfs_EnumArray4_count, - { "Count", "netdfs.dfs_EnumArray4.count", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, - { &hf_netdfs_dfs_Info300_flags, - { "Flags", "netdfs.dfs_Info300.flags", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, - { &hf_netdfs_dfs_Info4_stores, - { "Stores", "netdfs.dfs_Info4.stores", FT_NONE, BASE_NONE, NULL, 0, "", HFILL }}, - { &hf_netdfs_dfs_Info4_num_stores, - { "Num Stores", "netdfs.dfs_Info4.num_stores", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, - { &hf_netdfs_dfs_StorageInfo_state, - { "State", "netdfs.dfs_StorageInfo.state", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, - { &hf_netdfs_dfs_EnumArray1_count, - { "Count", "netdfs.dfs_EnumArray1.count", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, + { &hf_netdfs_dfs_Info106_priority, + { "Priority", "netdfs.dfs_Info106.priority", FT_NONE, BASE_NONE, NULL, 0, "", HFILL }}, + { &hf_netdfs_dfs_VolumeState_DFS_VOLUME_STATE_OK, + { "Dfs Volume State Ok", "netdfs.dfs_VolumeState.DFS_VOLUME_STATE_OK", FT_BOOLEAN, 32, TFS(&dfs_VolumeState_DFS_VOLUME_STATE_OK_tfs), ( 0x1 ), "", HFILL }}, { &hf_netdfs_dfs_StorageInfo_server, { "Server", "netdfs.dfs_StorageInfo.server", FT_STRING, BASE_DEC, NULL, 0, "", HFILL }}, - { &hf_netdfs_dfs_Remove_share, - { "Share", "netdfs.dfs_Remove.share", FT_STRING, BASE_DEC, NULL, 0, "", HFILL }}, - { &hf_netdfs_dfs_EnumArray200_s, - { "S", "netdfs.dfs_EnumArray200.s", FT_NONE, BASE_NONE, NULL, 0, "", HFILL }}, + { &hf_netdfs_dfs_SetInfo_dfs_entry_path, + { "Dfs Entry Path", "netdfs.dfs_SetInfo.dfs_entry_path", FT_STRING, BASE_DEC, NULL, 0, "", HFILL }}, + { &hf_netdfs_dfs_RemoveStdRoot_flags, + { "Flags", "netdfs.dfs_RemoveStdRoot.flags", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, + { &hf_netdfs_dfs_ManagerInitialize_flags, + { "Flags", "netdfs.dfs_ManagerInitialize.flags", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_netdfs_dfs_Info4_path, { "Path", "netdfs.dfs_Info4.path", FT_STRING, BASE_DEC, NULL, 0, "", HFILL }}, - { &hf_netdfs_dfs_GetInfo_share, - { "Share", "netdfs.dfs_GetInfo.share", FT_STRING, BASE_DEC, NULL, 0, "", HFILL }}, + { &hf_netdfs_dfs_Info5_state, + { "State", "netdfs.dfs_Info5.state", FT_UINT32, BASE_HEX, NULL, 0, "", HFILL }}, { &hf_netdfs_dfs_StorageInfo_share, { "Share", "netdfs.dfs_StorageInfo.share", FT_STRING, BASE_DEC, NULL, 0, "", HFILL }}, - { &hf_netdfs_dfs_EnumArray2_s, - { "S", "netdfs.dfs_EnumArray2.s", FT_NONE, BASE_NONE, NULL, 0, "", HFILL }}, + { &hf_netdfs_dfs_AddStdRoot_flags, + { "Flags", "netdfs.dfs_AddStdRoot.flags", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, + { &hf_netdfs_dfs_Info6_num_stores, + { "Num Stores", "netdfs.dfs_Info6.num_stores", FT_UINT16, BASE_DEC, NULL, 0, "", HFILL }}, + { &hf_netdfs_dfs_Target_Priority_target_priority_class, + { "Target Priority Class", "netdfs.dfs_Target_Priority.target_priority_class", FT_UINT32, BASE_DEC, VALS(netdfs_dfs_Target_PriorityClass_vals), 0, "", HFILL }}, { &hf_netdfs_opnum, { "Operation", "netdfs.opnum", FT_UINT16, BASE_DEC, NULL, 0, "", HFILL }}, + { &hf_netdfs_dfs_PropertyFlags_DFS_PROPERTY_FLAG_INSITE_REFERRALS, + { "Dfs Property Flag Insite Referrals", "netdfs.dfs_PropertyFlags.DFS_PROPERTY_FLAG_INSITE_REFERRALS", FT_BOOLEAN, 32, TFS(&dfs_PropertyFlags_DFS_PROPERTY_FLAG_INSITE_REFERRALS_tfs), ( 0x01 ), "", HFILL }}, { &hf_netdfs_dfs_Info2_state, - { "State", "netdfs.dfs_Info2.state", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, + { "State", "netdfs.dfs_Info2.state", FT_UINT32, BASE_HEX, NULL, 0, "", HFILL }}, + { &hf_netdfs_dfs_Info106_state, + { "State", "netdfs.dfs_Info106.state", FT_UINT32, BASE_HEX, NULL, 0, "", HFILL }}, { &hf_netdfs_dfs_Info_info100, { "Info100", "netdfs.dfs_Info.info100", FT_NONE, BASE_NONE, NULL, 0, "", HFILL }}, + { &hf_netdfs_dfs_AddStdRootForced_comment, + { "Comment", "netdfs.dfs_AddStdRootForced.comment", FT_STRING, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_netdfs_dfs_Info_info101, { "Info101", "netdfs.dfs_Info.info101", FT_NONE, BASE_NONE, NULL, 0, "", HFILL }}, - { &hf_netdfs_dfs_EnumArray200_count, - { "Count", "netdfs.dfs_EnumArray200.count", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_netdfs_dfs_Add_path, { "Path", "netdfs.dfs_Add.path", FT_STRING, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_netdfs_dfs_Info102_timeout, { "Timeout", "netdfs.dfs_Info102.timeout", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_netdfs_dfs_Info_info102, { "Info102", "netdfs.dfs_Info.info102", FT_NONE, BASE_NONE, NULL, 0, "", HFILL }}, - { &hf_netdfs_dfs_EnumEx_info, - { "Info", "netdfs.dfs_EnumEx.info", FT_NONE, BASE_NONE, NULL, 0, "", HFILL }}, + { &hf_netdfs_dfs_Info_info103, + { "Info103", "netdfs.dfs_Info.info103", FT_NONE, BASE_NONE, NULL, 0, "", HFILL }}, + { &hf_netdfs_dfs_Info_info104, + { "Info104", "netdfs.dfs_Info.info104", FT_NONE, BASE_NONE, NULL, 0, "", HFILL }}, { &hf_netdfs_dfs_Info3_path, { "Path", "netdfs.dfs_Info3.path", FT_STRING, BASE_DEC, NULL, 0, "", HFILL }}, - { &hf_netdfs_dfs_Info4_timeout, - { "Timeout", "netdfs.dfs_Info4.timeout", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, - { &hf_netdfs_dfs_Enum_info, - { "Info", "netdfs.dfs_Enum.info", FT_NONE, BASE_NONE, NULL, 0, "", HFILL }}, + { &hf_netdfs_dfs_Info_info105, + { "Info105", "netdfs.dfs_Info.info105", FT_NONE, BASE_NONE, NULL, 0, "", HFILL }}, + { &hf_netdfs_dfs_Info_info106, + { "Info106", "netdfs.dfs_Info.info106", FT_NONE, BASE_NONE, NULL, 0, "", HFILL }}, + { &hf_netdfs_dfs_SetInfo_sharename, + { "Sharename", "netdfs.dfs_SetInfo.sharename", FT_STRING, BASE_DEC, NULL, 0, "", HFILL }}, + { &hf_netdfs_dfs_ManagerInitialize_servername, + { "Servername", "netdfs.dfs_ManagerInitialize.servername", FT_STRING, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_netdfs_dfs_EnumInfo_info1, { "Info1", "netdfs.dfs_EnumInfo.info1", FT_NONE, BASE_NONE, NULL, 0, "", HFILL }}, { &hf_netdfs_dfs_Info300_dom_root, @@ -2906,34 +4579,34 @@ void proto_register_dcerpc_netdfs(void) { "Count", "netdfs.dfs_EnumArray300.count", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_netdfs_dfs_EnumInfo_info2, { "Info2", "netdfs.dfs_EnumInfo.info2", FT_NONE, BASE_NONE, NULL, 0, "", HFILL }}, + { &hf_netdfs_dfs_Remove_dfs_entry_path, + { "Dfs Entry Path", "netdfs.dfs_Remove.dfs_entry_path", FT_STRING, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_netdfs_dfs_EnumInfo_info3, { "Info3", "netdfs.dfs_EnumInfo.info3", FT_NONE, BASE_NONE, NULL, 0, "", HFILL }}, + { &hf_netdfs_dfs_EnumEx_dfs_name, + { "Dfs Name", "netdfs.dfs_EnumEx.dfs_name", FT_STRING, BASE_DEC, NULL, 0, "", HFILL }}, + { &hf_netdfs_dfs_RemoveStdRoot_rootshare, + { "Rootshare", "netdfs.dfs_RemoveStdRoot.rootshare", FT_STRING, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_netdfs_dfs_EnumInfo_info4, { "Info4", "netdfs.dfs_EnumInfo.info4", FT_NONE, BASE_NONE, NULL, 0, "", HFILL }}, - { &hf_netdfs_dfs_GetInfo_server, - { "Server", "netdfs.dfs_GetInfo.server", FT_STRING, BASE_DEC, NULL, 0, "", HFILL }}, + { &hf_netdfs_dfs_Info5_timeout, + { "Timeout", "netdfs.dfs_Info5.timeout", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_netdfs_dfs_EnumArray1_s, { "S", "netdfs.dfs_EnumArray1.s", FT_NONE, BASE_NONE, NULL, 0, "", HFILL }}, - { &hf_netdfs_dfs_GetInfo_info, - { "Info", "netdfs.dfs_GetInfo.info", FT_NONE, BASE_NONE, NULL, 0, "", HFILL }}, - { &hf_netdfs_dfs_Info100_comment, - { "Comment", "netdfs.dfs_Info100.comment", FT_STRING, BASE_DEC, NULL, 0, "", HFILL }}, - { &hf_netdfs_dfs_Add_share, - { "Share", "netdfs.dfs_Add.share", FT_STRING, BASE_DEC, NULL, 0, "", HFILL }}, + { &hf_netdfs_dfs_Remove_servername, + { "Servername", "netdfs.dfs_Remove.servername", FT_STRING, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_netdfs_dfs_Info3_num_stores, { "Num Stores", "netdfs.dfs_Info3.num_stores", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, + { &hf_netdfs_dfs_Info105_property_flag_mask, + { "Property Flag Mask", "netdfs.dfs_Info105.property_flag_mask", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_netdfs_dfs_Info2_comment, { "Comment", "netdfs.dfs_Info2.comment", FT_STRING, BASE_DEC, NULL, 0, "", HFILL }}, - { &hf_netdfs_dfs_EnumInfo_info300, - { "Info300", "netdfs.dfs_EnumInfo.info300", FT_NONE, BASE_NONE, NULL, 0, "", HFILL }}, - { &hf_netdfs_dfs_Add_comment, - { "Comment", "netdfs.dfs_Add.comment", FT_STRING, BASE_DEC, NULL, 0, "", HFILL }}, - { &hf_netdfs_dfs_Info3_comment, - { "Comment", "netdfs.dfs_Info3.comment", FT_STRING, BASE_DEC, NULL, 0, "", HFILL }}, + { &hf_netdfs_dfs_Info6_guid, + { "Guid", "netdfs.dfs_Info6.guid", FT_GUID, BASE_NONE, NULL, 0, "", HFILL }}, { &hf_netdfs_dfs_Info2_path, { "Path", "netdfs.dfs_Info2.path", FT_STRING, BASE_DEC, NULL, 0, "", HFILL }}, - { &hf_netdfs_dfs_Info3_state, - { "State", "netdfs.dfs_Info3.state", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, + { &hf_netdfs_dfs_SetInfo_info, + { "Info", "netdfs.dfs_SetInfo.info", FT_NONE, BASE_NONE, NULL, 0, "", HFILL }}, }; @@ -2941,13 +4614,25 @@ void proto_register_dcerpc_netdfs(void) &ett_dcerpc_netdfs, &ett_netdfs_dfs_Info0, &ett_netdfs_dfs_Info1, + &ett_netdfs_dfs_VolumeState, &ett_netdfs_dfs_Info2, + &ett_netdfs_dfs_StorageState, &ett_netdfs_dfs_StorageInfo, &ett_netdfs_dfs_Info3, &ett_netdfs_dfs_Info4, + &ett_netdfs_dfs_PropertyFlags, + &ett_netdfs_dfs_Info5, + &ett_netdfs_dfs_Target_Priority, + &ett_netdfs_dfs_StorageInfo2, + &ett_netdfs_dfs_Info6, + &ett_netdfs_dfs_Info7, &ett_netdfs_dfs_Info100, &ett_netdfs_dfs_Info101, &ett_netdfs_dfs_Info102, + &ett_netdfs_dfs_Info103, + &ett_netdfs_dfs_Info104, + &ett_netdfs_dfs_Info105, + &ett_netdfs_dfs_Info106, &ett_netdfs_dfs_Info200, &ett_netdfs_dfs_Info300, &ett_netdfs_dfs_Info, diff --git a/epan/dissectors/packet-dcerpc-dfs.h b/epan/dissectors/packet-dcerpc-dfs.h index 30b4586d32..c69b37723f 100644 --- a/epan/dissectors/packet-dcerpc-dfs.h +++ b/epan/dissectors/packet-dcerpc-dfs.h @@ -14,6 +14,8 @@ #ifndef __PACKET_DCERPC_NETDFS_H #define __PACKET_DCERPC_NETDFS_H +#define DFS_STORAGE_STATES ( 0xf ) + #define DFS_MANAGER_VERSION_NT4 (0) #define DFS_MANAGER_VERSION_W2K (2) #define DFS_MANAGER_VERSION_W2K3 (4) @@ -21,14 +23,38 @@ extern const value_string netdfs_dfs_ManagerVersion_vals[]; int netdfs_dissect_enum_dfs_ManagerVersion(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep, int hf_index, guint32 param); int netdfs_dissect_struct_dfs_Info0(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *parent_tree, guint8 *drep, int hf_index, guint32 param _U_); int netdfs_dissect_struct_dfs_Info1(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *parent_tree, guint8 *drep, int hf_index, guint32 param _U_); +int netdfs_dissect_bitmap_dfs_VolumeState(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep, int hf_index, guint32 param); int netdfs_dissect_struct_dfs_Info2(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *parent_tree, guint8 *drep, int hf_index, guint32 param _U_); +int netdfs_dissect_bitmap_dfs_StorageState(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep, int hf_index, guint32 param); int netdfs_dissect_struct_dfs_StorageInfo(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *parent_tree, guint8 *drep, int hf_index, guint32 param _U_); int netdfs_dissect_struct_dfs_Info3(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *parent_tree, guint8 *drep, int hf_index, guint32 param _U_); int netdfs_dissect_struct_dfs_Info4(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *parent_tree, guint8 *drep, int hf_index, guint32 param _U_); +int netdfs_dissect_bitmap_dfs_PropertyFlags(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep, int hf_index, guint32 param); +int netdfs_dissect_struct_dfs_Info5(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *parent_tree, guint8 *drep, int hf_index, guint32 param _U_); +#define DFS_INVALID_PRIORITY_CLASS (-1) +#define DFS_SITE_COST_NORMAL_PRIORITY_CLASS (0) +#define DFS_GLOBAL_HIGH_PRIORITY_CLASS (1) +#define DFS_SITE_COST_HIGH_PRIORITY_CLASS (2) +#define DFS_SITE_COST_LOW_PRIORITY_CLASS (3) +#define DFS_GLOBAL_LOW_PRIORITY_CLASS (4) +extern const value_string netdfs_dfs_Target_PriorityClass_vals[]; +int netdfs_dissect_enum_dfs_Target_PriorityClass(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep, int hf_index, guint32 param); +int netdfs_dissect_struct_dfs_Target_Priority(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *parent_tree, guint8 *drep, int hf_index, guint32 param _U_); +int netdfs_dissect_struct_dfs_StorageInfo2(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *parent_tree, guint8 *drep, int hf_index, guint32 param _U_); +int netdfs_dissect_struct_dfs_Info6(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *parent_tree, guint8 *drep, int hf_index, guint32 param _U_); +int netdfs_dissect_struct_dfs_Info7(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *parent_tree, guint8 *drep, int hf_index, guint32 param _U_); int netdfs_dissect_struct_dfs_Info100(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *parent_tree, guint8 *drep, int hf_index, guint32 param _U_); int netdfs_dissect_struct_dfs_Info101(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *parent_tree, guint8 *drep, int hf_index, guint32 param _U_); int netdfs_dissect_struct_dfs_Info102(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *parent_tree, guint8 *drep, int hf_index, guint32 param _U_); +int netdfs_dissect_struct_dfs_Info103(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *parent_tree, guint8 *drep, int hf_index, guint32 param _U_); +int netdfs_dissect_struct_dfs_Info104(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *parent_tree, guint8 *drep, int hf_index, guint32 param _U_); +int netdfs_dissect_struct_dfs_Info105(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *parent_tree, guint8 *drep, int hf_index, guint32 param _U_); +int netdfs_dissect_struct_dfs_Info106(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *parent_tree, guint8 *drep, int hf_index, guint32 param _U_); int netdfs_dissect_struct_dfs_Info200(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *parent_tree, guint8 *drep, int hf_index, guint32 param _U_); +#define DFS_VOLUME_FLAVOR_STANDALONE (0x100) +#define DFS_VOLUME_FLAVOR_AD_BLOB (0x200) +extern const value_string netdfs_dfs_VolumeFlavor_vals[]; +int netdfs_dissect_enum_dfs_VolumeFlavor(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep, int hf_index, guint32 param); int netdfs_dissect_struct_dfs_Info300(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *parent_tree, guint8 *drep, int hf_index, guint32 param _U_); int netdfs_dissect_struct_dfs_EnumArray1(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *parent_tree, guint8 *drep, int hf_index, guint32 param _U_); int netdfs_dissect_struct_dfs_EnumArray2(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *parent_tree, guint8 *drep, int hf_index, guint32 param _U_); diff --git a/epan/dissectors/pidl/dfs.idl b/epan/dissectors/pidl/dfs.idl index c79f77cce3..9f4bd95ca2 100644 --- a/epan/dissectors/pidl/dfs.idl +++ b/epan/dissectors/pidl/dfs.idl @@ -34,17 +34,13 @@ /******************/ /* Function: 0x02 */ WERROR dfs_Remove ( - [in] [string,charset(UTF16)] uint16 *path, - [in,unique] [string,charset(UTF16)] uint16 *server, - [in,unique] [string,charset(UTF16)] uint16 *share + [in] [string,charset(UTF16)] uint16 *dfs_entry_path, + [in,unique] [string,charset(UTF16)] uint16 *servername, + [in,unique] [string,charset(UTF16)] uint16 *sharename ); /******************/ /* Function: 0x03 */ - WERROR dfs_SetInfo (); - - /******************/ - /* Function: 0x04 */ typedef struct { } dfs_Info0; @@ -53,15 +49,34 @@ [string,charset(UTF16)] uint16 *path; } dfs_Info1; + /* first 4 bits unverified yet */ + typedef [public,bitmap32bit] bitmap { + DFS_VOLUME_STATE_OK = 0x1, + DFS_VOLUME_STATE_INCONSISTENT = 0x2, + DFS_VOLUME_STATE_OFFLINE = 0x4, + DFS_VOLUME_STATE_ONLINE = 0x8, + DFS_VOLUME_STATE_STANDALONE = DFS_VOLUME_FLAVOR_STANDALONE, + DFS_VOLUME_STATE_AD_BLOB = DFS_VOLUME_FLAVOR_AD_BLOB + } dfs_VolumeState; + typedef struct { [string,charset(UTF16)] uint16 *path; [string,charset(UTF16)] uint16 *comment; - uint32 state; + dfs_VolumeState state; uint32 num_stores; } dfs_Info2; + const int DFS_STORAGE_STATES = 0xf; + + /* yes, this is a bitmap */ + typedef [public,bitmap32bit] bitmap { + DFS_STORAGE_STATE_OFFLINE = 1, + DFS_STORAGE_STATE_ONLINE = 2, + DFS_STORAGE_STATE_ACTIVE = 4 + } dfs_StorageState; + typedef struct { - uint32 state; + dfs_StorageState state; [string,charset(UTF16)] uint16 *server; [string,charset(UTF16)] uint16 *share; } dfs_StorageInfo; @@ -69,7 +84,7 @@ typedef struct { [string,charset(UTF16)] uint16 *path; [string,charset(UTF16)] uint16 *comment; - uint32 state; + dfs_VolumeState state; uint32 num_stores; [size_is(num_stores)] dfs_StorageInfo *stores; } dfs_Info3; @@ -77,31 +92,113 @@ typedef struct { [string,charset(UTF16)] uint16 *path; [string,charset(UTF16)] uint16 *comment; - uint32 state; + dfs_VolumeState state; uint32 timeout; GUID guid; uint32 num_stores; [size_is(num_stores)] dfs_StorageInfo *stores; } dfs_Info4; + /* verified with dfsutil */ + typedef [public,bitmap32bit] bitmap { + DFS_PROPERTY_FLAG_INSITE_REFERRALS = 0x01, + DFS_PROPERTY_FLAG_ROOT_SCALABILITY = 0x02, + DFS_PROPERTY_FLAG_SITE_COSTING = 0x04, + DFS_PROPERTY_FLAG_TARGET_FAILBACK = 0x08, + DFS_PROPERTY_FLAG_CLUSTER_ENABLED = 0x10 /* untested */ + } dfs_PropertyFlags; + + typedef struct { + [string,charset(UTF16)] uint16 *path; + [string,charset(UTF16)] uint16 *comment; + dfs_VolumeState state; + uint32 timeout; + GUID guid; + dfs_PropertyFlags flags; + uint32 pktsize; + uint32 num_stores; + } dfs_Info5; + + typedef [v1_enum] enum { + DFS_INVALID_PRIORITY_CLASS = -1, + DFS_SITE_COST_NORMAL_PRIORITY_CLASS = 0, + DFS_GLOBAL_HIGH_PRIORITY_CLASS = 1, + DFS_SITE_COST_HIGH_PRIORITY_CLASS = 2, + DFS_SITE_COST_LOW_PRIORITY_CLASS = 3, + DFS_GLOBAL_LOW_PRIORITY_CLASS = 4 + } dfs_Target_PriorityClass; + + typedef struct { + dfs_Target_PriorityClass target_priority_class; + uint16 target_priority_rank; + uint16 reserved; + } dfs_Target_Priority; + + typedef struct { + dfs_StorageInfo info; + dfs_Target_Priority target_priority; + } dfs_StorageInfo2; + + typedef struct { + [string,charset(UTF16)] uint16 *entry_path; + [string,charset(UTF16)] uint16 *comment; + dfs_VolumeState state; + uint32 timeout; + GUID guid; + dfs_PropertyFlags flags; + uint32 pktsize; + uint16 num_stores; + [size_is(num_stores)] dfs_StorageInfo2 *stores; + } dfs_Info6; + + typedef struct { + GUID generation_guid; + } dfs_Info7; + typedef struct { [string,charset(UTF16)] uint16 *comment; } dfs_Info100; typedef struct { - uint32 state; + dfs_StorageState state; } dfs_Info101; typedef struct { uint32 timeout; } dfs_Info102; + typedef struct { + dfs_PropertyFlags flags; + } dfs_Info103; + + typedef struct { + dfs_Target_Priority priority; + } dfs_Info104; + + typedef struct { + [string,charset(UTF16)] uint16 *comment; + dfs_VolumeState state; + uint32 timeout; + uint32 property_flag_mask; + uint32 property_flags; + } dfs_Info105; + + typedef struct { + dfs_StorageState state; + dfs_Target_Priority priority; + } dfs_Info106; + typedef struct { [string,charset(UTF16)] uint16 *dom_root; } dfs_Info200; + typedef enum { + DFS_VOLUME_FLAVOR_STANDALONE = 0x100, + DFS_VOLUME_FLAVOR_AD_BLOB = 0x200 + } dfs_VolumeFlavor; + typedef struct { - uint32 flags; + dfs_VolumeFlavor flavor; [string,charset(UTF16)] uint16 *dom_root; } dfs_Info300; @@ -111,15 +208,32 @@ [case(2)] dfs_Info2 *info2; [case(3)] dfs_Info3 *info3; [case(4)] dfs_Info4 *info4; + [case(5)] dfs_Info5 *info5; + [case(6)] dfs_Info6 *info6; + [case(7)] dfs_Info7 *info7; [case(100)] dfs_Info100 *info100; [case(101)] dfs_Info101 *info101; [case(102)] dfs_Info102 *info102; + [case(103)] dfs_Info103 *info103; + [case(104)] dfs_Info104 *info104; + [case(105)] dfs_Info105 *info105; + [case(106)] dfs_Info106 *info106; } dfs_Info; + WERROR dfs_SetInfo ( + [in] [string,charset(UTF16)] uint16 dfs_entry_path[], + [in,unique] [string,charset(UTF16)] uint16 *servername, + [in,unique] [string,charset(UTF16)] uint16 *sharename, + [in] uint32 level, + [in,ref,switch_is(level)] dfs_Info *info + ); + + /******************/ + /* Function: 0x04 */ WERROR dfs_GetInfo ( - [in] [string,charset(UTF16)] uint16 path[], - [in,unique] [string,charset(UTF16)] uint16 *server, - [in,unique] [string,charset(UTF16)] uint16 *share, + [in] [string,charset(UTF16)] uint16 dfs_entry_path[], + [in,unique] [string,charset(UTF16)] uint16 *servername, + [in,unique] [string,charset(UTF16)] uint16 *sharename, [in] uint32 level, [out,switch_is(level)] dfs_Info *info ); @@ -197,17 +311,34 @@ /* Function 0x0b */ WERROR dfs_RemoveFtRoot(); - /* Function 0x0c */ - WERROR dfs_AddStdRoot(); - + /* Function 0x0c */ + WERROR dfs_AddStdRoot( + [in] [string,charset(UTF16)] uint16 servername[], + [in] [string,charset(UTF16)] uint16 rootshare[], + [in] [string,charset(UTF16)] uint16 comment[], + [in] uint32 flags + ); + /* Function 0x0d */ - WERROR dfs_RemoveStdRoot(); - + WERROR dfs_RemoveStdRoot( + [in] [string,charset(UTF16)] uint16 servername[], + [in] [string,charset(UTF16)] uint16 rootshare[], + [in] uint32 flags + ); + /* Function 0x0e */ - WERROR dfs_ManagerInitialize(); + WERROR dfs_ManagerInitialize( + [in] [string,charset(UTF16)] uint16 *servername, + [in] uint32 flags + ); /* Function 0x0f */ - WERROR dfs_AddStdRootForced(); + WERROR dfs_AddStdRootForced( + [in] [string,charset(UTF16)] uint16 servername[], + [in] [string,charset(UTF16)] uint16 rootshare[], + [in] [string,charset(UTF16)] uint16 comment[], + [in] [string,charset(UTF16)] uint16 store[] /* C:\\whatever */ + ); /* Function 0x10 */ WERROR dfs_GetDcAddress(); @@ -226,7 +357,7 @@ /* Function 0x15 */ WERROR dfs_EnumEx( - [in] [string,charset(UTF16)] uint16 name[], + [in] [string,charset(UTF16)] uint16 dfs_name[], [in] uint32 level, [in] uint32 bufsize, [in,out,unique] dfs_EnumStruct *info,