diff options
Diffstat (limited to 'epan/dissectors/packet-dcerpc-fsrvp.c')
-rw-r--r-- | epan/dissectors/packet-dcerpc-fsrvp.c | 1200 |
1 files changed, 1200 insertions, 0 deletions
diff --git a/epan/dissectors/packet-dcerpc-fsrvp.c b/epan/dissectors/packet-dcerpc-fsrvp.c new file mode 100644 index 00000000..decb2160 --- /dev/null +++ b/epan/dissectors/packet-dcerpc-fsrvp.c @@ -0,0 +1,1200 @@ +/* DO NOT EDIT + This file was automatically generated by Pidl + from fsrvp.idl and fsrvp.cnf. + + Pidl is a perl based IDL compiler for DCE/RPC idl files. + It is maintained by the Samba team, not the Wireshark team. + Instructions on how to download and install Pidl can be + found at https://gitlab.com/wireshark/wireshark/-/wikis/Pidl +*/ + + +#include "config.h" +#include <glib.h> +#include <string.h> +#include <epan/packet.h> + +#include "packet-dcerpc.h" +#include "packet-dcerpc-nt.h" +#include "packet-windows-common.h" +#include "packet-dcerpc-fsrvp.h" +void proto_register_dcerpc_fsrvp(void); +void proto_reg_handoff_dcerpc_fsrvp(void); + +/* Ett declarations */ +static gint ett_dcerpc_fsrvp = -1; +static gint ett_fsrvp_fssagent_share_mapping_1 = -1; +static gint ett_fsrvp_fssagent_share_mapping = -1; + + +/* Header field declarations */ +static gint hf_fsrvp_fsrvp_AbortShadowCopySet_ShadowCopySetId = -1; +static gint hf_fsrvp_fsrvp_AddToShadowCopySet_ClientShadowCopyId = -1; +static gint hf_fsrvp_fsrvp_AddToShadowCopySet_ShadowCopySetId = -1; +static gint hf_fsrvp_fsrvp_AddToShadowCopySet_ShareName = -1; +static gint hf_fsrvp_fsrvp_AddToShadowCopySet_pShadowCopyId = -1; +static gint hf_fsrvp_fsrvp_CommitShadowCopySet_ShadowCopySetId = -1; +static gint hf_fsrvp_fsrvp_CommitShadowCopySet_TimeOutInMilliseconds = -1; +static gint hf_fsrvp_fsrvp_DeleteShareMapping_ShadowCopyId = -1; +static gint hf_fsrvp_fsrvp_DeleteShareMapping_ShadowCopySetId = -1; +static gint hf_fsrvp_fsrvp_DeleteShareMapping_ShareName = -1; +static gint hf_fsrvp_fsrvp_ExposeShadowCopySet_ShadowCopySetId = -1; +static gint hf_fsrvp_fsrvp_ExposeShadowCopySet_TimeOutInMilliseconds = -1; +static gint hf_fsrvp_fsrvp_GetShareMapping_Level = -1; +static gint hf_fsrvp_fsrvp_GetShareMapping_ShadowCopyId = -1; +static gint hf_fsrvp_fsrvp_GetShareMapping_ShadowCopySetId = -1; +static gint hf_fsrvp_fsrvp_GetShareMapping_ShareMapping = -1; +static gint hf_fsrvp_fsrvp_GetShareMapping_ShareName = -1; +static gint hf_fsrvp_fsrvp_GetSupportedVersion_MaxVersion = -1; +static gint hf_fsrvp_fsrvp_GetSupportedVersion_MinVersion = -1; +static gint hf_fsrvp_fsrvp_IsPathShadowCopied_ShadowCopyCompatibility = -1; +static gint hf_fsrvp_fsrvp_IsPathShadowCopied_ShadowCopyPresent = -1; +static gint hf_fsrvp_fsrvp_IsPathShadowCopied_ShareName = -1; +static gint hf_fsrvp_fsrvp_IsPathSupported_OwnerMachineName = -1; +static gint hf_fsrvp_fsrvp_IsPathSupported_ShareName = -1; +static gint hf_fsrvp_fsrvp_IsPathSupported_SupportedByThisProvider = -1; +static gint hf_fsrvp_fsrvp_PrepareShadowCopySet_ShadowCopySetId = -1; +static gint hf_fsrvp_fsrvp_PrepareShadowCopySet_TimeOutInMilliseconds = -1; +static gint hf_fsrvp_fsrvp_RecoveryCompleteShadowCopySet_ShadowCopySetId = -1; +static gint hf_fsrvp_fsrvp_SetContext_Context = -1; +static gint hf_fsrvp_fsrvp_StartShadowCopySet_ClientShadowCopySetId = -1; +static gint hf_fsrvp_fsrvp_StartShadowCopySet_pShadowCopySetId = -1; +static gint hf_fsrvp_fssagent_share_mapping_1_ShadowCopyId = -1; +static gint hf_fsrvp_fssagent_share_mapping_1_ShadowCopySetId = -1; +static gint hf_fsrvp_fssagent_share_mapping_1_ShadowCopyShareName = -1; +static gint hf_fsrvp_fssagent_share_mapping_1_ShareNameUNC = -1; +static gint hf_fsrvp_fssagent_share_mapping_1_tstamp = -1; +static gint hf_fsrvp_fssagent_share_mapping_ShareMapping1 = -1; +static gint hf_fsrvp_opnum = -1; +static gint hf_fsrvp_status = -1; + +static gint proto_dcerpc_fsrvp = -1; +/* Version information */ + + +static e_guid_t uuid_dcerpc_fsrvp = { + 0xa8e0653c, 0x2744, 0x4389, + { 0xa6, 0x1d, 0x73, 0x73, 0xdf, 0x8b, 0x22, 0x92 } +}; +static guint16 ver_dcerpc_fsrvp = 1; + +static int fsrvp_dissect_element_fssagent_share_mapping_1_ShadowCopySetId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int fsrvp_dissect_element_fssagent_share_mapping_1_ShadowCopyId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int fsrvp_dissect_element_fssagent_share_mapping_1_ShareNameUNC(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int fsrvp_dissect_element_fssagent_share_mapping_1_ShareNameUNC_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int fsrvp_dissect_element_fssagent_share_mapping_1_ShadowCopyShareName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int fsrvp_dissect_element_fssagent_share_mapping_1_ShadowCopyShareName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int fsrvp_dissect_element_fssagent_share_mapping_1_tstamp(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int fsrvp_dissect_element_fssagent_share_mapping_ShareMapping1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int fsrvp_dissect_element_fssagent_share_mapping_ShareMapping1_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int fsrvp_dissect_element_GetSupportedVersion_MinVersion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int fsrvp_dissect_element_GetSupportedVersion_MinVersion_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int fsrvp_dissect_element_GetSupportedVersion_MaxVersion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int fsrvp_dissect_element_GetSupportedVersion_MaxVersion_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int fsrvp_dissect_element_SetContext_Context(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int fsrvp_dissect_element_StartShadowCopySet_ClientShadowCopySetId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int fsrvp_dissect_element_StartShadowCopySet_pShadowCopySetId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int fsrvp_dissect_element_StartShadowCopySet_pShadowCopySetId_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int fsrvp_dissect_element_AddToShadowCopySet_ClientShadowCopyId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int fsrvp_dissect_element_AddToShadowCopySet_ShadowCopySetId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int fsrvp_dissect_element_AddToShadowCopySet_ShareName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int fsrvp_dissect_element_AddToShadowCopySet_ShareName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int fsrvp_dissect_element_AddToShadowCopySet_pShadowCopyId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int fsrvp_dissect_element_AddToShadowCopySet_pShadowCopyId_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int fsrvp_dissect_element_CommitShadowCopySet_ShadowCopySetId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int fsrvp_dissect_element_CommitShadowCopySet_TimeOutInMilliseconds(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int fsrvp_dissect_element_ExposeShadowCopySet_ShadowCopySetId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int fsrvp_dissect_element_ExposeShadowCopySet_TimeOutInMilliseconds(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int fsrvp_dissect_element_RecoveryCompleteShadowCopySet_ShadowCopySetId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int fsrvp_dissect_element_AbortShadowCopySet_ShadowCopySetId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int fsrvp_dissect_element_IsPathSupported_ShareName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int fsrvp_dissect_element_IsPathSupported_ShareName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int fsrvp_dissect_element_IsPathSupported_SupportedByThisProvider(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int fsrvp_dissect_element_IsPathSupported_SupportedByThisProvider_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int fsrvp_dissect_element_IsPathSupported_OwnerMachineName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int fsrvp_dissect_element_IsPathSupported_OwnerMachineName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int fsrvp_dissect_element_IsPathSupported_OwnerMachineName__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int fsrvp_dissect_element_IsPathShadowCopied_ShareName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int fsrvp_dissect_element_IsPathShadowCopied_ShareName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int fsrvp_dissect_element_IsPathShadowCopied_ShadowCopyPresent(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int fsrvp_dissect_element_IsPathShadowCopied_ShadowCopyPresent_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int fsrvp_dissect_element_IsPathShadowCopied_ShadowCopyCompatibility(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int fsrvp_dissect_element_IsPathShadowCopied_ShadowCopyCompatibility_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int fsrvp_dissect_element_GetShareMapping_ShadowCopyId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int fsrvp_dissect_element_GetShareMapping_ShadowCopySetId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int fsrvp_dissect_element_GetShareMapping_ShareName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int fsrvp_dissect_element_GetShareMapping_ShareName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int fsrvp_dissect_element_GetShareMapping_Level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int fsrvp_dissect_element_GetShareMapping_ShareMapping(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int fsrvp_dissect_element_GetShareMapping_ShareMapping_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int fsrvp_dissect_element_DeleteShareMapping_ShadowCopySetId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int fsrvp_dissect_element_DeleteShareMapping_ShadowCopyId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int fsrvp_dissect_element_DeleteShareMapping_ShareName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int fsrvp_dissect_element_DeleteShareMapping_ShareName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int fsrvp_dissect_element_PrepareShadowCopySet_ShadowCopySetId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int fsrvp_dissect_element_PrepareShadowCopySet_TimeOutInMilliseconds(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); +static int +fsrvp_dissect_SetContext_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + di->dcerpc_procedure_name="SetContext"; + offset = fsrvp_dissect_element_SetContext_Context(tvb, offset, pinfo, tree, di, drep); + return offset; +} +static int +fsrvp_dissect_StartShadowCopySet_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + di->dcerpc_procedure_name="StartShadowCopySet"; + offset = fsrvp_dissect_element_StartShadowCopySet_ClientShadowCopySetId(tvb, offset, pinfo, tree, di, drep); + return offset; +} +static int +fsrvp_dissect_AddToShadowCopySet_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + di->dcerpc_procedure_name="AddToShadowCopySet"; + offset = fsrvp_dissect_element_AddToShadowCopySet_ClientShadowCopyId(tvb, offset, pinfo, tree, di, drep); + offset = fsrvp_dissect_element_AddToShadowCopySet_ShadowCopySetId(tvb, offset, pinfo, tree, di, drep); + offset = fsrvp_dissect_element_AddToShadowCopySet_ShareName(tvb, offset, pinfo, tree, di, drep); + offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep); + return offset; +} +static int +fsrvp_dissect_CommitShadowCopySet_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + di->dcerpc_procedure_name="CommitShadowCopySet"; + offset = fsrvp_dissect_element_CommitShadowCopySet_ShadowCopySetId(tvb, offset, pinfo, tree, di, drep); + offset = fsrvp_dissect_element_CommitShadowCopySet_TimeOutInMilliseconds(tvb, offset, pinfo, tree, di, drep); + return offset; +} +static int +fsrvp_dissect_ExposeShadowCopySet_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + di->dcerpc_procedure_name="ExposeShadowCopySet"; + offset = fsrvp_dissect_element_ExposeShadowCopySet_ShadowCopySetId(tvb, offset, pinfo, tree, di, drep); + offset = fsrvp_dissect_element_ExposeShadowCopySet_TimeOutInMilliseconds(tvb, offset, pinfo, tree, di, drep); + return offset; +} +static int +fsrvp_dissect_RecoveryCompleteShadowCopySet_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + di->dcerpc_procedure_name="RecoveryCompleteShadowCopySet"; + offset = fsrvp_dissect_element_RecoveryCompleteShadowCopySet_ShadowCopySetId(tvb, offset, pinfo, tree, di, drep); + return offset; +} +static int +fsrvp_dissect_AbortShadowCopySet_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + di->dcerpc_procedure_name="AbortShadowCopySet"; + offset = fsrvp_dissect_element_AbortShadowCopySet_ShadowCopySetId(tvb, offset, pinfo, tree, di, drep); + return offset; +} +static int +fsrvp_dissect_GetShareMapping_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + di->dcerpc_procedure_name="GetShareMapping"; + offset = fsrvp_dissect_element_GetShareMapping_ShadowCopyId(tvb, offset, pinfo, tree, di, drep); + offset = fsrvp_dissect_element_GetShareMapping_ShadowCopySetId(tvb, offset, pinfo, tree, di, drep); + offset = fsrvp_dissect_element_GetShareMapping_ShareName(tvb, offset, pinfo, tree, di, drep); + offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep); + offset = fsrvp_dissect_element_GetShareMapping_Level(tvb, offset, pinfo, tree, di, drep); + return offset; +} +static int +fsrvp_dissect_DeleteShareMapping_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + di->dcerpc_procedure_name="DeleteShareMapping"; + offset = fsrvp_dissect_element_DeleteShareMapping_ShadowCopySetId(tvb, offset, pinfo, tree, di, drep); + offset = fsrvp_dissect_element_DeleteShareMapping_ShadowCopyId(tvb, offset, pinfo, tree, di, drep); + offset = fsrvp_dissect_element_DeleteShareMapping_ShareName(tvb, offset, pinfo, tree, di, drep); + offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep); + return offset; +} +static int +fsrvp_dissect_PrepareShadowCopySet_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + di->dcerpc_procedure_name="PrepareShadowCopySet"; + offset = fsrvp_dissect_element_PrepareShadowCopySet_ShadowCopySetId(tvb, offset, pinfo, tree, di, drep); + offset = fsrvp_dissect_element_PrepareShadowCopySet_TimeOutInMilliseconds(tvb, offset, pinfo, tree, di, drep); + return offset; +} + + +/* IDL: struct { */ +/* IDL: GUID ShadowCopySetId; */ +/* IDL: GUID ShadowCopyId; */ +/* IDL: [charset(UTF16)] [unique(1)] uint16 *ShareNameUNC; */ +/* IDL: [charset(UTF16)] [unique(1)] uint16 *ShadowCopyShareName; */ +/* IDL: NTTIME tstamp; */ +/* IDL: } */ + +static int +fsrvp_dissect_element_fssagent_share_mapping_1_ShadowCopySetId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, di, drep, hf_fsrvp_fssagent_share_mapping_1_ShadowCopySetId, NULL); + + return offset; +} + +static int +fsrvp_dissect_element_fssagent_share_mapping_1_ShadowCopyId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, di, drep, hf_fsrvp_fssagent_share_mapping_1_ShadowCopyId, NULL); + + return offset; +} + +static int +fsrvp_dissect_element_fssagent_share_mapping_1_ShareNameUNC(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, fsrvp_dissect_element_fssagent_share_mapping_1_ShareNameUNC_, NDR_POINTER_UNIQUE, "Pointer to ShareNameUNC (uint16)",hf_fsrvp_fssagent_share_mapping_1_ShareNameUNC); + + return offset; +} + +static int +fsrvp_dissect_element_fssagent_share_mapping_1_ShareNameUNC_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + char *data; + + offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(guint16), hf_fsrvp_fssagent_share_mapping_1_ShareNameUNC, FALSE, &data); + proto_item_append_text(tree, ": %s", data); + + return offset; +} + +static int +fsrvp_dissect_element_fssagent_share_mapping_1_ShadowCopyShareName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, fsrvp_dissect_element_fssagent_share_mapping_1_ShadowCopyShareName_, NDR_POINTER_UNIQUE, "Pointer to ShadowCopyShareName (uint16)",hf_fsrvp_fssagent_share_mapping_1_ShadowCopyShareName); + + return offset; +} + +static int +fsrvp_dissect_element_fssagent_share_mapping_1_ShadowCopyShareName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + char *data; + + offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(guint16), hf_fsrvp_fssagent_share_mapping_1_ShadowCopyShareName, FALSE, &data); + proto_item_append_text(tree, ": %s", data); + + return offset; +} + +static int +fsrvp_dissect_element_fssagent_share_mapping_1_tstamp(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_nt_NTTIME(tvb, offset, pinfo, tree, di, drep, hf_fsrvp_fssagent_share_mapping_1_tstamp); + + return offset; +} + +int +fsrvp_dissect_struct_fssagent_share_mapping_1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + int old_offset; + + ALIGN_TO_5_BYTES; + + old_offset = offset; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_fsrvp_fssagent_share_mapping_1); + } + + offset = fsrvp_dissect_element_fssagent_share_mapping_1_ShadowCopySetId(tvb, offset, pinfo, tree, di, drep); + + offset = fsrvp_dissect_element_fssagent_share_mapping_1_ShadowCopyId(tvb, offset, pinfo, tree, di, drep); + + offset = fsrvp_dissect_element_fssagent_share_mapping_1_ShareNameUNC(tvb, offset, pinfo, tree, di, drep); + + offset = fsrvp_dissect_element_fssagent_share_mapping_1_ShadowCopyShareName(tvb, offset, pinfo, tree, di, drep); + + offset = fsrvp_dissect_element_fssagent_share_mapping_1_tstamp(tvb, offset, pinfo, tree, di, drep); + + + proto_item_set_len(item, offset-old_offset); + + + if (di->call_data->flags & DCERPC_IS_NDR64) { + ALIGN_TO_5_BYTES; + } + + return offset; +} + + +/* IDL: union { */ +/* IDL: [case(1)] [case(1)] [unique(1)] fssagent_share_mapping_1 *ShareMapping1; */ +/* IDL: [default] ; */ +/* IDL: } */ + +static int +fsrvp_dissect_element_fssagent_share_mapping_ShareMapping1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, fsrvp_dissect_element_fssagent_share_mapping_ShareMapping1_, NDR_POINTER_UNIQUE, "Pointer to ShareMapping1 (fssagent_share_mapping_1)",hf_fsrvp_fssagent_share_mapping_ShareMapping1); + + return offset; +} + +static int +fsrvp_dissect_element_fssagent_share_mapping_ShareMapping1_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = fsrvp_dissect_struct_fssagent_share_mapping_1(tvb,offset,pinfo,tree,di,drep,hf_fsrvp_fssagent_share_mapping_ShareMapping1,0); + + return offset; +} + +static int +fsrvp_dissect_fssagent_share_mapping(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + int old_offset; + guint32 level; + + old_offset = offset; + if (parent_tree) { + tree = proto_tree_add_subtree(parent_tree, tvb, offset, -1, ett_fsrvp_fssagent_share_mapping, &item, "fssagent_share_mapping"); + } + + offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_index, &level); + ALIGN_TO_5_BYTES; + + switch(level) { + case 1: + offset = fsrvp_dissect_element_fssagent_share_mapping_ShareMapping1(tvb, offset, pinfo, tree, di, drep); + break; + + default: + break; + } + proto_item_set_len(item, offset-old_offset); + + + return offset; +} +static int +fsrvp_dissect_element_GetSupportedVersion_MinVersion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, fsrvp_dissect_element_GetSupportedVersion_MinVersion_, NDR_POINTER_REF, "Pointer to MinVersion (uint32)",hf_fsrvp_fsrvp_GetSupportedVersion_MinVersion); + + return offset; +} + +static int +fsrvp_dissect_element_GetSupportedVersion_MinVersion_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_fsrvp_fsrvp_GetSupportedVersion_MinVersion, 0); + + return offset; +} + +static int +fsrvp_dissect_element_GetSupportedVersion_MaxVersion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, fsrvp_dissect_element_GetSupportedVersion_MaxVersion_, NDR_POINTER_REF, "Pointer to MaxVersion (uint32)",hf_fsrvp_fsrvp_GetSupportedVersion_MaxVersion); + + return offset; +} + +static int +fsrvp_dissect_element_GetSupportedVersion_MaxVersion_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_fsrvp_fsrvp_GetSupportedVersion_MaxVersion, 0); + + return offset; +} + +/* IDL: NTSTATUS fsrvp_GetSupportedVersion( */ +/* IDL: [out] [ref] uint32 *MinVersion, */ +/* IDL: [out] [ref] uint32 *MaxVersion */ +/* IDL: ); */ + +static int +fsrvp_dissect_GetSupportedVersion_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + guint32 status; + + di->dcerpc_procedure_name="GetSupportedVersion"; + offset = fsrvp_dissect_element_GetSupportedVersion_MinVersion(tvb, offset, pinfo, tree, di, drep); + offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep); + + offset = fsrvp_dissect_element_GetSupportedVersion_MaxVersion(tvb, offset, pinfo, tree, di, drep); + offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep); + + offset = dissect_ntstatus(tvb, offset, pinfo, tree, di, drep, hf_fsrvp_status, &status); + + if (status != 0) + col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x")); + + return offset; +} + +static int +fsrvp_dissect_GetSupportedVersion_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + di->dcerpc_procedure_name="GetSupportedVersion"; + return offset; +} + +static int +fsrvp_dissect_element_SetContext_Context(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_fsrvp_fsrvp_SetContext_Context, 0); + + return offset; +} + +/* IDL: NTSTATUS fsrvp_SetContext( */ +/* IDL: [in] uint32 Context */ +/* IDL: ); */ + +static int +fsrvp_dissect_SetContext_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + guint32 status; + + di->dcerpc_procedure_name="SetContext"; + offset = dissect_ntstatus(tvb, offset, pinfo, tree, di, drep, hf_fsrvp_status, &status); + + if (status != 0) + col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x")); + + return offset; +} + +static int +fsrvp_dissect_element_StartShadowCopySet_ClientShadowCopySetId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, di, drep, hf_fsrvp_fsrvp_StartShadowCopySet_ClientShadowCopySetId, NULL); + + return offset; +} + +static int +fsrvp_dissect_element_StartShadowCopySet_pShadowCopySetId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, fsrvp_dissect_element_StartShadowCopySet_pShadowCopySetId_, NDR_POINTER_REF, "Pointer to PShadowCopySetId (GUID)",hf_fsrvp_fsrvp_StartShadowCopySet_pShadowCopySetId); + + return offset; +} + +static int +fsrvp_dissect_element_StartShadowCopySet_pShadowCopySetId_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, di, drep, hf_fsrvp_fsrvp_StartShadowCopySet_pShadowCopySetId, NULL); + + return offset; +} + +/* IDL: NTSTATUS fsrvp_StartShadowCopySet( */ +/* IDL: [in] GUID ClientShadowCopySetId, */ +/* IDL: [out] [ref] GUID *pShadowCopySetId */ +/* IDL: ); */ + +static int +fsrvp_dissect_StartShadowCopySet_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + guint32 status; + + di->dcerpc_procedure_name="StartShadowCopySet"; + offset = fsrvp_dissect_element_StartShadowCopySet_pShadowCopySetId(tvb, offset, pinfo, tree, di, drep); + offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep); + + offset = dissect_ntstatus(tvb, offset, pinfo, tree, di, drep, hf_fsrvp_status, &status); + + if (status != 0) + col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x")); + + return offset; +} + +static int +fsrvp_dissect_element_AddToShadowCopySet_ClientShadowCopyId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, di, drep, hf_fsrvp_fsrvp_AddToShadowCopySet_ClientShadowCopyId, NULL); + + return offset; +} + +static int +fsrvp_dissect_element_AddToShadowCopySet_ShadowCopySetId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, di, drep, hf_fsrvp_fsrvp_AddToShadowCopySet_ShadowCopySetId, NULL); + + return offset; +} + +static int +fsrvp_dissect_element_AddToShadowCopySet_ShareName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, fsrvp_dissect_element_AddToShadowCopySet_ShareName_, NDR_POINTER_REF, "Pointer to ShareName (uint16)",hf_fsrvp_fsrvp_AddToShadowCopySet_ShareName); + + return offset; +} + +static int +fsrvp_dissect_element_AddToShadowCopySet_ShareName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + char *data; + + offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(guint16), hf_fsrvp_fsrvp_AddToShadowCopySet_ShareName, FALSE, &data); + proto_item_append_text(tree, ": %s", data); + + return offset; +} + +static int +fsrvp_dissect_element_AddToShadowCopySet_pShadowCopyId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, fsrvp_dissect_element_AddToShadowCopySet_pShadowCopyId_, NDR_POINTER_REF, "Pointer to PShadowCopyId (GUID)",hf_fsrvp_fsrvp_AddToShadowCopySet_pShadowCopyId); + + return offset; +} + +static int +fsrvp_dissect_element_AddToShadowCopySet_pShadowCopyId_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, di, drep, hf_fsrvp_fsrvp_AddToShadowCopySet_pShadowCopyId, NULL); + + return offset; +} + +/* IDL: NTSTATUS fsrvp_AddToShadowCopySet( */ +/* IDL: [in] GUID ClientShadowCopyId, */ +/* IDL: [in] GUID ShadowCopySetId, */ +/* IDL: [charset(UTF16)] [in] [ref] uint16 *ShareName, */ +/* IDL: [out] [ref] GUID *pShadowCopyId */ +/* IDL: ); */ + +static int +fsrvp_dissect_AddToShadowCopySet_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + guint32 status; + + di->dcerpc_procedure_name="AddToShadowCopySet"; + offset = fsrvp_dissect_element_AddToShadowCopySet_pShadowCopyId(tvb, offset, pinfo, tree, di, drep); + offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep); + + offset = dissect_ntstatus(tvb, offset, pinfo, tree, di, drep, hf_fsrvp_status, &status); + + if (status != 0) + col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x")); + + return offset; +} + +static int +fsrvp_dissect_element_CommitShadowCopySet_ShadowCopySetId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, di, drep, hf_fsrvp_fsrvp_CommitShadowCopySet_ShadowCopySetId, NULL); + + return offset; +} + +static int +fsrvp_dissect_element_CommitShadowCopySet_TimeOutInMilliseconds(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_fsrvp_fsrvp_CommitShadowCopySet_TimeOutInMilliseconds, 0); + + return offset; +} + +/* IDL: NTSTATUS fsrvp_CommitShadowCopySet( */ +/* IDL: [in] GUID ShadowCopySetId, */ +/* IDL: [in] uint32 TimeOutInMilliseconds */ +/* IDL: ); */ + +static int +fsrvp_dissect_CommitShadowCopySet_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + guint32 status; + + di->dcerpc_procedure_name="CommitShadowCopySet"; + offset = dissect_ntstatus(tvb, offset, pinfo, tree, di, drep, hf_fsrvp_status, &status); + + if (status != 0) + col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x")); + + return offset; +} + +static int +fsrvp_dissect_element_ExposeShadowCopySet_ShadowCopySetId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, di, drep, hf_fsrvp_fsrvp_ExposeShadowCopySet_ShadowCopySetId, NULL); + + return offset; +} + +static int +fsrvp_dissect_element_ExposeShadowCopySet_TimeOutInMilliseconds(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_fsrvp_fsrvp_ExposeShadowCopySet_TimeOutInMilliseconds, 0); + + return offset; +} + +/* IDL: NTSTATUS fsrvp_ExposeShadowCopySet( */ +/* IDL: [in] GUID ShadowCopySetId, */ +/* IDL: [in] uint32 TimeOutInMilliseconds */ +/* IDL: ); */ + +static int +fsrvp_dissect_ExposeShadowCopySet_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + guint32 status; + + di->dcerpc_procedure_name="ExposeShadowCopySet"; + offset = dissect_ntstatus(tvb, offset, pinfo, tree, di, drep, hf_fsrvp_status, &status); + + if (status != 0) + col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x")); + + return offset; +} + +static int +fsrvp_dissect_element_RecoveryCompleteShadowCopySet_ShadowCopySetId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, di, drep, hf_fsrvp_fsrvp_RecoveryCompleteShadowCopySet_ShadowCopySetId, NULL); + + return offset; +} + +/* IDL: NTSTATUS fsrvp_RecoveryCompleteShadowCopySet( */ +/* IDL: [in] GUID ShadowCopySetId */ +/* IDL: ); */ + +static int +fsrvp_dissect_RecoveryCompleteShadowCopySet_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + guint32 status; + + di->dcerpc_procedure_name="RecoveryCompleteShadowCopySet"; + offset = dissect_ntstatus(tvb, offset, pinfo, tree, di, drep, hf_fsrvp_status, &status); + + if (status != 0) + col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x")); + + return offset; +} + +static int +fsrvp_dissect_element_AbortShadowCopySet_ShadowCopySetId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, di, drep, hf_fsrvp_fsrvp_AbortShadowCopySet_ShadowCopySetId, NULL); + + return offset; +} + +/* IDL: NTSTATUS fsrvp_AbortShadowCopySet( */ +/* IDL: [in] GUID ShadowCopySetId */ +/* IDL: ); */ + +static int +fsrvp_dissect_AbortShadowCopySet_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + guint32 status; + + di->dcerpc_procedure_name="AbortShadowCopySet"; + offset = dissect_ntstatus(tvb, offset, pinfo, tree, di, drep, hf_fsrvp_status, &status); + + if (status != 0) + col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x")); + + return offset; +} + +static int +fsrvp_dissect_element_IsPathSupported_ShareName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, fsrvp_dissect_element_IsPathSupported_ShareName_, NDR_POINTER_REF, "Pointer to ShareName (uint16)",hf_fsrvp_fsrvp_IsPathSupported_ShareName); + + return offset; +} + +static int +fsrvp_dissect_element_IsPathSupported_ShareName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + char *data; + + offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(guint16), hf_fsrvp_fsrvp_IsPathSupported_ShareName, FALSE, &data); + proto_item_append_text(tree, ": %s", data); + + return offset; +} + +static int +fsrvp_dissect_element_IsPathSupported_SupportedByThisProvider(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, fsrvp_dissect_element_IsPathSupported_SupportedByThisProvider_, NDR_POINTER_REF, "Pointer to SupportedByThisProvider (uint32)",hf_fsrvp_fsrvp_IsPathSupported_SupportedByThisProvider); + + return offset; +} + +static int +fsrvp_dissect_element_IsPathSupported_SupportedByThisProvider_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_fsrvp_fsrvp_IsPathSupported_SupportedByThisProvider, 0); + + return offset; +} + +static int +fsrvp_dissect_element_IsPathSupported_OwnerMachineName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, fsrvp_dissect_element_IsPathSupported_OwnerMachineName_, NDR_POINTER_REF, "Pointer to OwnerMachineName (uint16)",hf_fsrvp_fsrvp_IsPathSupported_OwnerMachineName); + + return offset; +} + +static int +fsrvp_dissect_element_IsPathSupported_OwnerMachineName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, fsrvp_dissect_element_IsPathSupported_OwnerMachineName__, NDR_POINTER_UNIQUE, "Pointer to OwnerMachineName (uint16)",hf_fsrvp_fsrvp_IsPathSupported_OwnerMachineName); + + return offset; +} + +static int +fsrvp_dissect_element_IsPathSupported_OwnerMachineName__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + char *data; + + offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(guint16), hf_fsrvp_fsrvp_IsPathSupported_OwnerMachineName, FALSE, &data); + proto_item_append_text(tree, ": %s", data); + + return offset; +} + +/* IDL: NTSTATUS fsrvp_IsPathSupported( */ +/* IDL: [charset(UTF16)] [in] [ref] uint16 *ShareName, */ +/* IDL: [out] [ref] uint32 *SupportedByThisProvider, */ +/* IDL: [charset(UTF16)] [out] [ref] uint16 **OwnerMachineName */ +/* IDL: ); */ + +static int +fsrvp_dissect_IsPathSupported_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + guint32 status; + + di->dcerpc_procedure_name="IsPathSupported"; + offset = fsrvp_dissect_element_IsPathSupported_SupportedByThisProvider(tvb, offset, pinfo, tree, di, drep); + offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep); + + offset = fsrvp_dissect_element_IsPathSupported_OwnerMachineName(tvb, offset, pinfo, tree, di, drep); + offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep); + + offset = dissect_ntstatus(tvb, offset, pinfo, tree, di, drep, hf_fsrvp_status, &status); + + if (status != 0) + col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x")); + + return offset; +} + +static int +fsrvp_dissect_IsPathSupported_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + di->dcerpc_procedure_name="IsPathSupported"; + offset = fsrvp_dissect_element_IsPathSupported_ShareName(tvb, offset, pinfo, tree, di, drep); + offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep); + return offset; +} + +static int +fsrvp_dissect_element_IsPathShadowCopied_ShareName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, fsrvp_dissect_element_IsPathShadowCopied_ShareName_, NDR_POINTER_REF, "Pointer to ShareName (uint16)",hf_fsrvp_fsrvp_IsPathShadowCopied_ShareName); + + return offset; +} + +static int +fsrvp_dissect_element_IsPathShadowCopied_ShareName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + char *data; + + offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(guint16), hf_fsrvp_fsrvp_IsPathShadowCopied_ShareName, FALSE, &data); + proto_item_append_text(tree, ": %s", data); + + return offset; +} + +static int +fsrvp_dissect_element_IsPathShadowCopied_ShadowCopyPresent(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, fsrvp_dissect_element_IsPathShadowCopied_ShadowCopyPresent_, NDR_POINTER_REF, "Pointer to ShadowCopyPresent (uint32)",hf_fsrvp_fsrvp_IsPathShadowCopied_ShadowCopyPresent); + + return offset; +} + +static int +fsrvp_dissect_element_IsPathShadowCopied_ShadowCopyPresent_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_fsrvp_fsrvp_IsPathShadowCopied_ShadowCopyPresent, 0); + + return offset; +} + +static int +fsrvp_dissect_element_IsPathShadowCopied_ShadowCopyCompatibility(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, fsrvp_dissect_element_IsPathShadowCopied_ShadowCopyCompatibility_, NDR_POINTER_REF, "Pointer to ShadowCopyCompatibility (int32)",hf_fsrvp_fsrvp_IsPathShadowCopied_ShadowCopyCompatibility); + + return offset; +} + +static int +fsrvp_dissect_element_IsPathShadowCopied_ShadowCopyCompatibility_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_fsrvp_fsrvp_IsPathShadowCopied_ShadowCopyCompatibility, 0); + + return offset; +} + +/* IDL: NTSTATUS fsrvp_IsPathShadowCopied( */ +/* IDL: [charset(UTF16)] [in] [ref] uint16 *ShareName, */ +/* IDL: [out] [ref] uint32 *ShadowCopyPresent, */ +/* IDL: [out] [ref] int32 *ShadowCopyCompatibility */ +/* IDL: ); */ + +static int +fsrvp_dissect_IsPathShadowCopied_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + guint32 status; + + di->dcerpc_procedure_name="IsPathShadowCopied"; + offset = fsrvp_dissect_element_IsPathShadowCopied_ShadowCopyPresent(tvb, offset, pinfo, tree, di, drep); + offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep); + + offset = fsrvp_dissect_element_IsPathShadowCopied_ShadowCopyCompatibility(tvb, offset, pinfo, tree, di, drep); + offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep); + + offset = dissect_ntstatus(tvb, offset, pinfo, tree, di, drep, hf_fsrvp_status, &status); + + if (status != 0) + col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x")); + + return offset; +} + +static int +fsrvp_dissect_IsPathShadowCopied_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + di->dcerpc_procedure_name="IsPathShadowCopied"; + offset = fsrvp_dissect_element_IsPathShadowCopied_ShareName(tvb, offset, pinfo, tree, di, drep); + offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep); + return offset; +} + +static int +fsrvp_dissect_element_GetShareMapping_ShadowCopyId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, di, drep, hf_fsrvp_fsrvp_GetShareMapping_ShadowCopyId, NULL); + + return offset; +} + +static int +fsrvp_dissect_element_GetShareMapping_ShadowCopySetId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, di, drep, hf_fsrvp_fsrvp_GetShareMapping_ShadowCopySetId, NULL); + + return offset; +} + +static int +fsrvp_dissect_element_GetShareMapping_ShareName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, fsrvp_dissect_element_GetShareMapping_ShareName_, NDR_POINTER_REF, "Pointer to ShareName (uint16)",hf_fsrvp_fsrvp_GetShareMapping_ShareName); + + return offset; +} + +static int +fsrvp_dissect_element_GetShareMapping_ShareName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + char *data; + + offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(guint16), hf_fsrvp_fsrvp_GetShareMapping_ShareName, FALSE, &data); + proto_item_append_text(tree, ": %s", data); + + return offset; +} + +static int +fsrvp_dissect_element_GetShareMapping_Level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_fsrvp_fsrvp_GetShareMapping_Level, 0); + + return offset; +} + +static int +fsrvp_dissect_element_GetShareMapping_ShareMapping(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, fsrvp_dissect_element_GetShareMapping_ShareMapping_, NDR_POINTER_REF, "Pointer to ShareMapping (fssagent_share_mapping)",hf_fsrvp_fsrvp_GetShareMapping_ShareMapping); + + return offset; +} + +static int +fsrvp_dissect_element_GetShareMapping_ShareMapping_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = fsrvp_dissect_fssagent_share_mapping(tvb, offset, pinfo, tree, di, drep, hf_fsrvp_fsrvp_GetShareMapping_ShareMapping, 0); + + return offset; +} + +/* IDL: NTSTATUS fsrvp_GetShareMapping( */ +/* IDL: [in] GUID ShadowCopyId, */ +/* IDL: [in] GUID ShadowCopySetId, */ +/* IDL: [charset(UTF16)] [in] [ref] uint16 *ShareName, */ +/* IDL: [in] uint32 Level, */ +/* IDL: [out] [ref] [switch_is(Level)] fssagent_share_mapping *ShareMapping */ +/* IDL: ); */ + +static int +fsrvp_dissect_GetShareMapping_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + guint32 status; + + di->dcerpc_procedure_name="GetShareMapping"; + offset = fsrvp_dissect_element_GetShareMapping_ShareMapping(tvb, offset, pinfo, tree, di, drep); + offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep); + + offset = dissect_ntstatus(tvb, offset, pinfo, tree, di, drep, hf_fsrvp_status, &status); + + if (status != 0) + col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x")); + + return offset; +} + +static int +fsrvp_dissect_element_DeleteShareMapping_ShadowCopySetId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, di, drep, hf_fsrvp_fsrvp_DeleteShareMapping_ShadowCopySetId, NULL); + + return offset; +} + +static int +fsrvp_dissect_element_DeleteShareMapping_ShadowCopyId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, di, drep, hf_fsrvp_fsrvp_DeleteShareMapping_ShadowCopyId, NULL); + + return offset; +} + +static int +fsrvp_dissect_element_DeleteShareMapping_ShareName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, fsrvp_dissect_element_DeleteShareMapping_ShareName_, NDR_POINTER_REF, "Pointer to ShareName (uint16)",hf_fsrvp_fsrvp_DeleteShareMapping_ShareName); + + return offset; +} + +static int +fsrvp_dissect_element_DeleteShareMapping_ShareName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + char *data; + + offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(guint16), hf_fsrvp_fsrvp_DeleteShareMapping_ShareName, FALSE, &data); + proto_item_append_text(tree, ": %s", data); + + return offset; +} + +/* IDL: NTSTATUS fsrvp_DeleteShareMapping( */ +/* IDL: [in] GUID ShadowCopySetId, */ +/* IDL: [in] GUID ShadowCopyId, */ +/* IDL: [charset(UTF16)] [in] [ref] uint16 *ShareName */ +/* IDL: ); */ + +static int +fsrvp_dissect_DeleteShareMapping_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + guint32 status; + + di->dcerpc_procedure_name="DeleteShareMapping"; + offset = dissect_ntstatus(tvb, offset, pinfo, tree, di, drep, hf_fsrvp_status, &status); + + if (status != 0) + col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x")); + + return offset; +} + +static int +fsrvp_dissect_element_PrepareShadowCopySet_ShadowCopySetId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, di, drep, hf_fsrvp_fsrvp_PrepareShadowCopySet_ShadowCopySetId, NULL); + + return offset; +} + +static int +fsrvp_dissect_element_PrepareShadowCopySet_TimeOutInMilliseconds(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_fsrvp_fsrvp_PrepareShadowCopySet_TimeOutInMilliseconds, 0); + + return offset; +} + +/* IDL: NTSTATUS fsrvp_PrepareShadowCopySet( */ +/* IDL: [in] GUID ShadowCopySetId, */ +/* IDL: [in] uint32 TimeOutInMilliseconds */ +/* IDL: ); */ + +static int +fsrvp_dissect_PrepareShadowCopySet_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) +{ + guint32 status; + + di->dcerpc_procedure_name="PrepareShadowCopySet"; + offset = dissect_ntstatus(tvb, offset, pinfo, tree, di, drep, hf_fsrvp_status, &status); + + if (status != 0) + col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x")); + + return offset; +} + + +static dcerpc_sub_dissector fsrvp_dissectors[] = { + { 0, "GetSupportedVersion", + fsrvp_dissect_GetSupportedVersion_request, fsrvp_dissect_GetSupportedVersion_response}, + { 1, "SetContext", + fsrvp_dissect_SetContext_request, fsrvp_dissect_SetContext_response}, + { 2, "StartShadowCopySet", + fsrvp_dissect_StartShadowCopySet_request, fsrvp_dissect_StartShadowCopySet_response}, + { 3, "AddToShadowCopySet", + fsrvp_dissect_AddToShadowCopySet_request, fsrvp_dissect_AddToShadowCopySet_response}, + { 4, "CommitShadowCopySet", + fsrvp_dissect_CommitShadowCopySet_request, fsrvp_dissect_CommitShadowCopySet_response}, + { 5, "ExposeShadowCopySet", + fsrvp_dissect_ExposeShadowCopySet_request, fsrvp_dissect_ExposeShadowCopySet_response}, + { 6, "RecoveryCompleteShadowCopySet", + fsrvp_dissect_RecoveryCompleteShadowCopySet_request, fsrvp_dissect_RecoveryCompleteShadowCopySet_response}, + { 7, "AbortShadowCopySet", + fsrvp_dissect_AbortShadowCopySet_request, fsrvp_dissect_AbortShadowCopySet_response}, + { 8, "IsPathSupported", + fsrvp_dissect_IsPathSupported_request, fsrvp_dissect_IsPathSupported_response}, + { 9, "IsPathShadowCopied", + fsrvp_dissect_IsPathShadowCopied_request, fsrvp_dissect_IsPathShadowCopied_response}, + { 10, "GetShareMapping", + fsrvp_dissect_GetShareMapping_request, fsrvp_dissect_GetShareMapping_response}, + { 11, "DeleteShareMapping", + fsrvp_dissect_DeleteShareMapping_request, fsrvp_dissect_DeleteShareMapping_response}, + { 12, "PrepareShadowCopySet", + fsrvp_dissect_PrepareShadowCopySet_request, fsrvp_dissect_PrepareShadowCopySet_response}, + { 0, NULL, NULL, NULL } +}; + +void proto_register_dcerpc_fsrvp(void) +{ + static hf_register_info hf[] = { + { &hf_fsrvp_fsrvp_AbortShadowCopySet_ShadowCopySetId, + { "ShadowCopySetId", "fsrvp.fsrvp_AbortShadowCopySet.ShadowCopySetId", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_fsrvp_fsrvp_AddToShadowCopySet_ClientShadowCopyId, + { "ClientShadowCopyId", "fsrvp.fsrvp_AddToShadowCopySet.ClientShadowCopyId", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_fsrvp_fsrvp_AddToShadowCopySet_ShadowCopySetId, + { "ShadowCopySetId", "fsrvp.fsrvp_AddToShadowCopySet.ShadowCopySetId", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_fsrvp_fsrvp_AddToShadowCopySet_ShareName, + { "ShareName", "fsrvp.fsrvp_AddToShadowCopySet.ShareName", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_fsrvp_fsrvp_AddToShadowCopySet_pShadowCopyId, + { "PShadowCopyId", "fsrvp.fsrvp_AddToShadowCopySet.pShadowCopyId", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_fsrvp_fsrvp_CommitShadowCopySet_ShadowCopySetId, + { "ShadowCopySetId", "fsrvp.fsrvp_CommitShadowCopySet.ShadowCopySetId", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_fsrvp_fsrvp_CommitShadowCopySet_TimeOutInMilliseconds, + { "TimeOutInMilliseconds", "fsrvp.fsrvp_CommitShadowCopySet.TimeOutInMilliseconds", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_fsrvp_fsrvp_DeleteShareMapping_ShadowCopyId, + { "ShadowCopyId", "fsrvp.fsrvp_DeleteShareMapping.ShadowCopyId", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_fsrvp_fsrvp_DeleteShareMapping_ShadowCopySetId, + { "ShadowCopySetId", "fsrvp.fsrvp_DeleteShareMapping.ShadowCopySetId", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_fsrvp_fsrvp_DeleteShareMapping_ShareName, + { "ShareName", "fsrvp.fsrvp_DeleteShareMapping.ShareName", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_fsrvp_fsrvp_ExposeShadowCopySet_ShadowCopySetId, + { "ShadowCopySetId", "fsrvp.fsrvp_ExposeShadowCopySet.ShadowCopySetId", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_fsrvp_fsrvp_ExposeShadowCopySet_TimeOutInMilliseconds, + { "TimeOutInMilliseconds", "fsrvp.fsrvp_ExposeShadowCopySet.TimeOutInMilliseconds", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_fsrvp_fsrvp_GetShareMapping_Level, + { "Level", "fsrvp.fsrvp_GetShareMapping.Level", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_fsrvp_fsrvp_GetShareMapping_ShadowCopyId, + { "ShadowCopyId", "fsrvp.fsrvp_GetShareMapping.ShadowCopyId", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_fsrvp_fsrvp_GetShareMapping_ShadowCopySetId, + { "ShadowCopySetId", "fsrvp.fsrvp_GetShareMapping.ShadowCopySetId", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_fsrvp_fsrvp_GetShareMapping_ShareMapping, + { "ShareMapping", "fsrvp.fsrvp_GetShareMapping.ShareMapping", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_fsrvp_fsrvp_GetShareMapping_ShareName, + { "ShareName", "fsrvp.fsrvp_GetShareMapping.ShareName", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_fsrvp_fsrvp_GetSupportedVersion_MaxVersion, + { "MaxVersion", "fsrvp.fsrvp_GetSupportedVersion.MaxVersion", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_fsrvp_fsrvp_GetSupportedVersion_MinVersion, + { "MinVersion", "fsrvp.fsrvp_GetSupportedVersion.MinVersion", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_fsrvp_fsrvp_IsPathShadowCopied_ShadowCopyCompatibility, + { "ShadowCopyCompatibility", "fsrvp.fsrvp_IsPathShadowCopied.ShadowCopyCompatibility", FT_INT32, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_fsrvp_fsrvp_IsPathShadowCopied_ShadowCopyPresent, + { "ShadowCopyPresent", "fsrvp.fsrvp_IsPathShadowCopied.ShadowCopyPresent", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_fsrvp_fsrvp_IsPathShadowCopied_ShareName, + { "ShareName", "fsrvp.fsrvp_IsPathShadowCopied.ShareName", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_fsrvp_fsrvp_IsPathSupported_OwnerMachineName, + { "OwnerMachineName", "fsrvp.fsrvp_IsPathSupported.OwnerMachineName", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_fsrvp_fsrvp_IsPathSupported_ShareName, + { "ShareName", "fsrvp.fsrvp_IsPathSupported.ShareName", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_fsrvp_fsrvp_IsPathSupported_SupportedByThisProvider, + { "SupportedByThisProvider", "fsrvp.fsrvp_IsPathSupported.SupportedByThisProvider", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_fsrvp_fsrvp_PrepareShadowCopySet_ShadowCopySetId, + { "ShadowCopySetId", "fsrvp.fsrvp_PrepareShadowCopySet.ShadowCopySetId", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_fsrvp_fsrvp_PrepareShadowCopySet_TimeOutInMilliseconds, + { "TimeOutInMilliseconds", "fsrvp.fsrvp_PrepareShadowCopySet.TimeOutInMilliseconds", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_fsrvp_fsrvp_RecoveryCompleteShadowCopySet_ShadowCopySetId, + { "ShadowCopySetId", "fsrvp.fsrvp_RecoveryCompleteShadowCopySet.ShadowCopySetId", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_fsrvp_fsrvp_SetContext_Context, + { "Context", "fsrvp.fsrvp_SetContext.Context", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_fsrvp_fsrvp_StartShadowCopySet_ClientShadowCopySetId, + { "ClientShadowCopySetId", "fsrvp.fsrvp_StartShadowCopySet.ClientShadowCopySetId", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_fsrvp_fsrvp_StartShadowCopySet_pShadowCopySetId, + { "PShadowCopySetId", "fsrvp.fsrvp_StartShadowCopySet.pShadowCopySetId", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_fsrvp_fssagent_share_mapping_1_ShadowCopyId, + { "ShadowCopyId", "fsrvp.fssagent_share_mapping_1.ShadowCopyId", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_fsrvp_fssagent_share_mapping_1_ShadowCopySetId, + { "ShadowCopySetId", "fsrvp.fssagent_share_mapping_1.ShadowCopySetId", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_fsrvp_fssagent_share_mapping_1_ShadowCopyShareName, + { "ShadowCopyShareName", "fsrvp.fssagent_share_mapping_1.ShadowCopyShareName", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_fsrvp_fssagent_share_mapping_1_ShareNameUNC, + { "ShareNameUNC", "fsrvp.fssagent_share_mapping_1.ShareNameUNC", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_fsrvp_fssagent_share_mapping_1_tstamp, + { "Tstamp", "fsrvp.fssagent_share_mapping_1.tstamp", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }}, + { &hf_fsrvp_fssagent_share_mapping_ShareMapping1, + { "ShareMapping1", "fsrvp.fssagent_share_mapping.ShareMapping1", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_fsrvp_opnum, + { "Operation", "fsrvp.opnum", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_fsrvp_status, + { "NT Error", "fsrvp.status", FT_UINT32, BASE_HEX, VALS(NT_errors), 0, NULL, HFILL }}, + }; + + + static gint *ett[] = { + &ett_dcerpc_fsrvp, + &ett_fsrvp_fssagent_share_mapping_1, + &ett_fsrvp_fssagent_share_mapping, + }; + + proto_dcerpc_fsrvp = proto_register_protocol("File Server Remote VSS Protocol", "FSRVP", "fsrvp"); + proto_register_field_array(proto_dcerpc_fsrvp, hf, array_length (hf)); + proto_register_subtree_array(ett, array_length(ett)); +} + +void proto_reg_handoff_dcerpc_fsrvp(void) +{ + dcerpc_init_uuid(proto_dcerpc_fsrvp, ett_dcerpc_fsrvp, + &uuid_dcerpc_fsrvp, ver_dcerpc_fsrvp, + fsrvp_dissectors, hf_fsrvp_opnum); +} |