/* DO NOT EDIT
	This file was automatically generated by Pidl
	from frsrpc.idl and frsrpc.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-frsrpc.h"
void proto_register_dcerpc_frsrpc(void);
void proto_reg_handoff_dcerpc_frsrpc(void);

/* Ett declarations */
static gint ett_ChunkCtr = -1;
static gint ett_dcerpc_frsrpc = -1;
static gint ett_frsrpc_frsrpc_CommPktChunkGuidName = -1;
static gint ett_frsrpc_frsrpc_CommPktGSVN = -1;
static gint ett_frsrpc_frsrpc_CommPktCoCmdFlags = -1;
static gint ett_frsrpc_frsrpc_CommPktCoCmdIFlags = -1;
static gint ett_frsrpc_frsrpc_CommPktCoCmdContentCmd = -1;
static gint ett_frsrpc_frsrpc_CommPktChangeOrderCommand = -1;
static gint ett_frsrpc_frsrpc_CommPktDataExtensionChecksum = -1;
static gint ett_frsrpc_frsrpc_CommPktDataExtensionRetryTimeout = -1;
static gint ett_frsrpc_frsrpc_CommPktCoRecordExtensionWin2k = -1;
static gint ett_frsrpc_frsrpc_CommPktChangeOrderRecordExtension = -1;
static gint ett_frsrpc_frsrpc_CommPktChunkData = -1;
static gint ett_frsrpc_frsrpc_CommPktChunk = -1;
static gint ett_frsrpc_frsrpc_FrsSendCommPktReq = -1;


/* Header field declarations */
static gint hf_CommPktChunk = -1;
static gint hf_frsrpc_CommPktChangeOrderCommand_file_name = -1;
static gint hf_frsrpc_frsrpc_CommPktChangeOrderCommand_ack_version = -1;
static gint hf_frsrpc_frsrpc_CommPktChangeOrderCommand_change_order_guid = -1;
static gint hf_frsrpc_frsrpc_CommPktChangeOrderCommand_connection_guid = -1;
static gint hf_frsrpc_frsrpc_CommPktChangeOrderCommand_content_cmd = -1;
static gint hf_frsrpc_frsrpc_CommPktChangeOrderCommand_event_time = -1;
static gint hf_frsrpc_frsrpc_CommPktChangeOrderCommand_extension = -1;
static gint hf_frsrpc_frsrpc_CommPktChangeOrderCommand_file_attributes = -1;
static gint hf_frsrpc_frsrpc_CommPktChangeOrderCommand_file_guid = -1;
static gint hf_frsrpc_frsrpc_CommPktChangeOrderCommand_file_name = -1;
static gint hf_frsrpc_frsrpc_CommPktChangeOrderCommand_file_name_length = -1;
static gint hf_frsrpc_frsrpc_CommPktChangeOrderCommand_file_offset = -1;
static gint hf_frsrpc_frsrpc_CommPktChangeOrderCommand_file_size = -1;
static gint hf_frsrpc_frsrpc_CommPktChangeOrderCommand_file_usn = -1;
static gint hf_frsrpc_frsrpc_CommPktChangeOrderCommand_file_version_number = -1;
static gint hf_frsrpc_frsrpc_CommPktChangeOrderCommand_flags = -1;
static gint hf_frsrpc_frsrpc_CommPktChangeOrderCommand_frs_vsn = -1;
static gint hf_frsrpc_frsrpc_CommPktChangeOrderCommand_iflags = -1;
static gint hf_frsrpc_frsrpc_CommPktChangeOrderCommand_jrnl_first_usn = -1;
static gint hf_frsrpc_frsrpc_CommPktChangeOrderCommand_jrnl_usn = -1;
static gint hf_frsrpc_frsrpc_CommPktChangeOrderCommand_location_cmd = -1;
static gint hf_frsrpc_frsrpc_CommPktChangeOrderCommand_new_parent_guid = -1;
static gint hf_frsrpc_frsrpc_CommPktChangeOrderCommand_new_replica_num = -1;
static gint hf_frsrpc_frsrpc_CommPktChangeOrderCommand_not_used = -1;
static gint hf_frsrpc_frsrpc_CommPktChangeOrderCommand_old_parent_guid = -1;
static gint hf_frsrpc_frsrpc_CommPktChangeOrderCommand_original_replica_num = -1;
static gint hf_frsrpc_frsrpc_CommPktChangeOrderCommand_originator_guid = -1;
static gint hf_frsrpc_frsrpc_CommPktChangeOrderCommand_padding1 = -1;
static gint hf_frsrpc_frsrpc_CommPktChangeOrderCommand_padding2 = -1;
static gint hf_frsrpc_frsrpc_CommPktChangeOrderCommand_padding3 = -1;
static gint hf_frsrpc_frsrpc_CommPktChangeOrderCommand_padding4 = -1;
static gint hf_frsrpc_frsrpc_CommPktChangeOrderCommand_partern_ack_sequence_number = -1;
static gint hf_frsrpc_frsrpc_CommPktChangeOrderCommand_sequence_number = -1;
static gint hf_frsrpc_frsrpc_CommPktChangeOrderCommand_spare1guid_p1 = -1;
static gint hf_frsrpc_frsrpc_CommPktChangeOrderCommand_spare1guid_p2 = -1;
static gint hf_frsrpc_frsrpc_CommPktChangeOrderCommand_spare1wcs = -1;
static gint hf_frsrpc_frsrpc_CommPktChangeOrderCommand_spare2bin = -1;
static gint hf_frsrpc_frsrpc_CommPktChangeOrderCommand_spare2guid_p1 = -1;
static gint hf_frsrpc_frsrpc_CommPktChangeOrderCommand_spare2ul1 = -1;
static gint hf_frsrpc_frsrpc_CommPktChangeOrderCommand_spare2wcs = -1;
static gint hf_frsrpc_frsrpc_CommPktChangeOrderCommand_spare3guid_p2 = -1;
static gint hf_frsrpc_frsrpc_CommPktChangeOrderCommand_status = -1;
static gint hf_frsrpc_frsrpc_CommPktChangeOrderRecordExtension_data_checksum = -1;
static gint hf_frsrpc_frsrpc_CommPktChangeOrderRecordExtension_data_retry_timeout = -1;
static gint hf_frsrpc_frsrpc_CommPktChangeOrderRecordExtension_field_size = -1;
static gint hf_frsrpc_frsrpc_CommPktChangeOrderRecordExtension_major = -1;
static gint hf_frsrpc_frsrpc_CommPktChangeOrderRecordExtension_not_used = -1;
static gint hf_frsrpc_frsrpc_CommPktChangeOrderRecordExtension_offset0 = -1;
static gint hf_frsrpc_frsrpc_CommPktChangeOrderRecordExtension_offset1 = -1;
static gint hf_frsrpc_frsrpc_CommPktChangeOrderRecordExtension_offset_count = -1;
static gint hf_frsrpc_frsrpc_CommPktChangeOrderRecordExtension_offset_last = -1;
static gint hf_frsrpc_frsrpc_CommPktChunkData_blob = -1;
static gint hf_frsrpc_frsrpc_CommPktChunkData_block = -1;
static gint hf_frsrpc_frsrpc_CommPktChunkData_block_size = -1;
static gint hf_frsrpc_frsrpc_CommPktChunkData_bop = -1;
static gint hf_frsrpc_frsrpc_CommPktChunkData_bopend = -1;
static gint hf_frsrpc_frsrpc_CommPktChunkData_co_ext_win2k = -1;
static gint hf_frsrpc_frsrpc_CommPktChunkData_co_ext_win2k_ = -1;
static gint hf_frsrpc_frsrpc_CommPktChunkData_co_extension2 = -1;
static gint hf_frsrpc_frsrpc_CommPktChunkData_co_guid = -1;
static gint hf_frsrpc_frsrpc_CommPktChunkData_co_guid_ = -1;
static gint hf_frsrpc_frsrpc_CommPktChunkData_co_sequnence_number = -1;
static gint hf_frsrpc_frsrpc_CommPktChunkData_command = -1;
static gint hf_frsrpc_frsrpc_CommPktChunkData_compression_guid = -1;
static gint hf_frsrpc_frsrpc_CommPktChunkData_connection = -1;
static gint hf_frsrpc_frsrpc_CommPktChunkData_file_offset = -1;
static gint hf_frsrpc_frsrpc_CommPktChunkData_file_size = -1;
static gint hf_frsrpc_frsrpc_CommPktChunkData_from = -1;
static gint hf_frsrpc_frsrpc_CommPktChunkData_gvsn = -1;
static gint hf_frsrpc_frsrpc_CommPktChunkData_gvsn_ = -1;
static gint hf_frsrpc_frsrpc_CommPktChunkData_join_guid = -1;
static gint hf_frsrpc_frsrpc_CommPktChunkData_join_guid_ = -1;
static gint hf_frsrpc_frsrpc_CommPktChunkData_join_time = -1;
static gint hf_frsrpc_frsrpc_CommPktChunkData_join_time_ = -1;
static gint hf_frsrpc_frsrpc_CommPktChunkData_last_join_time = -1;
static gint hf_frsrpc_frsrpc_CommPktChunkData_remote_co = -1;
static gint hf_frsrpc_frsrpc_CommPktChunkData_remote_co_ = -1;
static gint hf_frsrpc_frsrpc_CommPktChunkData_replica = -1;
static gint hf_frsrpc_frsrpc_CommPktChunkData_replica_version_guid = -1;
static gint hf_frsrpc_frsrpc_CommPktChunkData_replica_version_guid_ = -1;
static gint hf_frsrpc_frsrpc_CommPktChunkData_to = -1;
static gint hf_frsrpc_frsrpc_CommPktChunkData_vvector = -1;
static gint hf_frsrpc_frsrpc_CommPktChunkData_vvector_ = -1;
static gint hf_frsrpc_frsrpc_CommPktChunkGuidName_guid = -1;
static gint hf_frsrpc_frsrpc_CommPktChunkGuidName_guid_ = -1;
static gint hf_frsrpc_frsrpc_CommPktChunkGuidName_name = -1;
static gint hf_frsrpc_frsrpc_CommPktChunkGuidName_name_ = -1;
static gint hf_frsrpc_frsrpc_CommPktChunk_data = -1;
static gint hf_frsrpc_frsrpc_CommPktChunk_data_ = -1;
static gint hf_frsrpc_frsrpc_CommPktChunk_type = -1;
static gint hf_frsrpc_frsrpc_CommPktCoCmdContentCmd_FRSRPC_CONTENT_REASON_BASIC_INFO_CHANGE = -1;
static gint hf_frsrpc_frsrpc_CommPktCoCmdContentCmd_FRSRPC_CONTENT_REASON_COMPRESSION_CHANGE = -1;
static gint hf_frsrpc_frsrpc_CommPktCoCmdContentCmd_FRSRPC_CONTENT_REASON_DATA_EXTEND = -1;
static gint hf_frsrpc_frsrpc_CommPktCoCmdContentCmd_FRSRPC_CONTENT_REASON_DATA_OVERWRITE = -1;
static gint hf_frsrpc_frsrpc_CommPktCoCmdContentCmd_FRSRPC_CONTENT_REASON_DATA_TRUNCATION = -1;
static gint hf_frsrpc_frsrpc_CommPktCoCmdContentCmd_FRSRPC_CONTENT_REASON_EA_CHANGE = -1;
static gint hf_frsrpc_frsrpc_CommPktCoCmdContentCmd_FRSRPC_CONTENT_REASON_FILE_CREATE = -1;
static gint hf_frsrpc_frsrpc_CommPktCoCmdContentCmd_FRSRPC_CONTENT_REASON_FILE_DELETE = -1;
static gint hf_frsrpc_frsrpc_CommPktCoCmdContentCmd_FRSRPC_CONTENT_REASON_NAMED_DATA_EXTEND = -1;
static gint hf_frsrpc_frsrpc_CommPktCoCmdContentCmd_FRSRPC_CONTENT_REASON_NAMED_DATA_OVERWRITE = -1;
static gint hf_frsrpc_frsrpc_CommPktCoCmdContentCmd_FRSRPC_CONTENT_REASON_NAMED_DATA_TRUNCATION = -1;
static gint hf_frsrpc_frsrpc_CommPktCoCmdContentCmd_FRSRPC_CONTENT_REASON_NEW_NAME = -1;
static gint hf_frsrpc_frsrpc_CommPktCoCmdContentCmd_FRSRPC_CONTENT_REASON_OLD_NAME = -1;
static gint hf_frsrpc_frsrpc_CommPktCoCmdContentCmd_FRSRPC_CONTENT_REASON_SECURITY_CHANGE = -1;
static gint hf_frsrpc_frsrpc_CommPktCoCmdFlags_FRSRPC_CO_FLAG_ABORT_CO = -1;
static gint hf_frsrpc_frsrpc_CommPktCoCmdFlags_FRSRPC_CO_FLAG_COMPRESSED_STAGE = -1;
static gint hf_frsrpc_frsrpc_CommPktCoCmdFlags_FRSRPC_CO_FLAG_CONTENT_CMD = -1;
static gint hf_frsrpc_frsrpc_CommPktCoCmdFlags_FRSRPC_CO_FLAG_CONTROL = -1;
static gint hf_frsrpc_frsrpc_CommPktCoCmdFlags_FRSRPC_CO_FLAG_DIRECTED_CO = -1;
static gint hf_frsrpc_frsrpc_CommPktCoCmdFlags_FRSRPC_CO_FLAG_JUST_OID_RESET = -1;
static gint hf_frsrpc_frsrpc_CommPktCoCmdFlags_FRSRPC_CO_FLAG_LOCALCO = -1;
static gint hf_frsrpc_frsrpc_CommPktCoCmdFlags_FRSRPC_CO_FLAG_LOCATION_CMD = -1;
static gint hf_frsrpc_frsrpc_CommPktCoCmdFlags_FRSRPC_CO_FLAG_MORPH_GEN_HEAD = -1;
static gint hf_frsrpc_frsrpc_CommPktCoCmdFlags_FRSRPC_CO_FLAG_MOVEIN_GEN = -1;
static gint hf_frsrpc_frsrpc_CommPktCoCmdFlags_FRSRPC_CO_FLAG_NEW_FILE = -1;
static gint hf_frsrpc_frsrpc_CommPktCoCmdFlags_FRSRPC_CO_FLAG_ONLIST = -1;
static gint hf_frsrpc_frsrpc_CommPktCoCmdFlags_FRSRPC_CO_FLAG_OUT_OF_ORDER = -1;
static gint hf_frsrpc_frsrpc_CommPktCoCmdFlags_FRSRPC_CO_FLAG_RETRY = -1;
static gint hf_frsrpc_frsrpc_CommPktCoCmdFlags_FRSRPC_CO_FLAG_SKIP_ORIG_REC_C = -1;
static gint hf_frsrpc_frsrpc_CommPktCoCmdFlags_FRSRPC_CO_FLAG_SKIP_VV_UPDATE = -1;
static gint hf_frsrpc_frsrpc_CommPktCoCmdFlags_FRSRPC_CO_FLAG_VVJOIN_TO_ORIG = -1;
static gint hf_frsrpc_frsrpc_CommPktCoCmdFlags_FRSRPC_CO_FLAG_VV_ACTIVATED = -1;
static gint hf_frsrpc_frsrpc_CommPktCoCmdIFlags_FRSRPC_CO_IFLAG_CO_ABORT = -1;
static gint hf_frsrpc_frsrpc_CommPktCoCmdIFlags_FRSRPC_CO_IFLAG_DIR_ENUM_PENDING = -1;
static gint hf_frsrpc_frsrpc_CommPktCoCmdIFlags_FRSRPC_CO_IFLAG_VVRETIRE_EXEC = -1;
static gint hf_frsrpc_frsrpc_CommPktCoRecordExtensionWin2k_data_checksum = -1;
static gint hf_frsrpc_frsrpc_CommPktCoRecordExtensionWin2k_field_size = -1;
static gint hf_frsrpc_frsrpc_CommPktCoRecordExtensionWin2k_major = -1;
static gint hf_frsrpc_frsrpc_CommPktCoRecordExtensionWin2k_offset = -1;
static gint hf_frsrpc_frsrpc_CommPktCoRecordExtensionWin2k_offset_count = -1;
static gint hf_frsrpc_frsrpc_CommPktCoRecordExtensionWin2k_offset_last = -1;
static gint hf_frsrpc_frsrpc_CommPktDataExtensionChecksum_data = -1;
static gint hf_frsrpc_frsrpc_CommPktDataExtensionChecksum_prefix_size = -1;
static gint hf_frsrpc_frsrpc_CommPktDataExtensionChecksum_prefix_type = -1;
static gint hf_frsrpc_frsrpc_CommPktDataExtensionRetryTimeout_count = -1;
static gint hf_frsrpc_frsrpc_CommPktDataExtensionRetryTimeout_first_try_time = -1;
static gint hf_frsrpc_frsrpc_CommPktDataExtensionRetryTimeout_not_used = -1;
static gint hf_frsrpc_frsrpc_CommPktDataExtensionRetryTimeout_prefix_size = -1;
static gint hf_frsrpc_frsrpc_CommPktDataExtensionRetryTimeout_prefix_type = -1;
static gint hf_frsrpc_frsrpc_CommPktGSVN_guid = -1;
static gint hf_frsrpc_frsrpc_CommPktGSVN_vsn = -1;
static gint hf_frsrpc_frsrpc_FrsSendCommPktReq_cs_id = -1;
static gint hf_frsrpc_frsrpc_FrsSendCommPktReq_ctr = -1;
static gint hf_frsrpc_frsrpc_FrsSendCommPktReq_ctr_ = -1;
static gint hf_frsrpc_frsrpc_FrsSendCommPktReq_data_handle = -1;
static gint hf_frsrpc_frsrpc_FrsSendCommPktReq_data_name = -1;
static gint hf_frsrpc_frsrpc_FrsSendCommPktReq_major = -1;
static gint hf_frsrpc_frsrpc_FrsSendCommPktReq_memory_len = -1;
static gint hf_frsrpc_frsrpc_FrsSendCommPktReq_minor = -1;
static gint hf_frsrpc_frsrpc_FrsSendCommPktReq_pkt_len = -1;
static gint hf_frsrpc_frsrpc_FrsSendCommPktReq_upk_len = -1;
static gint hf_frsrpc_frsrpc_FrsSendCommPkt_req = -1;
static gint hf_frsrpc_frsrpc_FrsStartPromotionParent___ndr_guid_size = -1;
static gint hf_frsrpc_frsrpc_FrsStartPromotionParent_connection_guid = -1;
static gint hf_frsrpc_frsrpc_FrsStartPromotionParent_connection_guid_ = -1;
static gint hf_frsrpc_frsrpc_FrsStartPromotionParent_connection_name = -1;
static gint hf_frsrpc_frsrpc_FrsStartPromotionParent_parent_account = -1;
static gint hf_frsrpc_frsrpc_FrsStartPromotionParent_parent_guid = -1;
static gint hf_frsrpc_frsrpc_FrsStartPromotionParent_parent_guid_ = -1;
static gint hf_frsrpc_frsrpc_FrsStartPromotionParent_parent_password = -1;
static gint hf_frsrpc_frsrpc_FrsStartPromotionParent_partner_auth_level = -1;
static gint hf_frsrpc_frsrpc_FrsStartPromotionParent_partner_guid = -1;
static gint hf_frsrpc_frsrpc_FrsStartPromotionParent_partner_guid_ = -1;
static gint hf_frsrpc_frsrpc_FrsStartPromotionParent_partner_name = -1;
static gint hf_frsrpc_frsrpc_FrsStartPromotionParent_partner_princ_name = -1;
static gint hf_frsrpc_frsrpc_FrsStartPromotionParent_replica_set_name = -1;
static gint hf_frsrpc_frsrpc_FrsStartPromotionParent_replica_set_type = -1;
static gint hf_frsrpc_frsrpc_FrsVerifyPromotionParent___ndr_guid_size = -1;
static gint hf_frsrpc_frsrpc_FrsVerifyPromotionParent_parent_account = -1;
static gint hf_frsrpc_frsrpc_FrsVerifyPromotionParent_parent_password = -1;
static gint hf_frsrpc_frsrpc_FrsVerifyPromotionParent_partner_auth_level = -1;
static gint hf_frsrpc_frsrpc_FrsVerifyPromotionParent_replica_set_name = -1;
static gint hf_frsrpc_frsrpc_FrsVerifyPromotionParent_replica_set_type = -1;
static gint hf_frsrpc_opnum = -1;
static gint hf_frsrpc_werror = -1;

static gint proto_dcerpc_frsrpc = -1;
/* Version information */


static e_guid_t uuid_dcerpc_frsrpc = {
	0xf5cc59b4, 0x4264, 0x101a,
	{ 0x8c, 0x59, 0x08, 0x00, 0x2b, 0x2f, 0x84, 0x26 }
};
static guint16 ver_dcerpc_frsrpc = 1;

static int frsrpc_dissect_element_CommPktChunkGuidName_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int frsrpc_dissect_element_CommPktChunkGuidName_guid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int frsrpc_dissect_element_CommPktChunkGuidName_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int frsrpc_dissect_element_CommPktChunkGuidName_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int frsrpc_dissect_element_CommPktGSVN_vsn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int frsrpc_dissect_element_CommPktGSVN_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static const true_false_string frsrpc_CommPktCoCmdFlags_FRSRPC_CO_FLAG_ABORT_CO_tfs = {
   "FRSRPC_CO_FLAG_ABORT_CO is SET",
   "FRSRPC_CO_FLAG_ABORT_CO is NOT SET",
};
static const true_false_string frsrpc_CommPktCoCmdFlags_FRSRPC_CO_FLAG_VV_ACTIVATED_tfs = {
   "FRSRPC_CO_FLAG_VV_ACTIVATED is SET",
   "FRSRPC_CO_FLAG_VV_ACTIVATED is NOT SET",
};
static const true_false_string frsrpc_CommPktCoCmdFlags_FRSRPC_CO_FLAG_CONTENT_CMD_tfs = {
   "FRSRPC_CO_FLAG_CONTENT_CMD is SET",
   "FRSRPC_CO_FLAG_CONTENT_CMD is NOT SET",
};
static const true_false_string frsrpc_CommPktCoCmdFlags_FRSRPC_CO_FLAG_LOCATION_CMD_tfs = {
   "FRSRPC_CO_FLAG_LOCATION_CMD is SET",
   "FRSRPC_CO_FLAG_LOCATION_CMD is NOT SET",
};
static const true_false_string frsrpc_CommPktCoCmdFlags_FRSRPC_CO_FLAG_ONLIST_tfs = {
   "FRSRPC_CO_FLAG_ONLIST is SET",
   "FRSRPC_CO_FLAG_ONLIST is NOT SET",
};
static const true_false_string frsrpc_CommPktCoCmdFlags_FRSRPC_CO_FLAG_LOCALCO_tfs = {
   "FRSRPC_CO_FLAG_LOCALCO is SET",
   "FRSRPC_CO_FLAG_LOCALCO is NOT SET",
};
static const true_false_string frsrpc_CommPktCoCmdFlags_FRSRPC_CO_FLAG_RETRY_tfs = {
   "FRSRPC_CO_FLAG_RETRY is SET",
   "FRSRPC_CO_FLAG_RETRY is NOT SET",
};
static const true_false_string frsrpc_CommPktCoCmdFlags_FRSRPC_CO_FLAG_OUT_OF_ORDER_tfs = {
   "FRSRPC_CO_FLAG_OUT_OF_ORDER is SET",
   "FRSRPC_CO_FLAG_OUT_OF_ORDER is NOT SET",
};
static const true_false_string frsrpc_CommPktCoCmdFlags_FRSRPC_CO_FLAG_NEW_FILE_tfs = {
   "FRSRPC_CO_FLAG_NEW_FILE is SET",
   "FRSRPC_CO_FLAG_NEW_FILE is NOT SET",
};
static const true_false_string frsrpc_CommPktCoCmdFlags_FRSRPC_CO_FLAG_CONTROL_tfs = {
   "FRSRPC_CO_FLAG_CONTROL is SET",
   "FRSRPC_CO_FLAG_CONTROL is NOT SET",
};
static const true_false_string frsrpc_CommPktCoCmdFlags_FRSRPC_CO_FLAG_DIRECTED_CO_tfs = {
   "FRSRPC_CO_FLAG_DIRECTED_CO is SET",
   "FRSRPC_CO_FLAG_DIRECTED_CO is NOT SET",
};
static const true_false_string frsrpc_CommPktCoCmdFlags_FRSRPC_CO_FLAG_VVJOIN_TO_ORIG_tfs = {
   "FRSRPC_CO_FLAG_VVJOIN_TO_ORIG is SET",
   "FRSRPC_CO_FLAG_VVJOIN_TO_ORIG is NOT SET",
};
static const true_false_string frsrpc_CommPktCoCmdFlags_FRSRPC_CO_FLAG_SKIP_ORIG_REC_C_tfs = {
   "FRSRPC_CO_FLAG_SKIP_ORIG_REC_C is SET",
   "FRSRPC_CO_FLAG_SKIP_ORIG_REC_C is NOT SET",
};
static const true_false_string frsrpc_CommPktCoCmdFlags_FRSRPC_CO_FLAG_MOVEIN_GEN_tfs = {
   "FRSRPC_CO_FLAG_MOVEIN_GEN is SET",
   "FRSRPC_CO_FLAG_MOVEIN_GEN is NOT SET",
};
static const true_false_string frsrpc_CommPktCoCmdFlags_FRSRPC_CO_FLAG_MORPH_GEN_HEAD_tfs = {
   "FRSRPC_CO_FLAG_MORPH_GEN_HEAD is SET",
   "FRSRPC_CO_FLAG_MORPH_GEN_HEAD is NOT SET",
};
static const true_false_string frsrpc_CommPktCoCmdFlags_FRSRPC_CO_FLAG_JUST_OID_RESET_tfs = {
   "FRSRPC_CO_FLAG_JUST_OID_RESET is SET",
   "FRSRPC_CO_FLAG_JUST_OID_RESET is NOT SET",
};
static const true_false_string frsrpc_CommPktCoCmdFlags_FRSRPC_CO_FLAG_COMPRESSED_STAGE_tfs = {
   "FRSRPC_CO_FLAG_COMPRESSED_STAGE is SET",
   "FRSRPC_CO_FLAG_COMPRESSED_STAGE is NOT SET",
};
static const true_false_string frsrpc_CommPktCoCmdFlags_FRSRPC_CO_FLAG_SKIP_VV_UPDATE_tfs = {
   "FRSRPC_CO_FLAG_SKIP_VV_UPDATE is SET",
   "FRSRPC_CO_FLAG_SKIP_VV_UPDATE is NOT SET",
};
static const true_false_string frsrpc_CommPktCoCmdIFlags_FRSRPC_CO_IFLAG_VVRETIRE_EXEC_tfs = {
   "FRSRPC_CO_IFLAG_VVRETIRE_EXEC is SET",
   "FRSRPC_CO_IFLAG_VVRETIRE_EXEC is NOT SET",
};
static const true_false_string frsrpc_CommPktCoCmdIFlags_FRSRPC_CO_IFLAG_CO_ABORT_tfs = {
   "FRSRPC_CO_IFLAG_CO_ABORT is SET",
   "FRSRPC_CO_IFLAG_CO_ABORT is NOT SET",
};
static const true_false_string frsrpc_CommPktCoCmdIFlags_FRSRPC_CO_IFLAG_DIR_ENUM_PENDING_tfs = {
   "FRSRPC_CO_IFLAG_DIR_ENUM_PENDING is SET",
   "FRSRPC_CO_IFLAG_DIR_ENUM_PENDING is NOT SET",
};
const value_string frsrpc_frsrpc_CommPktCoCmdStatus_vals[] = {
	{ FRSRPC_CO_STATUS_CO_ENTERED_LOG, "FRSRPC_CO_STATUS_CO_ENTERED_LOG" },
	{ FRSRPC_CO_STATUS_ALLOC_STAGING_LOCAL_CO, "FRSRPC_CO_STATUS_ALLOC_STAGING_LOCAL_CO" },
	{ FRSRPC_CO_STATUS_LOCAL_CO_STAGING_STARTED, "FRSRPC_CO_STATUS_LOCAL_CO_STAGING_STARTED" },
	{ FRSRPC_CO_STATUS_LOCAL_CO_STAGING_COMPLETED, "FRSRPC_CO_STATUS_LOCAL_CO_STAGING_COMPLETED" },
	{ FRSRPC_CO_STATUS_WAIT_RETRY_LOCAL_CO_STAGING, "FRSRPC_CO_STATUS_WAIT_RETRY_LOCAL_CO_STAGING" },
	{ FRSRPC_CO_STATUS_ALLOC_STAGING_REMOTE_CO, "FRSRPC_CO_STATUS_ALLOC_STAGING_REMOTE_CO" },
	{ FRSRPC_CO_STATUS_REMOTE_CO_STAGING_STARTED, "FRSRPC_CO_STATUS_REMOTE_CO_STAGING_STARTED" },
	{ FRSRPC_CO_STATUS_REMOTE_CO_STAGING_COMPLETED, "FRSRPC_CO_STATUS_REMOTE_CO_STAGING_COMPLETED" },
	{ FRSRPC_CO_STATUS_WAIT_RETRY_REMOTE_CO_STAGING, "FRSRPC_CO_STATUS_WAIT_RETRY_REMOTE_CO_STAGING" },
	{ FRSRPC_CO_STATUS_FILE_INSTALL_REQUESTED, "FRSRPC_CO_STATUS_FILE_INSTALL_REQUESTED" },
	{ FRSRPC_CO_STATUS_FILE_INSTALL_STARTED, "FRSRPC_CO_STATUS_FILE_INSTALL_STARTED" },
	{ FRSRPC_CO_STATUS_FILE_INSTALL_COMPLETED, "FRSRPC_CO_STATUS_FILE_INSTALL_COMPLETED" },
	{ FRSRPC_CO_STATUS_FILE_INSTALL_WAIT_RETRY, "FRSRPC_CO_STATUS_FILE_INSTALL_WAIT_RETRY" },
	{ FRSRPC_CO_STATUS_FILE_INSTALL_RETRYING, "FRSRPC_CO_STATUS_FILE_INSTALL_RETRYING" },
	{ FRSRPC_CO_STATUS_FILE_INSTALL_RENAME_RETRYING, "FRSRPC_CO_STATUS_FILE_INSTALL_RENAME_RETRYING" },
	{ FRSRPC_CO_STATUS_FILE_INSTALL_DELETE_RETRYING, "FRSRPC_CO_STATUS_FILE_INSTALL_DELETE_RETRYING" },
	{ FRSRPC_CO_STATUS_CO_RECYCLED_FOR_ENUM, "FRSRPC_CO_STATUS_CO_RECYCLED_FOR_ENUM" },
	{ FRSRPC_CO_STATUS_REQUEST_OUTBOUND_PROPAGATION, "FRSRPC_CO_STATUS_REQUEST_OUTBOUND_PROPAGATION" },
	{ FRSRPC_CO_STATUS_REQUEST_ACCEPTED_OUTBOUND_LOG, "FRSRPC_CO_STATUS_REQUEST_ACCEPTED_OUTBOUND_LOG" },
	{ FRSRPC_CO_STATUS_DB_STATE_UPDATE_STARTED, "FRSRPC_CO_STATUS_DB_STATE_UPDATE_STARTED" },
	{ FRSRPC_CO_STATUS_DB_STATE_UPDATE_COMPLETED, "FRSRPC_CO_STATUS_DB_STATE_UPDATE_COMPLETED" },
	{ FRSRPC_CO_STATUS_CO_ABORTED, "FRSRPC_CO_STATUS_CO_ABORTED" },
{ 0, NULL }
};
static const true_false_string frsrpc_CommPktCoCmdContentCmd_FRSRPC_CONTENT_REASON_DATA_OVERWRITE_tfs = {
   "FRSRPC_CONTENT_REASON_DATA_OVERWRITE is SET",
   "FRSRPC_CONTENT_REASON_DATA_OVERWRITE is NOT SET",
};
static const true_false_string frsrpc_CommPktCoCmdContentCmd_FRSRPC_CONTENT_REASON_DATA_EXTEND_tfs = {
   "FRSRPC_CONTENT_REASON_DATA_EXTEND is SET",
   "FRSRPC_CONTENT_REASON_DATA_EXTEND is NOT SET",
};
static const true_false_string frsrpc_CommPktCoCmdContentCmd_FRSRPC_CONTENT_REASON_DATA_TRUNCATION_tfs = {
   "FRSRPC_CONTENT_REASON_DATA_TRUNCATION is SET",
   "FRSRPC_CONTENT_REASON_DATA_TRUNCATION is NOT SET",
};
static const true_false_string frsrpc_CommPktCoCmdContentCmd_FRSRPC_CONTENT_REASON_NAMED_DATA_OVERWRITE_tfs = {
   "FRSRPC_CONTENT_REASON_NAMED_DATA_OVERWRITE is SET",
   "FRSRPC_CONTENT_REASON_NAMED_DATA_OVERWRITE is NOT SET",
};
static const true_false_string frsrpc_CommPktCoCmdContentCmd_FRSRPC_CONTENT_REASON_NAMED_DATA_EXTEND_tfs = {
   "FRSRPC_CONTENT_REASON_NAMED_DATA_EXTEND is SET",
   "FRSRPC_CONTENT_REASON_NAMED_DATA_EXTEND is NOT SET",
};
static const true_false_string frsrpc_CommPktCoCmdContentCmd_FRSRPC_CONTENT_REASON_NAMED_DATA_TRUNCATION_tfs = {
   "FRSRPC_CONTENT_REASON_NAMED_DATA_TRUNCATION is SET",
   "FRSRPC_CONTENT_REASON_NAMED_DATA_TRUNCATION is NOT SET",
};
static const true_false_string frsrpc_CommPktCoCmdContentCmd_FRSRPC_CONTENT_REASON_FILE_CREATE_tfs = {
   "FRSRPC_CONTENT_REASON_FILE_CREATE is SET",
   "FRSRPC_CONTENT_REASON_FILE_CREATE is NOT SET",
};
static const true_false_string frsrpc_CommPktCoCmdContentCmd_FRSRPC_CONTENT_REASON_FILE_DELETE_tfs = {
   "FRSRPC_CONTENT_REASON_FILE_DELETE is SET",
   "FRSRPC_CONTENT_REASON_FILE_DELETE is NOT SET",
};
static const true_false_string frsrpc_CommPktCoCmdContentCmd_FRSRPC_CONTENT_REASON_EA_CHANGE_tfs = {
   "FRSRPC_CONTENT_REASON_EA_CHANGE is SET",
   "FRSRPC_CONTENT_REASON_EA_CHANGE is NOT SET",
};
static const true_false_string frsrpc_CommPktCoCmdContentCmd_FRSRPC_CONTENT_REASON_SECURITY_CHANGE_tfs = {
   "FRSRPC_CONTENT_REASON_SECURITY_CHANGE is SET",
   "FRSRPC_CONTENT_REASON_SECURITY_CHANGE is NOT SET",
};
static const true_false_string frsrpc_CommPktCoCmdContentCmd_FRSRPC_CONTENT_REASON_OLD_NAME_tfs = {
   "FRSRPC_CONTENT_REASON_OLD_NAME is SET",
   "FRSRPC_CONTENT_REASON_OLD_NAME is NOT SET",
};
static const true_false_string frsrpc_CommPktCoCmdContentCmd_FRSRPC_CONTENT_REASON_NEW_NAME_tfs = {
   "FRSRPC_CONTENT_REASON_NEW_NAME is SET",
   "FRSRPC_CONTENT_REASON_NEW_NAME is NOT SET",
};
static const true_false_string frsrpc_CommPktCoCmdContentCmd_FRSRPC_CONTENT_REASON_BASIC_INFO_CHANGE_tfs = {
   "FRSRPC_CONTENT_REASON_BASIC_INFO_CHANGE is SET",
   "FRSRPC_CONTENT_REASON_BASIC_INFO_CHANGE is NOT SET",
};
static const true_false_string frsrpc_CommPktCoCmdContentCmd_FRSRPC_CONTENT_REASON_COMPRESSION_CHANGE_tfs = {
   "FRSRPC_CONTENT_REASON_COMPRESSION_CHANGE is SET",
   "FRSRPC_CONTENT_REASON_COMPRESSION_CHANGE is NOT SET",
};
const value_string frsrpc_frsrpc_CommPktCoCmdLocationCmd_vals[] = {
	{ FRSRPC_CO_LOCATION_FILE_CREATE, "FRSRPC_CO_LOCATION_FILE_CREATE" },
	{ FRSRPC_CO_LOCATION_DIR_CREATE, "FRSRPC_CO_LOCATION_DIR_CREATE" },
	{ FRSRPC_CO_LOCATION_FILE_DELETE, "FRSRPC_CO_LOCATION_FILE_DELETE" },
	{ FRSRPC_CO_LOCATION_DIR_DELETE, "FRSRPC_CO_LOCATION_DIR_DELETE" },
	{ FRSRPC_CO_LOCATION_FILE_MOVEIN, "FRSRPC_CO_LOCATION_FILE_MOVEIN" },
	{ FRSRPC_CO_LOCATION_DIR_MOVEIN, "FRSRPC_CO_LOCATION_DIR_MOVEIN" },
	{ FRSRPC_CO_LOCATION_FILE_MOVEIN2, "FRSRPC_CO_LOCATION_FILE_MOVEIN2" },
	{ FRSRPC_CO_LOCATION_DIR_MOVEIN2, "FRSRPC_CO_LOCATION_DIR_MOVEIN2" },
	{ FRSRPC_CO_LOCATION_FILE_MOVEOUT, "FRSRPC_CO_LOCATION_FILE_MOVEOUT" },
	{ FRSRPC_CO_LOCATION_DIR_MOVEOUT, "FRSRPC_CO_LOCATION_DIR_MOVEOUT" },
	{ FRSRPC_CO_LOCATION_FILE_MOVERS, "FRSRPC_CO_LOCATION_FILE_MOVERS" },
	{ FRSRPC_CO_LOCATION_DIR_MOVERS, "FRSRPC_CO_LOCATION_DIR_MOVERS" },
	{ FRSRPC_CO_LOCATION_FILE_MOVEDIR, "FRSRPC_CO_LOCATION_FILE_MOVEDIR" },
	{ FRSRPC_CO_LOCATION_DIR_MOVEDIR, "FRSRPC_CO_LOCATION_DIR_MOVEDIR" },
	{ FRSRPC_CO_LOCATION_FILE_NO_CMD, "FRSRPC_CO_LOCATION_FILE_NO_CMD" },
	{ FRSRPC_CO_LOCATION_DIR_NO_CMD, "FRSRPC_CO_LOCATION_DIR_NO_CMD" },
{ 0, NULL }
};
static int frsrpc_dissect_element_CommPktChangeOrderCommand_sequence_number(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int frsrpc_dissect_element_CommPktChangeOrderCommand_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int frsrpc_dissect_element_CommPktChangeOrderCommand_iflags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int frsrpc_dissect_element_CommPktChangeOrderCommand_status(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int frsrpc_dissect_element_CommPktChangeOrderCommand_content_cmd(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int frsrpc_dissect_element_CommPktChangeOrderCommand_location_cmd(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int frsrpc_dissect_element_CommPktChangeOrderCommand_file_attributes(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int frsrpc_dissect_element_CommPktChangeOrderCommand_file_version_number(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int frsrpc_dissect_element_CommPktChangeOrderCommand_partern_ack_sequence_number(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int frsrpc_dissect_element_CommPktChangeOrderCommand_not_used(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int frsrpc_dissect_element_CommPktChangeOrderCommand_file_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int frsrpc_dissect_element_CommPktChangeOrderCommand_file_offset(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int frsrpc_dissect_element_CommPktChangeOrderCommand_frs_vsn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int frsrpc_dissect_element_CommPktChangeOrderCommand_file_usn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int frsrpc_dissect_element_CommPktChangeOrderCommand_jrnl_usn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int frsrpc_dissect_element_CommPktChangeOrderCommand_jrnl_first_usn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int frsrpc_dissect_element_CommPktChangeOrderCommand_original_replica_num(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int frsrpc_dissect_element_CommPktChangeOrderCommand_new_replica_num(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int frsrpc_dissect_element_CommPktChangeOrderCommand_change_order_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int frsrpc_dissect_element_CommPktChangeOrderCommand_originator_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int frsrpc_dissect_element_CommPktChangeOrderCommand_file_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int frsrpc_dissect_element_CommPktChangeOrderCommand_old_parent_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int frsrpc_dissect_element_CommPktChangeOrderCommand_new_parent_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int frsrpc_dissect_element_CommPktChangeOrderCommand_connection_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int frsrpc_dissect_element_CommPktChangeOrderCommand_ack_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int frsrpc_dissect_element_CommPktChangeOrderCommand_spare2ul1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int frsrpc_dissect_element_CommPktChangeOrderCommand_spare1guid_p1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int frsrpc_dissect_element_CommPktChangeOrderCommand_spare1guid_p2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int frsrpc_dissect_element_CommPktChangeOrderCommand_spare2guid_p1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int frsrpc_dissect_element_CommPktChangeOrderCommand_spare3guid_p2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int frsrpc_dissect_element_CommPktChangeOrderCommand_spare1wcs(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int frsrpc_dissect_element_CommPktChangeOrderCommand_spare2wcs(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int frsrpc_dissect_element_CommPktChangeOrderCommand_extension(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int frsrpc_dissect_element_CommPktChangeOrderCommand_spare2bin(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int frsrpc_dissect_element_CommPktChangeOrderCommand_event_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int frsrpc_dissect_element_CommPktChangeOrderCommand_file_name_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int frsrpc_dissect_element_CommPktChangeOrderCommand_padding1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int frsrpc_dissect_element_CommPktChangeOrderCommand_padding2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int frsrpc_dissect_element_CommPktChangeOrderCommand_padding3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int frsrpc_dissect_element_CommPktChangeOrderCommand_padding4(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
const value_string frsrpc_frsrpc_CommPktDataExtensionType_vals[] = {
	{ FRSRPC_DATA_EXTENSION_TERMINATOR, "FRSRPC_DATA_EXTENSION_TERMINATOR" },
	{ FRSRPC_DATA_EXTENSION_MD5_CHECKSUM, "FRSRPC_DATA_EXTENSION_MD5_CHECKSUM" },
	{ FRSRPC_DATA_EXTENSION_RETRY_TIMEOUT, "FRSRPC_DATA_EXTENSION_RETRY_TIMEOUT" },
{ 0, NULL }
};
static int frsrpc_dissect_element_CommPktDataExtensionChecksum_prefix_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int frsrpc_dissect_element_CommPktDataExtensionChecksum_prefix_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int frsrpc_dissect_element_CommPktDataExtensionChecksum_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int frsrpc_dissect_element_CommPktDataExtensionChecksum_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int frsrpc_dissect_element_CommPktDataExtensionRetryTimeout_prefix_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int frsrpc_dissect_element_CommPktDataExtensionRetryTimeout_prefix_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int frsrpc_dissect_element_CommPktDataExtensionRetryTimeout_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int frsrpc_dissect_element_CommPktDataExtensionRetryTimeout_not_used(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int frsrpc_dissect_element_CommPktDataExtensionRetryTimeout_first_try_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
const value_string frsrpc_frsrpc_CommPktCoRecordExtensionMajor_vals[] = {
	{ FRSRPC_CO_RECORD_EXTENSION_VERSION_WIN2K, "FRSRPC_CO_RECORD_EXTENSION_VERSION_WIN2K" },
	{ FRSRPC_CO_RECORD_EXTENSION_VERSION_1, "FRSRPC_CO_RECORD_EXTENSION_VERSION_1" },
{ 0, NULL }
};
static int frsrpc_dissect_element_CommPktCoRecordExtensionWin2k_field_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int frsrpc_dissect_element_CommPktCoRecordExtensionWin2k_major(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int frsrpc_dissect_element_CommPktCoRecordExtensionWin2k_offset_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int frsrpc_dissect_element_CommPktCoRecordExtensionWin2k_offset(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int frsrpc_dissect_element_CommPktCoRecordExtensionWin2k_offset_last(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int frsrpc_dissect_element_CommPktCoRecordExtensionWin2k_data_checksum(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int frsrpc_dissect_element_CommPktChangeOrderRecordExtension_field_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int frsrpc_dissect_element_CommPktChangeOrderRecordExtension_major(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int frsrpc_dissect_element_CommPktChangeOrderRecordExtension_offset_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int frsrpc_dissect_element_CommPktChangeOrderRecordExtension_offset0(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int frsrpc_dissect_element_CommPktChangeOrderRecordExtension_offset1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int frsrpc_dissect_element_CommPktChangeOrderRecordExtension_offset_last(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int frsrpc_dissect_element_CommPktChangeOrderRecordExtension_not_used(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int frsrpc_dissect_element_CommPktChangeOrderRecordExtension_data_checksum(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int frsrpc_dissect_element_CommPktChangeOrderRecordExtension_data_retry_timeout(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
const value_string frsrpc_frsrpc_CommPktCommand_vals[] = {
	{ FRSRPC_COMMAND_REMOTE_CO, "FRSRPC_COMMAND_REMOTE_CO" },
	{ FRSRPC_COMMAND_RECEIVING_STATE, "FRSRPC_COMMAND_RECEIVING_STATE" },
	{ FRSRPC_COMMAND_REMOTE_CO_DONE, "FRSRPC_COMMAND_REMOTE_CO_DONE" },
	{ FRSRPC_COMMAND_ABORT_FETCH, "FRSRPC_COMMAND_ABORT_FETCH" },
	{ FRSRPC_COMMAND_RETRY_FETCH, "FRSRPC_COMMAND_RETRY_FETCH" },
	{ FRSRPC_COMMAND_NEED_JOIN, "FRSRPC_COMMAND_NEED_JOIN" },
	{ FRSRPC_COMMAND_START_JOIN, "FRSRPC_COMMAND_START_JOIN" },
	{ FRSRPC_COMMAND_JOINING, "FRSRPC_COMMAND_JOINING" },
	{ FRSRPC_COMMAND_JOINED, "FRSRPC_COMMAND_JOINED" },
	{ FRSRPC_COMMAND_UNJOIN_REMOTE, "FRSRPC_COMMAND_UNJOIN_REMOTE" },
	{ FRSRPC_COMMAND_WJOIN_DONE, "FRSRPC_COMMAND_WJOIN_DONE" },
	{ FRSRPC_COMMAND_SEND_STAGE, "FRSRPC_COMMAND_SEND_STAGE" },
{ 0, NULL }
};
const value_string frsrpc_frsrpc_CommPktChunkType_vals[] = {
	{ FRSRPC_COMM_PKT_CHUNK_BOP, "FRSRPC_COMM_PKT_CHUNK_BOP" },
	{ FRSRPC_COMM_PKT_CHUNK_COMMAND, "FRSRPC_COMM_PKT_CHUNK_COMMAND" },
	{ FRSRPC_COMM_PKT_CHUNK_TO, "FRSRPC_COMM_PKT_CHUNK_TO" },
	{ FRSRPC_COMM_PKT_CHUNK_FROM, "FRSRPC_COMM_PKT_CHUNK_FROM" },
	{ FRSRPC_COMM_PKT_CHUNK_REPLICA, "FRSRPC_COMM_PKT_CHUNK_REPLICA" },
	{ FRSRPC_COMM_PKT_CHUNK_CONNECTION, "FRSRPC_COMM_PKT_CHUNK_CONNECTION" },
	{ FRSRPC_COMM_PKT_CHUNK_JOIN_GUID, "FRSRPC_COMM_PKT_CHUNK_JOIN_GUID" },
	{ FRSRPC_COMM_PKT_CHUNK_LAST_JOIN_TIME, "FRSRPC_COMM_PKT_CHUNK_LAST_JOIN_TIME" },
	{ FRSRPC_COMM_PKT_CHUNK_VVECTOR, "FRSRPC_COMM_PKT_CHUNK_VVECTOR" },
	{ FRSRPC_COMM_PKT_CHUNK_JOIN_TIME, "FRSRPC_COMM_PKT_CHUNK_JOIN_TIME" },
	{ FRSRPC_COMM_PKT_CHUNK_REPLICA_VERSION_GUID, "FRSRPC_COMM_PKT_CHUNK_REPLICA_VERSION_GUID" },
	{ FRSRPC_COMM_PKT_CHUNK_COMPRESSION_GUID, "FRSRPC_COMM_PKT_CHUNK_COMPRESSION_GUID" },
	{ FRSRPC_COMM_PKT_CHUNK_BLOCK, "FRSRPC_COMM_PKT_CHUNK_BLOCK" },
	{ FRSRPC_COMM_PKT_CHUNK_BLOCK_SIZE, "FRSRPC_COMM_PKT_CHUNK_BLOCK_SIZE" },
	{ FRSRPC_COMM_PKT_CHUNK_FILE_SIZE, "FRSRPC_COMM_PKT_CHUNK_FILE_SIZE" },
	{ FRSRPC_COMM_PKT_CHUNK_FILE_OFFSET, "FRSRPC_COMM_PKT_CHUNK_FILE_OFFSET" },
	{ FRSRPC_COMM_PKT_CHUNK_GVSN, "FRSRPC_COMM_PKT_CHUNK_GVSN" },
	{ FRSRPC_COMM_PKT_CHUNK_CO_GUID, "FRSRPC_COMM_PKT_CHUNK_CO_GUID" },
	{ FRSRPC_COMM_PKT_CHUNK_CO_SEQUENCE_NUMBER, "FRSRPC_COMM_PKT_CHUNK_CO_SEQUENCE_NUMBER" },
	{ FRSRPC_COMM_PKT_CHUNK_REMOTE_CO, "FRSRPC_COMM_PKT_CHUNK_REMOTE_CO" },
	{ FRSRPC_COMM_PKT_CHUNK_CO_EXT_WIN2K, "FRSRPC_COMM_PKT_CHUNK_CO_EXT_WIN2K" },
	{ FRSRPC_COMM_PKT_CHUNK_CO_EXTENTION_2, "FRSRPC_COMM_PKT_CHUNK_CO_EXTENTION_2" },
	{ FRSRPC_COMM_PKT_CHUNK_EOP, "FRSRPC_COMM_PKT_CHUNK_EOP" },
{ 0, NULL }
};
static int frsrpc_dissect_element_CommPktChunkData_blob(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int frsrpc_dissect_element_CommPktChunkData_bop(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int frsrpc_dissect_element_CommPktChunkData_command(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int frsrpc_dissect_element_CommPktChunkData_to(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int frsrpc_dissect_element_CommPktChunkData_from(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int frsrpc_dissect_element_CommPktChunkData_replica(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int frsrpc_dissect_element_CommPktChunkData_connection(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int frsrpc_dissect_element_CommPktChunkData_join_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int frsrpc_dissect_element_CommPktChunkData_join_guid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int frsrpc_dissect_element_CommPktChunkData_last_join_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int frsrpc_dissect_element_CommPktChunkData_vvector(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int frsrpc_dissect_element_CommPktChunkData_vvector_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int frsrpc_dissect_element_CommPktChunkData_join_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int frsrpc_dissect_element_CommPktChunkData_join_time_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int frsrpc_dissect_element_CommPktChunkData_replica_version_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int frsrpc_dissect_element_CommPktChunkData_replica_version_guid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int frsrpc_dissect_element_CommPktChunkData_compression_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int frsrpc_dissect_element_CommPktChunkData_block(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int frsrpc_dissect_element_CommPktChunkData_block_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int frsrpc_dissect_element_CommPktChunkData_file_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int frsrpc_dissect_element_CommPktChunkData_file_offset(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int frsrpc_dissect_element_CommPktChunkData_gvsn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int frsrpc_dissect_element_CommPktChunkData_gvsn_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int frsrpc_dissect_element_CommPktChunkData_co_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int frsrpc_dissect_element_CommPktChunkData_co_guid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int frsrpc_dissect_element_CommPktChunkData_co_sequnence_number(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int frsrpc_dissect_element_CommPktChunkData_remote_co(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int frsrpc_dissect_element_CommPktChunkData_remote_co_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int frsrpc_dissect_element_CommPktChunkData_co_ext_win2k(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int frsrpc_dissect_element_CommPktChunkData_co_ext_win2k_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int frsrpc_dissect_element_CommPktChunkData_co_extension2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int frsrpc_dissect_element_CommPktChunkData_bopend(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int frsrpc_dissect_element_CommPktChunk_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, guint1632 *type);
static int frsrpc_dissect_element_CommPktChunk_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, guint1632 *type);
static int frsrpc_dissect_element_CommPktChunk_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, guint1632 *type);
const value_string frsrpc_frsrpc_CommPktMajor_vals[] = {
	{ FRSRPC_COMM_PKT_MAJOR_0, "FRSRPC_COMM_PKT_MAJOR_0" },
{ 0, NULL }
};
const value_string frsrpc_frsrpc_CommPktMinor_vals[] = {
	{ FRSRPC_COMM_PKT_MINOR_0, "FRSRPC_COMM_PKT_MINOR_0" },
	{ FRSRPC_COMM_PKT_MINOR_1, "FRSRPC_COMM_PKT_MINOR_1" },
	{ FRSRPC_COMM_PKT_MINOR_2, "FRSRPC_COMM_PKT_MINOR_2" },
	{ FRSRPC_COMM_PKT_MINOR_3, "FRSRPC_COMM_PKT_MINOR_3" },
	{ FRSRPC_COMM_PKT_MINOR_4, "FRSRPC_COMM_PKT_MINOR_4" },
	{ FRSRPC_COMM_PKT_MINOR_5, "FRSRPC_COMM_PKT_MINOR_5" },
	{ FRSRPC_COMM_PKT_MINOR_6, "FRSRPC_COMM_PKT_MINOR_6" },
	{ FRSRPC_COMM_PKT_MINOR_7, "FRSRPC_COMM_PKT_MINOR_7" },
	{ FRSRPC_COMM_PKT_MINOR_8, "FRSRPC_COMM_PKT_MINOR_8" },
	{ FRSRPC_COMM_PKT_MINOR_9, "FRSRPC_COMM_PKT_MINOR_9" },
{ 0, NULL }
};
static int frsrpc_dissect_element_FrsSendCommPktReq_major(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int frsrpc_dissect_element_FrsSendCommPktReq_minor(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int frsrpc_dissect_element_FrsSendCommPktReq_cs_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int frsrpc_dissect_element_FrsSendCommPktReq_memory_len(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int frsrpc_dissect_element_FrsSendCommPktReq_pkt_len(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int frsrpc_dissect_element_FrsSendCommPktReq_upk_len(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int frsrpc_dissect_element_FrsSendCommPktReq_ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int frsrpc_dissect_element_FrsSendCommPktReq_ctr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int frsrpc_dissect_element_FrsSendCommPktReq_ctr__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int frsrpc_dissect_element_FrsSendCommPktReq_data_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int frsrpc_dissect_element_FrsSendCommPktReq_data_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
const value_string frsrpc_frsrpc_PartnerAuthLevel_vals[] = {
	{ FRSRPC_PARENT_AUTH_LEVEL_ENCRYPTED_KERBEROS, "FRSRPC_PARENT_AUTH_LEVEL_ENCRYPTED_KERBEROS" },
	{ FRSRPC_PARENT_AUTH_LEVEL_NO_AUTHENTICATION, "FRSRPC_PARENT_AUTH_LEVEL_NO_AUTHENTICATION" },
{ 0, NULL }
};
static int frsrpc_dissect_element_FrsSendCommPkt_req(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int frsrpc_dissect_element_FrsVerifyPromotionParent_parent_account(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int frsrpc_dissect_element_FrsVerifyPromotionParent_parent_account_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int frsrpc_dissect_element_FrsVerifyPromotionParent_parent_password(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int frsrpc_dissect_element_FrsVerifyPromotionParent_parent_password_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int frsrpc_dissect_element_FrsVerifyPromotionParent_replica_set_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int frsrpc_dissect_element_FrsVerifyPromotionParent_replica_set_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int frsrpc_dissect_element_FrsVerifyPromotionParent_replica_set_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int frsrpc_dissect_element_FrsVerifyPromotionParent_replica_set_type_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int frsrpc_dissect_element_FrsVerifyPromotionParent_partner_auth_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 frsrpc_dissect_element_FrsVerifyPromotionParent___ndr_guid_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int frsrpc_dissect_element_FrsStartPromotionParent_parent_account(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int frsrpc_dissect_element_FrsStartPromotionParent_parent_account_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int frsrpc_dissect_element_FrsStartPromotionParent_parent_password(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int frsrpc_dissect_element_FrsStartPromotionParent_parent_password_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int frsrpc_dissect_element_FrsStartPromotionParent_replica_set_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int frsrpc_dissect_element_FrsStartPromotionParent_replica_set_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int frsrpc_dissect_element_FrsStartPromotionParent_replica_set_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int frsrpc_dissect_element_FrsStartPromotionParent_replica_set_type_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int frsrpc_dissect_element_FrsStartPromotionParent_connection_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int frsrpc_dissect_element_FrsStartPromotionParent_connection_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int frsrpc_dissect_element_FrsStartPromotionParent_partner_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int frsrpc_dissect_element_FrsStartPromotionParent_partner_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int frsrpc_dissect_element_FrsStartPromotionParent_partner_princ_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int frsrpc_dissect_element_FrsStartPromotionParent_partner_princ_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int frsrpc_dissect_element_FrsStartPromotionParent_partner_auth_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 frsrpc_dissect_element_FrsStartPromotionParent___ndr_guid_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int frsrpc_dissect_element_FrsStartPromotionParent_connection_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int frsrpc_dissect_element_FrsStartPromotionParent_connection_guid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int frsrpc_dissect_element_FrsStartPromotionParent_connection_guid__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int frsrpc_dissect_element_FrsStartPromotionParent_partner_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int frsrpc_dissect_element_FrsStartPromotionParent_partner_guid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int frsrpc_dissect_element_FrsStartPromotionParent_partner_guid__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int frsrpc_dissect_element_FrsStartPromotionParent_parent_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int frsrpc_dissect_element_FrsStartPromotionParent_parent_guid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int frsrpc_dissect_element_FrsStartPromotionParent_parent_guid__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int
frsrpc_dissect_element_CommPktChangeOrderCommand_file_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di, guint8 *drep _U_)
{
	int conformant = di->conformant_run;
	if (!conformant) {
		guint32 soffset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_frsrpc_CommPktChangeOrderCommand_file_name, 0);
		/* The difference has to be 4 due to the uint16 of the length  + null terminator utf16*/
		DISSECTOR_ASSERT(soffset - offset < 261);
		offset += 261;
	}
	return offset;
}
int
frsrpc_dissect_struct_CommPktChunk(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
{
	guint1632 type = 0;
	int i = 0;
	const char *s = NULL;
	proto_item *item = NULL;
	proto_tree *tree = NULL;
	int old_offset;
	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_frsrpc_frsrpc_CommPktChunk);
	}
	
	offset = frsrpc_dissect_element_CommPktChunk_type(tvb, offset, pinfo, tree, di, drep, &type);
	offset = frsrpc_dissect_element_CommPktChunk_data(tvb, offset, pinfo, tree, di, drep, &type);
	for (i=0; frsrpc_frsrpc_CommPktChunkType_vals[i].strptr; i++) {
		if (frsrpc_frsrpc_CommPktChunkType_vals[i].value == type) {
			s = frsrpc_frsrpc_CommPktChunkType_vals[i].strptr;
		}
	}
	if (s != NULL) {
		proto_item_append_text(item, ", type = %s", s);
	}
	proto_item_set_len(item, offset-old_offset);
	if (di->call_data->flags & DCERPC_IS_NDR64) {
		ALIGN_TO_3_BYTES;
	}
	return offset;
}
int
frsrpc_dissect_enum_CommPktCommand(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
{
	guint32 parameter=0;
	int i = 0;
	const char *s = NULL;
	if(param){
		parameter=(guint32)*param;
	}
	offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_index, &parameter);
	for (i=0; frsrpc_frsrpc_CommPktCommand_vals[i].strptr != NULL; i++) {
		if (frsrpc_frsrpc_CommPktCommand_vals[i].value == parameter) {
			s = frsrpc_frsrpc_CommPktCommand_vals[i].strptr;
		}
	}
	if (s!= NULL)
		col_append_fstr(pinfo->cinfo, COL_INFO, ",command = %s",
				s);
	if(param){
		*param=(guint32)parameter;
	}
	return offset;
}
static int
frsrpc_dissect_struct_frsrpc_CommPktChunkCtr(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, dcerpc_info* di, guint8 *drep _U_, int hf_index, guint32 param _U_)
{
	guint32 nb_chunk = 0;
	guint32 remaining = tvb_reported_length_remaining(tvb, offset);
	int align_status = di->no_align;
	if (remaining > 0) {
		proto_item *item = proto_tree_add_item(tree, hf_index, tvb, offset, -1, TRUE);
		proto_tree *subtree = proto_item_add_subtree(item, ett_ChunkCtr);
		di->no_align = 1;
		for(nb_chunk = 0; remaining > 0; nb_chunk++) {
			offset = frsrpc_dissect_struct_CommPktChunk(tvb, offset, pinfo, subtree, di, drep, hf_CommPktChunk, param);
			remaining = tvb_reported_length_remaining(tvb, offset);
		}
		di->no_align = align_status;
	}
	return offset;
}


/* IDL: struct { */
/* IDL: 	[subcontext(4)] GUID guid; */
/* IDL: 	[flag(LIBNDR_FLAG_STR_NULLTERM)] [subcontext(4)] string name; */
/* IDL: } */

static int
frsrpc_dissect_element_CommPktChunkGuidName_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	guint3264 size;
	int conformant = di->conformant_run;
	tvbuff_t *subtvb;

	if (!conformant) {
		guint32 saved_flags = di->call_data->flags;
		offset = dissect_ndr_uint3264(tvb, offset, pinfo, tree, di, drep, hf_frsrpc_frsrpc_CommPktChunkGuidName_guid_, &size);
		di->call_data->flags &= ~DCERPC_IS_NDR64;
		subtvb = tvb_new_subset_length_caplen(tvb, offset, (const gint)size, -1);
		frsrpc_dissect_element_CommPktChunkGuidName_guid_(subtvb, 0, pinfo, tree, di, drep);
		offset += (int)size;
		di->call_data->flags = saved_flags;
	}

	return offset;
}

static int
frsrpc_dissect_element_CommPktChunkGuidName_guid_(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_frsrpc_frsrpc_CommPktChunkGuidName_guid, NULL);

	return offset;
}

static int
frsrpc_dissect_element_CommPktChunkGuidName_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	guint3264 size;
	int conformant = di->conformant_run;
	tvbuff_t *subtvb;

	if (!conformant) {
		guint32 saved_flags = di->call_data->flags;
		offset = dissect_ndr_uint3264(tvb, offset, pinfo, tree, di, drep, hf_frsrpc_frsrpc_CommPktChunkGuidName_name_, &size);
		di->call_data->flags &= ~DCERPC_IS_NDR64;
		subtvb = tvb_new_subset_length_caplen(tvb, offset, (const gint)size, -1);
		frsrpc_dissect_element_CommPktChunkGuidName_name_(subtvb, 0, pinfo, tree, di, drep);
		offset += (int)size;
		di->call_data->flags = saved_flags;
	}

	return offset;
}

static int
frsrpc_dissect_element_CommPktChunkGuidName_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_frsrpc_frsrpc_CommPktChunkGuidName_name , 0);

	return offset;
}

int
frsrpc_dissect_struct_CommPktChunkGuidName(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;

	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_frsrpc_frsrpc_CommPktChunkGuidName);
	}

	offset = frsrpc_dissect_element_CommPktChunkGuidName_guid(tvb, offset, pinfo, tree, di, drep);

	offset = frsrpc_dissect_element_CommPktChunkGuidName_name(tvb, offset, pinfo, tree, di, drep);


	proto_item_set_len(item, offset-old_offset);


	return offset;
}


/* IDL: struct { */
/* IDL: 	hyper vsn; */
/* IDL: 	GUID guid; */
/* IDL: } */

static int
frsrpc_dissect_element_CommPktGSVN_vsn(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_uint64(tvb, offset, pinfo, tree, di, drep, hf_frsrpc_frsrpc_CommPktGSVN_vsn, NULL);

	return offset;
}

static int
frsrpc_dissect_element_CommPktGSVN_guid(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_frsrpc_frsrpc_CommPktGSVN_guid, NULL);

	return offset;
}

int
frsrpc_dissect_struct_CommPktGSVN(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_8_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_frsrpc_frsrpc_CommPktGSVN);
	}

	offset = frsrpc_dissect_element_CommPktGSVN_vsn(tvb, offset, pinfo, tree, di, drep);

	offset = frsrpc_dissect_element_CommPktGSVN_guid(tvb, offset, pinfo, tree, di, drep);


	proto_item_set_len(item, offset-old_offset);


	if (di->call_data->flags & DCERPC_IS_NDR64) {
		ALIGN_TO_8_BYTES;
	}

	return offset;
}


/* IDL: bitmap { */
/* IDL: 	FRSRPC_CO_FLAG_ABORT_CO =  0x00000001 , */
/* IDL: 	FRSRPC_CO_FLAG_VV_ACTIVATED =  0x00000002 , */
/* IDL: 	FRSRPC_CO_FLAG_CONTENT_CMD =  0x00000004 , */
/* IDL: 	FRSRPC_CO_FLAG_LOCATION_CMD =  0x00000008 , */
/* IDL: 	FRSRPC_CO_FLAG_ONLIST =  0x00000010 , */
/* IDL: 	FRSRPC_CO_FLAG_LOCALCO =  0x00000020 , */
/* IDL: 	FRSRPC_CO_FLAG_RETRY =  0x00000040 , */
/* IDL: 	FRSRPC_CO_FLAG_OUT_OF_ORDER =  0x00000200 , */
/* IDL: 	FRSRPC_CO_FLAG_NEW_FILE =  0x00000400 , */
/* IDL: 	FRSRPC_CO_FLAG_CONTROL =  0x00001000 , */
/* IDL: 	FRSRPC_CO_FLAG_DIRECTED_CO =  0x00002000 , */
/* IDL: 	FRSRPC_CO_FLAG_VVJOIN_TO_ORIG =  0x00040000 , */
/* IDL: 	FRSRPC_CO_FLAG_SKIP_ORIG_REC_C =  0x00100000 , */
/* IDL: 	FRSRPC_CO_FLAG_MOVEIN_GEN =  0x00200000 , */
/* IDL: 	FRSRPC_CO_FLAG_MORPH_GEN_HEAD =  0x00400000 , */
/* IDL: 	FRSRPC_CO_FLAG_JUST_OID_RESET =  0x00800000 , */
/* IDL: 	FRSRPC_CO_FLAG_COMPRESSED_STAGE =  0x01000000 , */
/* IDL: 	FRSRPC_CO_FLAG_SKIP_VV_UPDATE =  0x02000000 , */
/* IDL: } */

int
frsrpc_dissect_bitmap_CommPktCoCmdFlags(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;
	static int * const frsrpc_frsrpc_CommPktCoCmdFlags_fields[] = {
		&hf_frsrpc_frsrpc_CommPktCoCmdFlags_FRSRPC_CO_FLAG_ABORT_CO,
		&hf_frsrpc_frsrpc_CommPktCoCmdFlags_FRSRPC_CO_FLAG_VV_ACTIVATED,
		&hf_frsrpc_frsrpc_CommPktCoCmdFlags_FRSRPC_CO_FLAG_CONTENT_CMD,
		&hf_frsrpc_frsrpc_CommPktCoCmdFlags_FRSRPC_CO_FLAG_LOCATION_CMD,
		&hf_frsrpc_frsrpc_CommPktCoCmdFlags_FRSRPC_CO_FLAG_ONLIST,
		&hf_frsrpc_frsrpc_CommPktCoCmdFlags_FRSRPC_CO_FLAG_LOCALCO,
		&hf_frsrpc_frsrpc_CommPktCoCmdFlags_FRSRPC_CO_FLAG_RETRY,
		&hf_frsrpc_frsrpc_CommPktCoCmdFlags_FRSRPC_CO_FLAG_OUT_OF_ORDER,
		&hf_frsrpc_frsrpc_CommPktCoCmdFlags_FRSRPC_CO_FLAG_NEW_FILE,
		&hf_frsrpc_frsrpc_CommPktCoCmdFlags_FRSRPC_CO_FLAG_CONTROL,
		&hf_frsrpc_frsrpc_CommPktCoCmdFlags_FRSRPC_CO_FLAG_DIRECTED_CO,
		&hf_frsrpc_frsrpc_CommPktCoCmdFlags_FRSRPC_CO_FLAG_VVJOIN_TO_ORIG,
		&hf_frsrpc_frsrpc_CommPktCoCmdFlags_FRSRPC_CO_FLAG_SKIP_ORIG_REC_C,
		&hf_frsrpc_frsrpc_CommPktCoCmdFlags_FRSRPC_CO_FLAG_MOVEIN_GEN,
		&hf_frsrpc_frsrpc_CommPktCoCmdFlags_FRSRPC_CO_FLAG_MORPH_GEN_HEAD,
		&hf_frsrpc_frsrpc_CommPktCoCmdFlags_FRSRPC_CO_FLAG_JUST_OID_RESET,
		&hf_frsrpc_frsrpc_CommPktCoCmdFlags_FRSRPC_CO_FLAG_COMPRESSED_STAGE,
		&hf_frsrpc_frsrpc_CommPktCoCmdFlags_FRSRPC_CO_FLAG_SKIP_VV_UPDATE,
		NULL
	};
	guint32 flags;
	ALIGN_TO_4_BYTES;

	item = proto_tree_add_bitmask_with_flags(parent_tree, tvb, offset, hf_index,
				ett_frsrpc_frsrpc_CommPktCoCmdFlags, frsrpc_frsrpc_CommPktCoCmdFlags_fields, DREP_ENC_INTEGER(drep), BMT_NO_FALSE);

	offset = dissect_ndr_uint32(tvb, offset, pinfo, parent_tree, di, drep, -1, &flags);

	if (!flags)
		proto_item_append_text(item, ": (No values set)");

	if (flags & (~0x03f4367f)) {
		flags &= (~0x03f4367f);
		proto_item_append_text(item, "Unknown bitmap value 0x%x", flags);
	}

	return offset;
}


/* IDL: bitmap { */
/* IDL: 	FRSRPC_CO_IFLAG_VVRETIRE_EXEC =  0x00000001 , */
/* IDL: 	FRSRPC_CO_IFLAG_CO_ABORT =  0x00000002 , */
/* IDL: 	FRSRPC_CO_IFLAG_DIR_ENUM_PENDING =  0x00000004 , */
/* IDL: } */

int
frsrpc_dissect_bitmap_CommPktCoCmdIFlags(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;
	static int * const frsrpc_frsrpc_CommPktCoCmdIFlags_fields[] = {
		&hf_frsrpc_frsrpc_CommPktCoCmdIFlags_FRSRPC_CO_IFLAG_VVRETIRE_EXEC,
		&hf_frsrpc_frsrpc_CommPktCoCmdIFlags_FRSRPC_CO_IFLAG_CO_ABORT,
		&hf_frsrpc_frsrpc_CommPktCoCmdIFlags_FRSRPC_CO_IFLAG_DIR_ENUM_PENDING,
		NULL
	};
	guint32 flags;
	ALIGN_TO_4_BYTES;

	item = proto_tree_add_bitmask_with_flags(parent_tree, tvb, offset, hf_index,
				ett_frsrpc_frsrpc_CommPktCoCmdIFlags, frsrpc_frsrpc_CommPktCoCmdIFlags_fields, DREP_ENC_INTEGER(drep), BMT_NO_FALSE);

	offset = dissect_ndr_uint32(tvb, offset, pinfo, parent_tree, di, drep, -1, &flags);

	if (!flags)
		proto_item_append_text(item, ": (No values set)");

	if (flags & (~0x00000007)) {
		flags &= (~0x00000007);
		proto_item_append_text(item, "Unknown bitmap value 0x%x", flags);
	}

	return offset;
}


/* IDL: enum { */
/* IDL: 	FRSRPC_CO_STATUS_CO_ENTERED_LOG=0x00000000, */
/* IDL: 	FRSRPC_CO_STATUS_ALLOC_STAGING_LOCAL_CO=0x00000001, */
/* IDL: 	FRSRPC_CO_STATUS_LOCAL_CO_STAGING_STARTED=0x00000002, */
/* IDL: 	FRSRPC_CO_STATUS_LOCAL_CO_STAGING_COMPLETED=0x00000003, */
/* IDL: 	FRSRPC_CO_STATUS_WAIT_RETRY_LOCAL_CO_STAGING=0x00000004, */
/* IDL: 	FRSRPC_CO_STATUS_ALLOC_STAGING_REMOTE_CO=0x00000005, */
/* IDL: 	FRSRPC_CO_STATUS_REMOTE_CO_STAGING_STARTED=0x00000006, */
/* IDL: 	FRSRPC_CO_STATUS_REMOTE_CO_STAGING_COMPLETED=0x00000007, */
/* IDL: 	FRSRPC_CO_STATUS_WAIT_RETRY_REMOTE_CO_STAGING=0x00000008, */
/* IDL: 	FRSRPC_CO_STATUS_FILE_INSTALL_REQUESTED=0x00000009, */
/* IDL: 	FRSRPC_CO_STATUS_FILE_INSTALL_STARTED=0x0000000A, */
/* IDL: 	FRSRPC_CO_STATUS_FILE_INSTALL_COMPLETED=0x0000000B, */
/* IDL: 	FRSRPC_CO_STATUS_FILE_INSTALL_WAIT_RETRY=0x0000000C, */
/* IDL: 	FRSRPC_CO_STATUS_FILE_INSTALL_RETRYING=0x0000000D, */
/* IDL: 	FRSRPC_CO_STATUS_FILE_INSTALL_RENAME_RETRYING=0x0000000E, */
/* IDL: 	FRSRPC_CO_STATUS_FILE_INSTALL_DELETE_RETRYING=0x0000000F, */
/* IDL: 	FRSRPC_CO_STATUS_CO_RECYCLED_FOR_ENUM=0x00000013, */
/* IDL: 	FRSRPC_CO_STATUS_REQUEST_OUTBOUND_PROPAGATION=0x00000014, */
/* IDL: 	FRSRPC_CO_STATUS_REQUEST_ACCEPTED_OUTBOUND_LOG=0x00000015, */
/* IDL: 	FRSRPC_CO_STATUS_DB_STATE_UPDATE_STARTED=0x00000016, */
/* IDL: 	FRSRPC_CO_STATUS_DB_STATE_UPDATE_COMPLETED=0x00000017, */
/* IDL: 	FRSRPC_CO_STATUS_CO_ABORTED=0x00000018, */
/* IDL: } */

int
frsrpc_dissect_enum_CommPktCoCmdStatus(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
{
	guint32 parameter=0;
	if (param) {
		parameter = *param;
	}
	offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_index, &parameter);
	if (param) {
		*param = parameter;
	}
	return offset;
}


/* IDL: bitmap { */
/* IDL: 	FRSRPC_CONTENT_REASON_DATA_OVERWRITE =  0x00000001 , */
/* IDL: 	FRSRPC_CONTENT_REASON_DATA_EXTEND =  0x00000002 , */
/* IDL: 	FRSRPC_CONTENT_REASON_DATA_TRUNCATION =  0x00000004 , */
/* IDL: 	FRSRPC_CONTENT_REASON_NAMED_DATA_OVERWRITE =  0x00000010 , */
/* IDL: 	FRSRPC_CONTENT_REASON_NAMED_DATA_EXTEND =  0x00000020 , */
/* IDL: 	FRSRPC_CONTENT_REASON_NAMED_DATA_TRUNCATION =  0x00000040 , */
/* IDL: 	FRSRPC_CONTENT_REASON_FILE_CREATE =  0x00000100 , */
/* IDL: 	FRSRPC_CONTENT_REASON_FILE_DELETE =  0x00000200 , */
/* IDL: 	FRSRPC_CONTENT_REASON_EA_CHANGE =  0x00000400 , */
/* IDL: 	FRSRPC_CONTENT_REASON_SECURITY_CHANGE =  0x00000800 , */
/* IDL: 	FRSRPC_CONTENT_REASON_OLD_NAME =  0x00001000 , */
/* IDL: 	FRSRPC_CONTENT_REASON_NEW_NAME =  0x00002000 , */
/* IDL: 	FRSRPC_CONTENT_REASON_BASIC_INFO_CHANGE =  0x00004000 , */
/* IDL: 	FRSRPC_CONTENT_REASON_COMPRESSION_CHANGE =  0x00020000 , */
/* IDL: } */

int
frsrpc_dissect_bitmap_CommPktCoCmdContentCmd(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;
	static int * const frsrpc_frsrpc_CommPktCoCmdContentCmd_fields[] = {
		&hf_frsrpc_frsrpc_CommPktCoCmdContentCmd_FRSRPC_CONTENT_REASON_DATA_OVERWRITE,
		&hf_frsrpc_frsrpc_CommPktCoCmdContentCmd_FRSRPC_CONTENT_REASON_DATA_EXTEND,
		&hf_frsrpc_frsrpc_CommPktCoCmdContentCmd_FRSRPC_CONTENT_REASON_DATA_TRUNCATION,
		&hf_frsrpc_frsrpc_CommPktCoCmdContentCmd_FRSRPC_CONTENT_REASON_NAMED_DATA_OVERWRITE,
		&hf_frsrpc_frsrpc_CommPktCoCmdContentCmd_FRSRPC_CONTENT_REASON_NAMED_DATA_EXTEND,
		&hf_frsrpc_frsrpc_CommPktCoCmdContentCmd_FRSRPC_CONTENT_REASON_NAMED_DATA_TRUNCATION,
		&hf_frsrpc_frsrpc_CommPktCoCmdContentCmd_FRSRPC_CONTENT_REASON_FILE_CREATE,
		&hf_frsrpc_frsrpc_CommPktCoCmdContentCmd_FRSRPC_CONTENT_REASON_FILE_DELETE,
		&hf_frsrpc_frsrpc_CommPktCoCmdContentCmd_FRSRPC_CONTENT_REASON_EA_CHANGE,
		&hf_frsrpc_frsrpc_CommPktCoCmdContentCmd_FRSRPC_CONTENT_REASON_SECURITY_CHANGE,
		&hf_frsrpc_frsrpc_CommPktCoCmdContentCmd_FRSRPC_CONTENT_REASON_OLD_NAME,
		&hf_frsrpc_frsrpc_CommPktCoCmdContentCmd_FRSRPC_CONTENT_REASON_NEW_NAME,
		&hf_frsrpc_frsrpc_CommPktCoCmdContentCmd_FRSRPC_CONTENT_REASON_BASIC_INFO_CHANGE,
		&hf_frsrpc_frsrpc_CommPktCoCmdContentCmd_FRSRPC_CONTENT_REASON_COMPRESSION_CHANGE,
		NULL
	};
	guint32 flags;
	ALIGN_TO_4_BYTES;

	item = proto_tree_add_bitmask_with_flags(parent_tree, tvb, offset, hf_index,
				ett_frsrpc_frsrpc_CommPktCoCmdContentCmd, frsrpc_frsrpc_CommPktCoCmdContentCmd_fields, DREP_ENC_INTEGER(drep), BMT_NO_FALSE);

	offset = dissect_ndr_uint32(tvb, offset, pinfo, parent_tree, di, drep, -1, &flags);

	if (!flags)
		proto_item_append_text(item, ": (No values set)");

	if (flags & (~0x00027f77)) {
		flags &= (~0x00027f77);
		proto_item_append_text(item, "Unknown bitmap value 0x%x", flags);
	}

	return offset;
}


/* IDL: enum { */
/* IDL: 	FRSRPC_CO_LOCATION_FILE_CREATE=0x00000000, */
/* IDL: 	FRSRPC_CO_LOCATION_DIR_CREATE=0x00000000|0x00000001, */
/* IDL: 	FRSRPC_CO_LOCATION_FILE_DELETE=0x00000002, */
/* IDL: 	FRSRPC_CO_LOCATION_DIR_DELETE=0x00000002|0x00000001, */
/* IDL: 	FRSRPC_CO_LOCATION_FILE_MOVEIN=0x00000004, */
/* IDL: 	FRSRPC_CO_LOCATION_DIR_MOVEIN=0x00000004|0x00000001, */
/* IDL: 	FRSRPC_CO_LOCATION_FILE_MOVEIN2=0x00000006, */
/* IDL: 	FRSRPC_CO_LOCATION_DIR_MOVEIN2=0x00000006|0x00000001, */
/* IDL: 	FRSRPC_CO_LOCATION_FILE_MOVEOUT=0x00000008, */
/* IDL: 	FRSRPC_CO_LOCATION_DIR_MOVEOUT=0x00000008|0x00000001, */
/* IDL: 	FRSRPC_CO_LOCATION_FILE_MOVERS=0x0000000a, */
/* IDL: 	FRSRPC_CO_LOCATION_DIR_MOVERS=0x0000000a|0x00000001, */
/* IDL: 	FRSRPC_CO_LOCATION_FILE_MOVEDIR=0x0000000c, */
/* IDL: 	FRSRPC_CO_LOCATION_DIR_MOVEDIR=0x0000000c|0x00000001, */
/* IDL: 	FRSRPC_CO_LOCATION_FILE_NO_CMD=0x0000000e, */
/* IDL: 	FRSRPC_CO_LOCATION_DIR_NO_CMD=0x0000000e|0x00000001, */
/* IDL: } */

int
frsrpc_dissect_enum_CommPktCoCmdLocationCmd(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
{
	guint32 parameter=0;
	if (param) {
		parameter = *param;
	}
	offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_index, &parameter);
	if (param) {
		*param = parameter;
	}
	return offset;
}


/* IDL: struct { */
/* IDL: 	uint32 sequence_number; */
/* IDL: 	frsrpc_CommPktCoCmdFlags flags; */
/* IDL: 	frsrpc_CommPktCoCmdIFlags iflags; */
/* IDL: 	frsrpc_CommPktCoCmdStatus status; */
/* IDL: 	frsrpc_CommPktCoCmdContentCmd content_cmd; */
/* IDL: 	frsrpc_CommPktCoCmdLocationCmd location_cmd; */
/* IDL: 	uint32 file_attributes; */
/* IDL: 	uint32 file_version_number; */
/* IDL: 	uint32 partern_ack_sequence_number; */
/* IDL: 	[value(0)] uint32 not_used; */
/* IDL: 	hyper file_size; */
/* IDL: 	hyper file_offset; */
/* IDL: 	hyper frs_vsn; */
/* IDL: 	hyper file_usn; */
/* IDL: 	hyper jrnl_usn; */
/* IDL: 	hyper jrnl_first_usn; */
/* IDL: 	uint32 original_replica_num; */
/* IDL: 	uint32 new_replica_num; */
/* IDL: 	GUID change_order_guid; */
/* IDL: 	GUID originator_guid; */
/* IDL: 	GUID file_guid; */
/* IDL: 	GUID old_parent_guid; */
/* IDL: 	GUID new_parent_guid; */
/* IDL: 	GUID connection_guid; */
/* IDL: 	hyper ack_version; */
/* IDL: 	[value(0)] hyper spare2ul1; */
/* IDL: 	[value(0)] hyper spare1guid_p1; */
/* IDL: 	[value(0)] hyper spare1guid_p2; */
/* IDL: 	[value(0)] hyper spare2guid_p1; */
/* IDL: 	[value(0)] hyper spare3guid_p2; */
/* IDL: 	[value(0)] uint32 spare1wcs; */
/* IDL: 	[value(0)] uint32 spare2wcs; */
/* IDL: 	[value(0)] uint32 extension; */
/* IDL: 	[value(0)] uint32 spare2bin; */
/* IDL: 	NTTIME event_time; */
/* IDL: 	[value(2*strlen_m(file_name))] uint16 file_name_length; */
/* IDL: 	[charset(UTF16)] uint16 file_name[260+1]; */
/* IDL: 	[value(0)] uint8 padding1; */
/* IDL: 	[value(0)] uint8 padding2; */
/* IDL: 	[value(0)] uint8 padding3; */
/* IDL: 	[value(0)] uint8 padding4; */
/* IDL: } */

static int
frsrpc_dissect_element_CommPktChangeOrderCommand_sequence_number(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_frsrpc_frsrpc_CommPktChangeOrderCommand_sequence_number, 0);

	return offset;
}

static int
frsrpc_dissect_element_CommPktChangeOrderCommand_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = frsrpc_dissect_bitmap_CommPktCoCmdFlags(tvb, offset, pinfo, tree, di, drep, hf_frsrpc_frsrpc_CommPktChangeOrderCommand_flags, 0);

	return offset;
}

static int
frsrpc_dissect_element_CommPktChangeOrderCommand_iflags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = frsrpc_dissect_bitmap_CommPktCoCmdIFlags(tvb, offset, pinfo, tree, di, drep, hf_frsrpc_frsrpc_CommPktChangeOrderCommand_iflags, 0);

	return offset;
}

static int
frsrpc_dissect_element_CommPktChangeOrderCommand_status(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = frsrpc_dissect_enum_CommPktCoCmdStatus(tvb, offset, pinfo, tree, di, drep, hf_frsrpc_frsrpc_CommPktChangeOrderCommand_status, 0);

	return offset;
}

static int
frsrpc_dissect_element_CommPktChangeOrderCommand_content_cmd(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = frsrpc_dissect_bitmap_CommPktCoCmdContentCmd(tvb, offset, pinfo, tree, di, drep, hf_frsrpc_frsrpc_CommPktChangeOrderCommand_content_cmd, 0);

	return offset;
}

static int
frsrpc_dissect_element_CommPktChangeOrderCommand_location_cmd(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = frsrpc_dissect_enum_CommPktCoCmdLocationCmd(tvb, offset, pinfo, tree, di, drep, hf_frsrpc_frsrpc_CommPktChangeOrderCommand_location_cmd, 0);

	return offset;
}

static int
frsrpc_dissect_element_CommPktChangeOrderCommand_file_attributes(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_frsrpc_frsrpc_CommPktChangeOrderCommand_file_attributes, 0);

	return offset;
}

static int
frsrpc_dissect_element_CommPktChangeOrderCommand_file_version_number(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_frsrpc_frsrpc_CommPktChangeOrderCommand_file_version_number, 0);

	return offset;
}

static int
frsrpc_dissect_element_CommPktChangeOrderCommand_partern_ack_sequence_number(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_frsrpc_frsrpc_CommPktChangeOrderCommand_partern_ack_sequence_number, 0);

	return offset;
}

static int
frsrpc_dissect_element_CommPktChangeOrderCommand_not_used(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_frsrpc_frsrpc_CommPktChangeOrderCommand_not_used, 0);

	return offset;
}

static int
frsrpc_dissect_element_CommPktChangeOrderCommand_file_size(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_uint64(tvb, offset, pinfo, tree, di, drep, hf_frsrpc_frsrpc_CommPktChangeOrderCommand_file_size, NULL);

	return offset;
}

static int
frsrpc_dissect_element_CommPktChangeOrderCommand_file_offset(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_uint64(tvb, offset, pinfo, tree, di, drep, hf_frsrpc_frsrpc_CommPktChangeOrderCommand_file_offset, NULL);

	return offset;
}

static int
frsrpc_dissect_element_CommPktChangeOrderCommand_frs_vsn(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_uint64(tvb, offset, pinfo, tree, di, drep, hf_frsrpc_frsrpc_CommPktChangeOrderCommand_frs_vsn, NULL);

	return offset;
}

static int
frsrpc_dissect_element_CommPktChangeOrderCommand_file_usn(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_uint64(tvb, offset, pinfo, tree, di, drep, hf_frsrpc_frsrpc_CommPktChangeOrderCommand_file_usn, NULL);

	return offset;
}

static int
frsrpc_dissect_element_CommPktChangeOrderCommand_jrnl_usn(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_uint64(tvb, offset, pinfo, tree, di, drep, hf_frsrpc_frsrpc_CommPktChangeOrderCommand_jrnl_usn, NULL);

	return offset;
}

static int
frsrpc_dissect_element_CommPktChangeOrderCommand_jrnl_first_usn(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_uint64(tvb, offset, pinfo, tree, di, drep, hf_frsrpc_frsrpc_CommPktChangeOrderCommand_jrnl_first_usn, NULL);

	return offset;
}

static int
frsrpc_dissect_element_CommPktChangeOrderCommand_original_replica_num(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_frsrpc_frsrpc_CommPktChangeOrderCommand_original_replica_num, 0);

	return offset;
}

static int
frsrpc_dissect_element_CommPktChangeOrderCommand_new_replica_num(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_frsrpc_frsrpc_CommPktChangeOrderCommand_new_replica_num, 0);

	return offset;
}

static int
frsrpc_dissect_element_CommPktChangeOrderCommand_change_order_guid(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_frsrpc_frsrpc_CommPktChangeOrderCommand_change_order_guid, NULL);

	return offset;
}

static int
frsrpc_dissect_element_CommPktChangeOrderCommand_originator_guid(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_frsrpc_frsrpc_CommPktChangeOrderCommand_originator_guid, NULL);

	return offset;
}

static int
frsrpc_dissect_element_CommPktChangeOrderCommand_file_guid(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_frsrpc_frsrpc_CommPktChangeOrderCommand_file_guid, NULL);

	return offset;
}

static int
frsrpc_dissect_element_CommPktChangeOrderCommand_old_parent_guid(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_frsrpc_frsrpc_CommPktChangeOrderCommand_old_parent_guid, NULL);

	return offset;
}

static int
frsrpc_dissect_element_CommPktChangeOrderCommand_new_parent_guid(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_frsrpc_frsrpc_CommPktChangeOrderCommand_new_parent_guid, NULL);

	return offset;
}

static int
frsrpc_dissect_element_CommPktChangeOrderCommand_connection_guid(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_frsrpc_frsrpc_CommPktChangeOrderCommand_connection_guid, NULL);

	return offset;
}

static int
frsrpc_dissect_element_CommPktChangeOrderCommand_ack_version(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_uint64(tvb, offset, pinfo, tree, di, drep, hf_frsrpc_frsrpc_CommPktChangeOrderCommand_ack_version, NULL);

	return offset;
}

static int
frsrpc_dissect_element_CommPktChangeOrderCommand_spare2ul1(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_uint64(tvb, offset, pinfo, tree, di, drep, hf_frsrpc_frsrpc_CommPktChangeOrderCommand_spare2ul1, NULL);

	return offset;
}

static int
frsrpc_dissect_element_CommPktChangeOrderCommand_spare1guid_p1(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_uint64(tvb, offset, pinfo, tree, di, drep, hf_frsrpc_frsrpc_CommPktChangeOrderCommand_spare1guid_p1, NULL);

	return offset;
}

static int
frsrpc_dissect_element_CommPktChangeOrderCommand_spare1guid_p2(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_uint64(tvb, offset, pinfo, tree, di, drep, hf_frsrpc_frsrpc_CommPktChangeOrderCommand_spare1guid_p2, NULL);

	return offset;
}

static int
frsrpc_dissect_element_CommPktChangeOrderCommand_spare2guid_p1(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_uint64(tvb, offset, pinfo, tree, di, drep, hf_frsrpc_frsrpc_CommPktChangeOrderCommand_spare2guid_p1, NULL);

	return offset;
}

static int
frsrpc_dissect_element_CommPktChangeOrderCommand_spare3guid_p2(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_uint64(tvb, offset, pinfo, tree, di, drep, hf_frsrpc_frsrpc_CommPktChangeOrderCommand_spare3guid_p2, NULL);

	return offset;
}

static int
frsrpc_dissect_element_CommPktChangeOrderCommand_spare1wcs(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_frsrpc_frsrpc_CommPktChangeOrderCommand_spare1wcs, 0);

	return offset;
}

static int
frsrpc_dissect_element_CommPktChangeOrderCommand_spare2wcs(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_frsrpc_frsrpc_CommPktChangeOrderCommand_spare2wcs, 0);

	return offset;
}

static int
frsrpc_dissect_element_CommPktChangeOrderCommand_extension(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_frsrpc_frsrpc_CommPktChangeOrderCommand_extension, 0);

	return offset;
}

static int
frsrpc_dissect_element_CommPktChangeOrderCommand_spare2bin(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_frsrpc_frsrpc_CommPktChangeOrderCommand_spare2bin, 0);

	return offset;
}

static int
frsrpc_dissect_element_CommPktChangeOrderCommand_event_time(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_frsrpc_frsrpc_CommPktChangeOrderCommand_event_time);

	return offset;
}

static int
frsrpc_dissect_element_CommPktChangeOrderCommand_file_name_length(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_uint16(tvb, offset, pinfo, tree, di, drep, hf_frsrpc_frsrpc_CommPktChangeOrderCommand_file_name_length, 0);

	return offset;
}

static int
frsrpc_dissect_element_CommPktChangeOrderCommand_padding1(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_uint8(tvb, offset, pinfo, tree, di, drep, hf_frsrpc_frsrpc_CommPktChangeOrderCommand_padding1, 0);

	return offset;
}

static int
frsrpc_dissect_element_CommPktChangeOrderCommand_padding2(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_uint8(tvb, offset, pinfo, tree, di, drep, hf_frsrpc_frsrpc_CommPktChangeOrderCommand_padding2, 0);

	return offset;
}

static int
frsrpc_dissect_element_CommPktChangeOrderCommand_padding3(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_uint8(tvb, offset, pinfo, tree, di, drep, hf_frsrpc_frsrpc_CommPktChangeOrderCommand_padding3, 0);

	return offset;
}

static int
frsrpc_dissect_element_CommPktChangeOrderCommand_padding4(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_uint8(tvb, offset, pinfo, tree, di, drep, hf_frsrpc_frsrpc_CommPktChangeOrderCommand_padding4, 0);

	return offset;
}

int
frsrpc_dissect_struct_CommPktChangeOrderCommand(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_8_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_frsrpc_frsrpc_CommPktChangeOrderCommand);
	}

	offset = frsrpc_dissect_element_CommPktChangeOrderCommand_sequence_number(tvb, offset, pinfo, tree, di, drep);

	offset = frsrpc_dissect_element_CommPktChangeOrderCommand_flags(tvb, offset, pinfo, tree, di, drep);

	offset = frsrpc_dissect_element_CommPktChangeOrderCommand_iflags(tvb, offset, pinfo, tree, di, drep);

	offset = frsrpc_dissect_element_CommPktChangeOrderCommand_status(tvb, offset, pinfo, tree, di, drep);

	offset = frsrpc_dissect_element_CommPktChangeOrderCommand_content_cmd(tvb, offset, pinfo, tree, di, drep);

	offset = frsrpc_dissect_element_CommPktChangeOrderCommand_location_cmd(tvb, offset, pinfo, tree, di, drep);

	offset = frsrpc_dissect_element_CommPktChangeOrderCommand_file_attributes(tvb, offset, pinfo, tree, di, drep);

	offset = frsrpc_dissect_element_CommPktChangeOrderCommand_file_version_number(tvb, offset, pinfo, tree, di, drep);

	offset = frsrpc_dissect_element_CommPktChangeOrderCommand_partern_ack_sequence_number(tvb, offset, pinfo, tree, di, drep);

	offset = frsrpc_dissect_element_CommPktChangeOrderCommand_not_used(tvb, offset, pinfo, tree, di, drep);

	offset = frsrpc_dissect_element_CommPktChangeOrderCommand_file_size(tvb, offset, pinfo, tree, di, drep);

	offset = frsrpc_dissect_element_CommPktChangeOrderCommand_file_offset(tvb, offset, pinfo, tree, di, drep);

	offset = frsrpc_dissect_element_CommPktChangeOrderCommand_frs_vsn(tvb, offset, pinfo, tree, di, drep);

	offset = frsrpc_dissect_element_CommPktChangeOrderCommand_file_usn(tvb, offset, pinfo, tree, di, drep);

	offset = frsrpc_dissect_element_CommPktChangeOrderCommand_jrnl_usn(tvb, offset, pinfo, tree, di, drep);

	offset = frsrpc_dissect_element_CommPktChangeOrderCommand_jrnl_first_usn(tvb, offset, pinfo, tree, di, drep);

	offset = frsrpc_dissect_element_CommPktChangeOrderCommand_original_replica_num(tvb, offset, pinfo, tree, di, drep);

	offset = frsrpc_dissect_element_CommPktChangeOrderCommand_new_replica_num(tvb, offset, pinfo, tree, di, drep);

	offset = frsrpc_dissect_element_CommPktChangeOrderCommand_change_order_guid(tvb, offset, pinfo, tree, di, drep);

	offset = frsrpc_dissect_element_CommPktChangeOrderCommand_originator_guid(tvb, offset, pinfo, tree, di, drep);

	offset = frsrpc_dissect_element_CommPktChangeOrderCommand_file_guid(tvb, offset, pinfo, tree, di, drep);

	offset = frsrpc_dissect_element_CommPktChangeOrderCommand_old_parent_guid(tvb, offset, pinfo, tree, di, drep);

	offset = frsrpc_dissect_element_CommPktChangeOrderCommand_new_parent_guid(tvb, offset, pinfo, tree, di, drep);

	offset = frsrpc_dissect_element_CommPktChangeOrderCommand_connection_guid(tvb, offset, pinfo, tree, di, drep);

	offset = frsrpc_dissect_element_CommPktChangeOrderCommand_ack_version(tvb, offset, pinfo, tree, di, drep);

	offset = frsrpc_dissect_element_CommPktChangeOrderCommand_spare2ul1(tvb, offset, pinfo, tree, di, drep);

	offset = frsrpc_dissect_element_CommPktChangeOrderCommand_spare1guid_p1(tvb, offset, pinfo, tree, di, drep);

	offset = frsrpc_dissect_element_CommPktChangeOrderCommand_spare1guid_p2(tvb, offset, pinfo, tree, di, drep);

	offset = frsrpc_dissect_element_CommPktChangeOrderCommand_spare2guid_p1(tvb, offset, pinfo, tree, di, drep);

	offset = frsrpc_dissect_element_CommPktChangeOrderCommand_spare3guid_p2(tvb, offset, pinfo, tree, di, drep);

	offset = frsrpc_dissect_element_CommPktChangeOrderCommand_spare1wcs(tvb, offset, pinfo, tree, di, drep);

	offset = frsrpc_dissect_element_CommPktChangeOrderCommand_spare2wcs(tvb, offset, pinfo, tree, di, drep);

	offset = frsrpc_dissect_element_CommPktChangeOrderCommand_extension(tvb, offset, pinfo, tree, di, drep);

	offset = frsrpc_dissect_element_CommPktChangeOrderCommand_spare2bin(tvb, offset, pinfo, tree, di, drep);

	offset = frsrpc_dissect_element_CommPktChangeOrderCommand_event_time(tvb, offset, pinfo, tree, di, drep);

	offset = frsrpc_dissect_element_CommPktChangeOrderCommand_file_name_length(tvb, offset, pinfo, tree, di, drep);

	offset = frsrpc_dissect_element_CommPktChangeOrderCommand_file_name(tvb, offset, pinfo, tree, di, drep);

	offset = frsrpc_dissect_element_CommPktChangeOrderCommand_padding1(tvb, offset, pinfo, tree, di, drep);

	offset = frsrpc_dissect_element_CommPktChangeOrderCommand_padding2(tvb, offset, pinfo, tree, di, drep);

	offset = frsrpc_dissect_element_CommPktChangeOrderCommand_padding3(tvb, offset, pinfo, tree, di, drep);

	offset = frsrpc_dissect_element_CommPktChangeOrderCommand_padding4(tvb, offset, pinfo, tree, di, drep);


	proto_item_set_len(item, offset-old_offset);


	if (di->call_data->flags & DCERPC_IS_NDR64) {
		ALIGN_TO_8_BYTES;
	}

	return offset;
}


/* IDL: enum { */
/* IDL: 	FRSRPC_DATA_EXTENSION_TERMINATOR=0x00000000, */
/* IDL: 	FRSRPC_DATA_EXTENSION_MD5_CHECKSUM=0x00000001, */
/* IDL: 	FRSRPC_DATA_EXTENSION_RETRY_TIMEOUT=0x00000002, */
/* IDL: } */

int
frsrpc_dissect_enum_CommPktDataExtensionType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
{
	guint32 parameter=0;
	if (param) {
		parameter = *param;
	}
	offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_index, &parameter);
	if (param) {
		*param = parameter;
	}
	return offset;
}


/* IDL: struct { */
/* IDL: 	[value(0x00000018)] uint32 prefix_size; */
/* IDL: 	[value(FRSRPC_DATA_EXTENSION_MD5_CHECKSUM)] frsrpc_CommPktDataExtensionType prefix_type; */
/* IDL: 	uint8 data[16]; */
/* IDL: } */

static int
frsrpc_dissect_element_CommPktDataExtensionChecksum_prefix_size(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_frsrpc_frsrpc_CommPktDataExtensionChecksum_prefix_size, 0);

	return offset;
}

static int
frsrpc_dissect_element_CommPktDataExtensionChecksum_prefix_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = frsrpc_dissect_enum_CommPktDataExtensionType(tvb, offset, pinfo, tree, di, drep, hf_frsrpc_frsrpc_CommPktDataExtensionChecksum_prefix_type, 0);

	return offset;
}

static int
frsrpc_dissect_element_CommPktDataExtensionChecksum_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	int i;
	for (i = 0; i < 16; i++)
		offset = frsrpc_dissect_element_CommPktDataExtensionChecksum_data_(tvb, offset, pinfo, tree, di, drep);

	return offset;
}

static int
frsrpc_dissect_element_CommPktDataExtensionChecksum_data_(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_uint8(tvb, offset, pinfo, tree, di, drep, hf_frsrpc_frsrpc_CommPktDataExtensionChecksum_data, 0);

	return offset;
}

int
frsrpc_dissect_struct_CommPktDataExtensionChecksum(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_4_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_frsrpc_frsrpc_CommPktDataExtensionChecksum);
	}

	offset = frsrpc_dissect_element_CommPktDataExtensionChecksum_prefix_size(tvb, offset, pinfo, tree, di, drep);

	offset = frsrpc_dissect_element_CommPktDataExtensionChecksum_prefix_type(tvb, offset, pinfo, tree, di, drep);

	offset = frsrpc_dissect_element_CommPktDataExtensionChecksum_data(tvb, offset, pinfo, tree, di, drep);


	proto_item_set_len(item, offset-old_offset);


	if (di->call_data->flags & DCERPC_IS_NDR64) {
		ALIGN_TO_4_BYTES;
	}

	return offset;
}


/* IDL: struct { */
/* IDL: 	[value(0x00000018)] uint32 prefix_size; */
/* IDL: 	[value(FRSRPC_DATA_EXTENSION_RETRY_TIMEOUT)] frsrpc_CommPktDataExtensionType prefix_type; */
/* IDL: 	uint32 count; */
/* IDL: 	[value(0)] uint32 not_used; */
/* IDL: 	NTTIME first_try_time; */
/* IDL: } */

static int
frsrpc_dissect_element_CommPktDataExtensionRetryTimeout_prefix_size(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_frsrpc_frsrpc_CommPktDataExtensionRetryTimeout_prefix_size, 0);

	return offset;
}

static int
frsrpc_dissect_element_CommPktDataExtensionRetryTimeout_prefix_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = frsrpc_dissect_enum_CommPktDataExtensionType(tvb, offset, pinfo, tree, di, drep, hf_frsrpc_frsrpc_CommPktDataExtensionRetryTimeout_prefix_type, 0);

	return offset;
}

static int
frsrpc_dissect_element_CommPktDataExtensionRetryTimeout_count(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_frsrpc_frsrpc_CommPktDataExtensionRetryTimeout_count, 0);

	return offset;
}

static int
frsrpc_dissect_element_CommPktDataExtensionRetryTimeout_not_used(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_frsrpc_frsrpc_CommPktDataExtensionRetryTimeout_not_used, 0);

	return offset;
}

static int
frsrpc_dissect_element_CommPktDataExtensionRetryTimeout_first_try_time(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_frsrpc_frsrpc_CommPktDataExtensionRetryTimeout_first_try_time);

	return offset;
}

int
frsrpc_dissect_struct_CommPktDataExtensionRetryTimeout(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_4_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_frsrpc_frsrpc_CommPktDataExtensionRetryTimeout);
	}

	offset = frsrpc_dissect_element_CommPktDataExtensionRetryTimeout_prefix_size(tvb, offset, pinfo, tree, di, drep);

	offset = frsrpc_dissect_element_CommPktDataExtensionRetryTimeout_prefix_type(tvb, offset, pinfo, tree, di, drep);

	offset = frsrpc_dissect_element_CommPktDataExtensionRetryTimeout_count(tvb, offset, pinfo, tree, di, drep);

	offset = frsrpc_dissect_element_CommPktDataExtensionRetryTimeout_not_used(tvb, offset, pinfo, tree, di, drep);

	offset = frsrpc_dissect_element_CommPktDataExtensionRetryTimeout_first_try_time(tvb, offset, pinfo, tree, di, drep);


	proto_item_set_len(item, offset-old_offset);


	if (di->call_data->flags & DCERPC_IS_NDR64) {
		ALIGN_TO_4_BYTES;
	}

	return offset;
}


/* IDL: enum { */
/* IDL: 	FRSRPC_CO_RECORD_EXTENSION_VERSION_WIN2K=0x0000, */
/* IDL: 	FRSRPC_CO_RECORD_EXTENSION_VERSION_1=0x0001, */
/* IDL: } */

int
frsrpc_dissect_enum_CommPktCoRecordExtensionMajor(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint1632 *param _U_)
{
	guint1632 parameter=0;
	if (param) {
		parameter = *param;
	}
	offset = dissect_ndr_uint1632(tvb, offset, pinfo, tree, di, drep, hf_index, &parameter);
	if (param) {
		*param = parameter;
	}
	return offset;
}


/* IDL: struct { */
/* IDL: 	[value(0x00000028)] uint32 field_size; */
/* IDL: 	[value(FRSRPC_CO_RECORD_EXTENSION_VERSION_WIN2K)] frsrpc_CommPktCoRecordExtensionMajor major; */
/* IDL: 	[value(0x0001)] uint16 offset_count; */
/* IDL: 	[value(0x00000010)] uint32 offset; */
/* IDL: 	[value(0)] uint32 offset_last; */
/* IDL: 	frsrpc_CommPktDataExtensionChecksum data_checksum; */
/* IDL: } */

static int
frsrpc_dissect_element_CommPktCoRecordExtensionWin2k_field_size(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_frsrpc_frsrpc_CommPktCoRecordExtensionWin2k_field_size, 0);

	return offset;
}

static int
frsrpc_dissect_element_CommPktCoRecordExtensionWin2k_major(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = frsrpc_dissect_enum_CommPktCoRecordExtensionMajor(tvb, offset, pinfo, tree, di, drep, hf_frsrpc_frsrpc_CommPktCoRecordExtensionWin2k_major, 0);

	return offset;
}

static int
frsrpc_dissect_element_CommPktCoRecordExtensionWin2k_offset_count(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_uint16(tvb, offset, pinfo, tree, di, drep, hf_frsrpc_frsrpc_CommPktCoRecordExtensionWin2k_offset_count, 0);

	return offset;
}

static int
frsrpc_dissect_element_CommPktCoRecordExtensionWin2k_offset(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_frsrpc_frsrpc_CommPktCoRecordExtensionWin2k_offset, 0);

	return offset;
}

static int
frsrpc_dissect_element_CommPktCoRecordExtensionWin2k_offset_last(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_frsrpc_frsrpc_CommPktCoRecordExtensionWin2k_offset_last, 0);

	return offset;
}

static int
frsrpc_dissect_element_CommPktCoRecordExtensionWin2k_data_checksum(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = frsrpc_dissect_struct_CommPktDataExtensionChecksum(tvb,offset,pinfo,tree,di,drep,hf_frsrpc_frsrpc_CommPktCoRecordExtensionWin2k_data_checksum,0);

	return offset;
}

int
frsrpc_dissect_struct_CommPktCoRecordExtensionWin2k(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_4_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_frsrpc_frsrpc_CommPktCoRecordExtensionWin2k);
	}

	offset = frsrpc_dissect_element_CommPktCoRecordExtensionWin2k_field_size(tvb, offset, pinfo, tree, di, drep);

	offset = frsrpc_dissect_element_CommPktCoRecordExtensionWin2k_major(tvb, offset, pinfo, tree, di, drep);

	offset = frsrpc_dissect_element_CommPktCoRecordExtensionWin2k_offset_count(tvb, offset, pinfo, tree, di, drep);

	offset = frsrpc_dissect_element_CommPktCoRecordExtensionWin2k_offset(tvb, offset, pinfo, tree, di, drep);

	offset = frsrpc_dissect_element_CommPktCoRecordExtensionWin2k_offset_last(tvb, offset, pinfo, tree, di, drep);

	offset = frsrpc_dissect_element_CommPktCoRecordExtensionWin2k_data_checksum(tvb, offset, pinfo, tree, di, drep);


	proto_item_set_len(item, offset-old_offset);


	if (di->call_data->flags & DCERPC_IS_NDR64) {
		ALIGN_TO_4_BYTES;
	}

	return offset;
}


/* IDL: struct { */
/* IDL: 	[value(0x00000048)] uint32 field_size; */
/* IDL: 	frsrpc_CommPktCoRecordExtensionMajor major; */
/* IDL: 	[value(0x0002)] uint16 offset_count; */
/* IDL: 	[value(0x00000018)] uint32 offset0; */
/* IDL: 	[value(0x00000030)] uint32 offset1; */
/* IDL: 	[value(0)] uint32 offset_last; */
/* IDL: 	[value(0)] uint32 not_used; */
/* IDL: 	frsrpc_CommPktDataExtensionChecksum data_checksum; */
/* IDL: 	frsrpc_CommPktDataExtensionRetryTimeout data_retry_timeout; */
/* IDL: } */

static int
frsrpc_dissect_element_CommPktChangeOrderRecordExtension_field_size(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_frsrpc_frsrpc_CommPktChangeOrderRecordExtension_field_size, 0);

	return offset;
}

static int
frsrpc_dissect_element_CommPktChangeOrderRecordExtension_major(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = frsrpc_dissect_enum_CommPktCoRecordExtensionMajor(tvb, offset, pinfo, tree, di, drep, hf_frsrpc_frsrpc_CommPktChangeOrderRecordExtension_major, 0);

	return offset;
}

static int
frsrpc_dissect_element_CommPktChangeOrderRecordExtension_offset_count(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_uint16(tvb, offset, pinfo, tree, di, drep, hf_frsrpc_frsrpc_CommPktChangeOrderRecordExtension_offset_count, 0);

	return offset;
}

static int
frsrpc_dissect_element_CommPktChangeOrderRecordExtension_offset0(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_frsrpc_frsrpc_CommPktChangeOrderRecordExtension_offset0, 0);

	return offset;
}

static int
frsrpc_dissect_element_CommPktChangeOrderRecordExtension_offset1(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_frsrpc_frsrpc_CommPktChangeOrderRecordExtension_offset1, 0);

	return offset;
}

static int
frsrpc_dissect_element_CommPktChangeOrderRecordExtension_offset_last(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_frsrpc_frsrpc_CommPktChangeOrderRecordExtension_offset_last, 0);

	return offset;
}

static int
frsrpc_dissect_element_CommPktChangeOrderRecordExtension_not_used(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_frsrpc_frsrpc_CommPktChangeOrderRecordExtension_not_used, 0);

	return offset;
}

static int
frsrpc_dissect_element_CommPktChangeOrderRecordExtension_data_checksum(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = frsrpc_dissect_struct_CommPktDataExtensionChecksum(tvb,offset,pinfo,tree,di,drep,hf_frsrpc_frsrpc_CommPktChangeOrderRecordExtension_data_checksum,0);

	return offset;
}

static int
frsrpc_dissect_element_CommPktChangeOrderRecordExtension_data_retry_timeout(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = frsrpc_dissect_struct_CommPktDataExtensionRetryTimeout(tvb,offset,pinfo,tree,di,drep,hf_frsrpc_frsrpc_CommPktChangeOrderRecordExtension_data_retry_timeout,0);

	return offset;
}

int
frsrpc_dissect_struct_CommPktChangeOrderRecordExtension(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_4_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_frsrpc_frsrpc_CommPktChangeOrderRecordExtension);
	}

	offset = frsrpc_dissect_element_CommPktChangeOrderRecordExtension_field_size(tvb, offset, pinfo, tree, di, drep);

	offset = frsrpc_dissect_element_CommPktChangeOrderRecordExtension_major(tvb, offset, pinfo, tree, di, drep);

	offset = frsrpc_dissect_element_CommPktChangeOrderRecordExtension_offset_count(tvb, offset, pinfo, tree, di, drep);

	offset = frsrpc_dissect_element_CommPktChangeOrderRecordExtension_offset0(tvb, offset, pinfo, tree, di, drep);

	offset = frsrpc_dissect_element_CommPktChangeOrderRecordExtension_offset1(tvb, offset, pinfo, tree, di, drep);

	offset = frsrpc_dissect_element_CommPktChangeOrderRecordExtension_offset_last(tvb, offset, pinfo, tree, di, drep);

	offset = frsrpc_dissect_element_CommPktChangeOrderRecordExtension_not_used(tvb, offset, pinfo, tree, di, drep);

	offset = frsrpc_dissect_element_CommPktChangeOrderRecordExtension_data_checksum(tvb, offset, pinfo, tree, di, drep);

	offset = frsrpc_dissect_element_CommPktChangeOrderRecordExtension_data_retry_timeout(tvb, offset, pinfo, tree, di, drep);


	proto_item_set_len(item, offset-old_offset);


	if (di->call_data->flags & DCERPC_IS_NDR64) {
		ALIGN_TO_4_BYTES;
	}

	return offset;
}


/* IDL: enum { */
/* IDL: 	FRSRPC_COMMAND_REMOTE_CO=0x00000218, */
/* IDL: 	FRSRPC_COMMAND_RECEIVING_STATE=0x00000238, */
/* IDL: 	FRSRPC_COMMAND_REMOTE_CO_DONE=0x00000250, */
/* IDL: 	FRSRPC_COMMAND_ABORT_FETCH=0x00000246, */
/* IDL: 	FRSRPC_COMMAND_RETRY_FETCH=0x00000244, */
/* IDL: 	FRSRPC_COMMAND_NEED_JOIN=0x00000121, */
/* IDL: 	FRSRPC_COMMAND_START_JOIN=0x00000122, */
/* IDL: 	FRSRPC_COMMAND_JOINING=0x00000130, */
/* IDL: 	FRSRPC_COMMAND_JOINED=0x00000128, */
/* IDL: 	FRSRPC_COMMAND_UNJOIN_REMOTE=0x00000148, */
/* IDL: 	FRSRPC_COMMAND_WJOIN_DONE=0x00000136, */
/* IDL: 	FRSRPC_COMMAND_SEND_STAGE=0x00000228, */
/* IDL: } */


/* IDL: enum { */
/* IDL: 	FRSRPC_COMM_PKT_CHUNK_BOP=0x0001, */
/* IDL: 	FRSRPC_COMM_PKT_CHUNK_COMMAND=0x0002, */
/* IDL: 	FRSRPC_COMM_PKT_CHUNK_TO=0x0003, */
/* IDL: 	FRSRPC_COMM_PKT_CHUNK_FROM=0x0004, */
/* IDL: 	FRSRPC_COMM_PKT_CHUNK_REPLICA=0x0005, */
/* IDL: 	FRSRPC_COMM_PKT_CHUNK_CONNECTION=0x0008, */
/* IDL: 	FRSRPC_COMM_PKT_CHUNK_JOIN_GUID=0x0006, */
/* IDL: 	FRSRPC_COMM_PKT_CHUNK_LAST_JOIN_TIME=0x0012, */
/* IDL: 	FRSRPC_COMM_PKT_CHUNK_VVECTOR=0x0007, */
/* IDL: 	FRSRPC_COMM_PKT_CHUNK_JOIN_TIME=0x0011, */
/* IDL: 	FRSRPC_COMM_PKT_CHUNK_REPLICA_VERSION_GUID=0x0014, */
/* IDL: 	FRSRPC_COMM_PKT_CHUNK_COMPRESSION_GUID=0x0018, */
/* IDL: 	FRSRPC_COMM_PKT_CHUNK_BLOCK=0x0009, */
/* IDL: 	FRSRPC_COMM_PKT_CHUNK_BLOCK_SIZE=0x000A, */
/* IDL: 	FRSRPC_COMM_PKT_CHUNK_FILE_SIZE=0x000B, */
/* IDL: 	FRSRPC_COMM_PKT_CHUNK_FILE_OFFSET=0x000C, */
/* IDL: 	FRSRPC_COMM_PKT_CHUNK_GVSN=0x000E, */
/* IDL: 	FRSRPC_COMM_PKT_CHUNK_CO_GUID=0x000F, */
/* IDL: 	FRSRPC_COMM_PKT_CHUNK_CO_SEQUENCE_NUMBER=0x0010, */
/* IDL: 	FRSRPC_COMM_PKT_CHUNK_REMOTE_CO=0x000D, */
/* IDL: 	FRSRPC_COMM_PKT_CHUNK_CO_EXT_WIN2K=0x0016, */
/* IDL: 	FRSRPC_COMM_PKT_CHUNK_CO_EXTENTION_2=0x0017, */
/* IDL: 	FRSRPC_COMM_PKT_CHUNK_EOP=0x0013, */
/* IDL: } */

int
frsrpc_dissect_enum_CommPktChunkType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint1632 *param _U_)
{
	guint1632 parameter=0;
	if (param) {
		parameter = *param;
	}
	offset = dissect_ndr_uint1632(tvb, offset, pinfo, tree, di, drep, hf_index, &parameter);
	if (param) {
		*param = parameter;
	}
	return offset;
}


/* IDL: [nodiscriminant(1)] union { */
/* IDL: [default] ; */
/* IDL: [case(FRSRPC_COMM_PKT_CHUNK_BOP)] [case(FRSRPC_COMM_PKT_CHUNK_BOP)] [value(0)] uint32 bop; */
/* IDL: [case(FRSRPC_COMM_PKT_CHUNK_COMMAND)] [case(FRSRPC_COMM_PKT_CHUNK_COMMAND)] frsrpc_CommPktCommand command; */
/* IDL: [case(FRSRPC_COMM_PKT_CHUNK_TO)] [case(FRSRPC_COMM_PKT_CHUNK_TO)] frsrpc_CommPktChunkGuidName to; */
/* IDL: [case(FRSRPC_COMM_PKT_CHUNK_FROM)] [case(FRSRPC_COMM_PKT_CHUNK_FROM)] frsrpc_CommPktChunkGuidName from; */
/* IDL: [case(FRSRPC_COMM_PKT_CHUNK_REPLICA)] [case(FRSRPC_COMM_PKT_CHUNK_REPLICA)] frsrpc_CommPktChunkGuidName replica; */
/* IDL: [case(FRSRPC_COMM_PKT_CHUNK_CONNECTION)] [case(FRSRPC_COMM_PKT_CHUNK_CONNECTION)] frsrpc_CommPktChunkGuidName connection; */
/* IDL: [case(FRSRPC_COMM_PKT_CHUNK_JOIN_GUID)] [case(FRSRPC_COMM_PKT_CHUNK_JOIN_GUID)] [subcontext(4)] GUID join_guid; */
/* IDL: [case(FRSRPC_COMM_PKT_CHUNK_LAST_JOIN_TIME)] [case(FRSRPC_COMM_PKT_CHUNK_LAST_JOIN_TIME)] NTTIME last_join_time; */
/* IDL: [case(FRSRPC_COMM_PKT_CHUNK_VVECTOR)] [case(FRSRPC_COMM_PKT_CHUNK_VVECTOR)] [subcontext(4)] frsrpc_CommPktGSVN vvector; */
/* IDL: [case(FRSRPC_COMM_PKT_CHUNK_JOIN_TIME)] [case(FRSRPC_COMM_PKT_CHUNK_JOIN_TIME)] [subcontext(4)] NTTIME join_time; */
/* IDL: [case(FRSRPC_COMM_PKT_CHUNK_REPLICA_VERSION_GUID)] [case(FRSRPC_COMM_PKT_CHUNK_REPLICA_VERSION_GUID)] [subcontext(4)] GUID replica_version_guid; */
/* IDL: [case(FRSRPC_COMM_PKT_CHUNK_COMPRESSION_GUID)] [case(FRSRPC_COMM_PKT_CHUNK_COMPRESSION_GUID)] GUID compression_guid; */
/* IDL: [case(FRSRPC_COMM_PKT_CHUNK_BLOCK)] [case(FRSRPC_COMM_PKT_CHUNK_BLOCK)] [flag(LIBNDR_FLAG_REMAINING)] DATA_BLOB block; */
/* IDL: [case(FRSRPC_COMM_PKT_CHUNK_BLOCK_SIZE)] [case(FRSRPC_COMM_PKT_CHUNK_BLOCK_SIZE)] hyper block_size; */
/* IDL: [case(FRSRPC_COMM_PKT_CHUNK_FILE_SIZE)] [case(FRSRPC_COMM_PKT_CHUNK_FILE_SIZE)] hyper file_size; */
/* IDL: [case(FRSRPC_COMM_PKT_CHUNK_FILE_OFFSET)] [case(FRSRPC_COMM_PKT_CHUNK_FILE_OFFSET)] hyper file_offset; */
/* IDL: [case(FRSRPC_COMM_PKT_CHUNK_GVSN)] [case(FRSRPC_COMM_PKT_CHUNK_GVSN)] [subcontext(4)] frsrpc_CommPktGSVN gvsn; */
/* IDL: [case(FRSRPC_COMM_PKT_CHUNK_CO_GUID)] [case(FRSRPC_COMM_PKT_CHUNK_CO_GUID)] [subcontext(4)] GUID co_guid; */
/* IDL: [case(FRSRPC_COMM_PKT_CHUNK_CO_SEQUENCE_NUMBER)] [case(FRSRPC_COMM_PKT_CHUNK_CO_SEQUENCE_NUMBER)] uint32 co_sequnence_number; */
/* IDL: [case(FRSRPC_COMM_PKT_CHUNK_REMOTE_CO)] [case(FRSRPC_COMM_PKT_CHUNK_REMOTE_CO)] [subcontext(4)] frsrpc_CommPktChangeOrderCommand remote_co; */
/* IDL: [case(FRSRPC_COMM_PKT_CHUNK_CO_EXT_WIN2K)] [case(FRSRPC_COMM_PKT_CHUNK_CO_EXT_WIN2K)] [subcontext(4)] frsrpc_CommPktCoRecordExtensionWin2k co_ext_win2k; */
/* IDL: [case(FRSRPC_COMM_PKT_CHUNK_CO_EXTENTION_2)] [case(FRSRPC_COMM_PKT_CHUNK_CO_EXTENTION_2)] frsrpc_CommPktChangeOrderRecordExtension co_extension2; */
/* IDL: [case(FRSRPC_COMM_PKT_CHUNK_EOP)] [case(FRSRPC_COMM_PKT_CHUNK_EOP)] [value(0xFFFFFFFF)] uint32 bopend; */
/* IDL: } */

static int
frsrpc_dissect_element_CommPktChunkData_blob(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_datablob(tvb, offset, pinfo, tree, di, drep, hf_frsrpc_frsrpc_CommPktChunkData_blob, 1);

	return offset;
}

static int
frsrpc_dissect_element_CommPktChunkData_bop(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_frsrpc_frsrpc_CommPktChunkData_bop, 0);

	return offset;
}

static int
frsrpc_dissect_element_CommPktChunkData_command(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = frsrpc_dissect_enum_CommPktCommand(tvb, offset, pinfo, tree, di, drep, hf_frsrpc_frsrpc_CommPktChunkData_command, 0);

	return offset;
}

static int
frsrpc_dissect_element_CommPktChunkData_to(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = frsrpc_dissect_struct_CommPktChunkGuidName(tvb,offset,pinfo,tree,di,drep,hf_frsrpc_frsrpc_CommPktChunkData_to,0);

	return offset;
}

static int
frsrpc_dissect_element_CommPktChunkData_from(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = frsrpc_dissect_struct_CommPktChunkGuidName(tvb,offset,pinfo,tree,di,drep,hf_frsrpc_frsrpc_CommPktChunkData_from,0);

	return offset;
}

static int
frsrpc_dissect_element_CommPktChunkData_replica(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = frsrpc_dissect_struct_CommPktChunkGuidName(tvb,offset,pinfo,tree,di,drep,hf_frsrpc_frsrpc_CommPktChunkData_replica,0);

	return offset;
}

static int
frsrpc_dissect_element_CommPktChunkData_connection(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = frsrpc_dissect_struct_CommPktChunkGuidName(tvb,offset,pinfo,tree,di,drep,hf_frsrpc_frsrpc_CommPktChunkData_connection,0);

	return offset;
}

static int
frsrpc_dissect_element_CommPktChunkData_join_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	guint3264 size;
	int conformant = di->conformant_run;
	tvbuff_t *subtvb;

	if (!conformant) {
		guint32 saved_flags = di->call_data->flags;
		offset = dissect_ndr_uint3264(tvb, offset, pinfo, tree, di, drep, hf_frsrpc_frsrpc_CommPktChunkData_join_guid_, &size);
		di->call_data->flags &= ~DCERPC_IS_NDR64;
		subtvb = tvb_new_subset_length_caplen(tvb, offset, (const gint)size, -1);
		frsrpc_dissect_element_CommPktChunkData_join_guid_(subtvb, 0, pinfo, tree, di, drep);
		offset += (int)size;
		di->call_data->flags = saved_flags;
	}

	return offset;
}

static int
frsrpc_dissect_element_CommPktChunkData_join_guid_(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_frsrpc_frsrpc_CommPktChunkData_join_guid, NULL);

	return offset;
}

static int
frsrpc_dissect_element_CommPktChunkData_last_join_time(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_frsrpc_frsrpc_CommPktChunkData_last_join_time);

	return offset;
}

static int
frsrpc_dissect_element_CommPktChunkData_vvector(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	guint3264 size;
	int conformant = di->conformant_run;
	tvbuff_t *subtvb;

	if (!conformant) {
		guint32 saved_flags = di->call_data->flags;
		offset = dissect_ndr_uint3264(tvb, offset, pinfo, tree, di, drep, hf_frsrpc_frsrpc_CommPktChunkData_vvector_, &size);
		di->call_data->flags &= ~DCERPC_IS_NDR64;
		subtvb = tvb_new_subset_length_caplen(tvb, offset, (const gint)size, -1);
		frsrpc_dissect_element_CommPktChunkData_vvector_(subtvb, 0, pinfo, tree, di, drep);
		offset += (int)size;
		di->call_data->flags = saved_flags;
	}

	return offset;
}

static int
frsrpc_dissect_element_CommPktChunkData_vvector_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = frsrpc_dissect_struct_CommPktGSVN(tvb,offset,pinfo,tree,di,drep,hf_frsrpc_frsrpc_CommPktChunkData_vvector,0);

	return offset;
}

static int
frsrpc_dissect_element_CommPktChunkData_join_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	guint3264 size;
	int conformant = di->conformant_run;
	tvbuff_t *subtvb;

	if (!conformant) {
		guint32 saved_flags = di->call_data->flags;
		offset = dissect_ndr_uint3264(tvb, offset, pinfo, tree, di, drep, hf_frsrpc_frsrpc_CommPktChunkData_join_time_, &size);
		di->call_data->flags &= ~DCERPC_IS_NDR64;
		subtvb = tvb_new_subset_length_caplen(tvb, offset, (const gint)size, -1);
		frsrpc_dissect_element_CommPktChunkData_join_time_(subtvb, 0, pinfo, tree, di, drep);
		offset += (int)size;
		di->call_data->flags = saved_flags;
	}

	return offset;
}

static int
frsrpc_dissect_element_CommPktChunkData_join_time_(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_frsrpc_frsrpc_CommPktChunkData_join_time);

	return offset;
}

static int
frsrpc_dissect_element_CommPktChunkData_replica_version_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	guint3264 size;
	int conformant = di->conformant_run;
	tvbuff_t *subtvb;

	if (!conformant) {
		guint32 saved_flags = di->call_data->flags;
		offset = dissect_ndr_uint3264(tvb, offset, pinfo, tree, di, drep, hf_frsrpc_frsrpc_CommPktChunkData_replica_version_guid_, &size);
		di->call_data->flags &= ~DCERPC_IS_NDR64;
		subtvb = tvb_new_subset_length_caplen(tvb, offset, (const gint)size, -1);
		frsrpc_dissect_element_CommPktChunkData_replica_version_guid_(subtvb, 0, pinfo, tree, di, drep);
		offset += (int)size;
		di->call_data->flags = saved_flags;
	}

	return offset;
}

static int
frsrpc_dissect_element_CommPktChunkData_replica_version_guid_(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_frsrpc_frsrpc_CommPktChunkData_replica_version_guid, NULL);

	return offset;
}

static int
frsrpc_dissect_element_CommPktChunkData_compression_guid(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_frsrpc_frsrpc_CommPktChunkData_compression_guid, NULL);

	return offset;
}

static int
frsrpc_dissect_element_CommPktChunkData_block(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_datablob(tvb, offset, pinfo, tree, di, drep, hf_frsrpc_frsrpc_CommPktChunkData_block, 1);

	return offset;
}

static int
frsrpc_dissect_element_CommPktChunkData_block_size(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_uint64(tvb, offset, pinfo, tree, di, drep, hf_frsrpc_frsrpc_CommPktChunkData_block_size, NULL);

	return offset;
}

static int
frsrpc_dissect_element_CommPktChunkData_file_size(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_uint64(tvb, offset, pinfo, tree, di, drep, hf_frsrpc_frsrpc_CommPktChunkData_file_size, NULL);

	return offset;
}

static int
frsrpc_dissect_element_CommPktChunkData_file_offset(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_uint64(tvb, offset, pinfo, tree, di, drep, hf_frsrpc_frsrpc_CommPktChunkData_file_offset, NULL);

	return offset;
}

static int
frsrpc_dissect_element_CommPktChunkData_gvsn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	guint3264 size;
	int conformant = di->conformant_run;
	tvbuff_t *subtvb;

	if (!conformant) {
		guint32 saved_flags = di->call_data->flags;
		offset = dissect_ndr_uint3264(tvb, offset, pinfo, tree, di, drep, hf_frsrpc_frsrpc_CommPktChunkData_gvsn_, &size);
		di->call_data->flags &= ~DCERPC_IS_NDR64;
		subtvb = tvb_new_subset_length_caplen(tvb, offset, (const gint)size, -1);
		frsrpc_dissect_element_CommPktChunkData_gvsn_(subtvb, 0, pinfo, tree, di, drep);
		offset += (int)size;
		di->call_data->flags = saved_flags;
	}

	return offset;
}

static int
frsrpc_dissect_element_CommPktChunkData_gvsn_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = frsrpc_dissect_struct_CommPktGSVN(tvb,offset,pinfo,tree,di,drep,hf_frsrpc_frsrpc_CommPktChunkData_gvsn,0);

	return offset;
}

static int
frsrpc_dissect_element_CommPktChunkData_co_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	guint3264 size;
	int conformant = di->conformant_run;
	tvbuff_t *subtvb;

	if (!conformant) {
		guint32 saved_flags = di->call_data->flags;
		offset = dissect_ndr_uint3264(tvb, offset, pinfo, tree, di, drep, hf_frsrpc_frsrpc_CommPktChunkData_co_guid_, &size);
		di->call_data->flags &= ~DCERPC_IS_NDR64;
		subtvb = tvb_new_subset_length_caplen(tvb, offset, (const gint)size, -1);
		frsrpc_dissect_element_CommPktChunkData_co_guid_(subtvb, 0, pinfo, tree, di, drep);
		offset += (int)size;
		di->call_data->flags = saved_flags;
	}

	return offset;
}

static int
frsrpc_dissect_element_CommPktChunkData_co_guid_(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_frsrpc_frsrpc_CommPktChunkData_co_guid, NULL);

	return offset;
}

static int
frsrpc_dissect_element_CommPktChunkData_co_sequnence_number(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_frsrpc_frsrpc_CommPktChunkData_co_sequnence_number, 0);

	return offset;
}

static int
frsrpc_dissect_element_CommPktChunkData_remote_co(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	guint3264 size;
	int conformant = di->conformant_run;
	tvbuff_t *subtvb;

	if (!conformant) {
		guint32 saved_flags = di->call_data->flags;
		offset = dissect_ndr_uint3264(tvb, offset, pinfo, tree, di, drep, hf_frsrpc_frsrpc_CommPktChunkData_remote_co_, &size);
		di->call_data->flags &= ~DCERPC_IS_NDR64;
		subtvb = tvb_new_subset_length_caplen(tvb, offset, (const gint)size, -1);
		frsrpc_dissect_element_CommPktChunkData_remote_co_(subtvb, 0, pinfo, tree, di, drep);
		offset += (int)size;
		di->call_data->flags = saved_flags;
	}

	return offset;
}

static int
frsrpc_dissect_element_CommPktChunkData_remote_co_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = frsrpc_dissect_struct_CommPktChangeOrderCommand(tvb,offset,pinfo,tree,di,drep,hf_frsrpc_frsrpc_CommPktChunkData_remote_co,0);

	return offset;
}

static int
frsrpc_dissect_element_CommPktChunkData_co_ext_win2k(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	guint3264 size;
	int conformant = di->conformant_run;
	tvbuff_t *subtvb;

	if (!conformant) {
		guint32 saved_flags = di->call_data->flags;
		offset = dissect_ndr_uint3264(tvb, offset, pinfo, tree, di, drep, hf_frsrpc_frsrpc_CommPktChunkData_co_ext_win2k_, &size);
		di->call_data->flags &= ~DCERPC_IS_NDR64;
		subtvb = tvb_new_subset_length_caplen(tvb, offset, (const gint)size, -1);
		frsrpc_dissect_element_CommPktChunkData_co_ext_win2k_(subtvb, 0, pinfo, tree, di, drep);
		offset += (int)size;
		di->call_data->flags = saved_flags;
	}

	return offset;
}

static int
frsrpc_dissect_element_CommPktChunkData_co_ext_win2k_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = frsrpc_dissect_struct_CommPktCoRecordExtensionWin2k(tvb,offset,pinfo,tree,di,drep,hf_frsrpc_frsrpc_CommPktChunkData_co_ext_win2k,0);

	return offset;
}

static int
frsrpc_dissect_element_CommPktChunkData_co_extension2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = frsrpc_dissect_struct_CommPktChangeOrderRecordExtension(tvb,offset,pinfo,tree,di,drep,hf_frsrpc_frsrpc_CommPktChunkData_co_extension2,0);

	return offset;
}

static int
frsrpc_dissect_element_CommPktChunkData_bopend(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_frsrpc_frsrpc_CommPktChunkData_bopend, 0);

	return offset;
}

static int
frsrpc_dissect_CommPktChunkData(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 = param;

	old_offset = offset;
	if (parent_tree) {
		tree = proto_tree_add_subtree(parent_tree, tvb, offset, -1, ett_frsrpc_frsrpc_CommPktChunkData, &item, "frsrpc_CommPktChunkData");
	}

	switch(level) {
		default:
			offset = frsrpc_dissect_element_CommPktChunkData_blob(tvb, offset, pinfo, tree, di, drep);
		break;

		case FRSRPC_COMM_PKT_CHUNK_BOP:
			offset = frsrpc_dissect_element_CommPktChunkData_bop(tvb, offset, pinfo, tree, di, drep);
		break;

		case FRSRPC_COMM_PKT_CHUNK_COMMAND:
			offset = frsrpc_dissect_element_CommPktChunkData_command(tvb, offset, pinfo, tree, di, drep);
		break;

		case FRSRPC_COMM_PKT_CHUNK_TO:
			offset = frsrpc_dissect_element_CommPktChunkData_to(tvb, offset, pinfo, tree, di, drep);
		break;

		case FRSRPC_COMM_PKT_CHUNK_FROM:
			offset = frsrpc_dissect_element_CommPktChunkData_from(tvb, offset, pinfo, tree, di, drep);
		break;

		case FRSRPC_COMM_PKT_CHUNK_REPLICA:
			offset = frsrpc_dissect_element_CommPktChunkData_replica(tvb, offset, pinfo, tree, di, drep);
		break;

		case FRSRPC_COMM_PKT_CHUNK_CONNECTION:
			offset = frsrpc_dissect_element_CommPktChunkData_connection(tvb, offset, pinfo, tree, di, drep);
		break;

		case FRSRPC_COMM_PKT_CHUNK_JOIN_GUID:
			offset = frsrpc_dissect_element_CommPktChunkData_join_guid(tvb, offset, pinfo, tree, di, drep);
		break;

		case FRSRPC_COMM_PKT_CHUNK_LAST_JOIN_TIME:
			offset = frsrpc_dissect_element_CommPktChunkData_last_join_time(tvb, offset, pinfo, tree, di, drep);
		break;

		case FRSRPC_COMM_PKT_CHUNK_VVECTOR:
			offset = frsrpc_dissect_element_CommPktChunkData_vvector(tvb, offset, pinfo, tree, di, drep);
		break;

		case FRSRPC_COMM_PKT_CHUNK_JOIN_TIME:
			offset = frsrpc_dissect_element_CommPktChunkData_join_time(tvb, offset, pinfo, tree, di, drep);
		break;

		case FRSRPC_COMM_PKT_CHUNK_REPLICA_VERSION_GUID:
			offset = frsrpc_dissect_element_CommPktChunkData_replica_version_guid(tvb, offset, pinfo, tree, di, drep);
		break;

		case FRSRPC_COMM_PKT_CHUNK_COMPRESSION_GUID:
			offset = frsrpc_dissect_element_CommPktChunkData_compression_guid(tvb, offset, pinfo, tree, di, drep);
		break;

		case FRSRPC_COMM_PKT_CHUNK_BLOCK:
			offset = frsrpc_dissect_element_CommPktChunkData_block(tvb, offset, pinfo, tree, di, drep);
		break;

		case FRSRPC_COMM_PKT_CHUNK_BLOCK_SIZE:
			offset = frsrpc_dissect_element_CommPktChunkData_block_size(tvb, offset, pinfo, tree, di, drep);
		break;

		case FRSRPC_COMM_PKT_CHUNK_FILE_SIZE:
			offset = frsrpc_dissect_element_CommPktChunkData_file_size(tvb, offset, pinfo, tree, di, drep);
		break;

		case FRSRPC_COMM_PKT_CHUNK_FILE_OFFSET:
			offset = frsrpc_dissect_element_CommPktChunkData_file_offset(tvb, offset, pinfo, tree, di, drep);
		break;

		case FRSRPC_COMM_PKT_CHUNK_GVSN:
			offset = frsrpc_dissect_element_CommPktChunkData_gvsn(tvb, offset, pinfo, tree, di, drep);
		break;

		case FRSRPC_COMM_PKT_CHUNK_CO_GUID:
			offset = frsrpc_dissect_element_CommPktChunkData_co_guid(tvb, offset, pinfo, tree, di, drep);
		break;

		case FRSRPC_COMM_PKT_CHUNK_CO_SEQUENCE_NUMBER:
			offset = frsrpc_dissect_element_CommPktChunkData_co_sequnence_number(tvb, offset, pinfo, tree, di, drep);
		break;

		case FRSRPC_COMM_PKT_CHUNK_REMOTE_CO:
			offset = frsrpc_dissect_element_CommPktChunkData_remote_co(tvb, offset, pinfo, tree, di, drep);
		break;

		case FRSRPC_COMM_PKT_CHUNK_CO_EXT_WIN2K:
			offset = frsrpc_dissect_element_CommPktChunkData_co_ext_win2k(tvb, offset, pinfo, tree, di, drep);
		break;

		case FRSRPC_COMM_PKT_CHUNK_CO_EXTENTION_2:
			offset = frsrpc_dissect_element_CommPktChunkData_co_extension2(tvb, offset, pinfo, tree, di, drep);
		break;

		case FRSRPC_COMM_PKT_CHUNK_EOP:
			offset = frsrpc_dissect_element_CommPktChunkData_bopend(tvb, offset, pinfo, tree, di, drep);
		break;
	}
	proto_item_set_len(item, offset-old_offset);


	return offset;
}

/* IDL: struct { */
/* IDL: 	frsrpc_CommPktChunkType type; */
/* IDL: 	[subcontext(4)] [switch_is(type)] frsrpc_CommPktChunkData data; */
/* IDL: } */

static int
frsrpc_dissect_element_CommPktChunk_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, guint1632 *type)
{
	offset = frsrpc_dissect_enum_CommPktChunkType(tvb, offset, pinfo, tree, di, drep, hf_frsrpc_frsrpc_CommPktChunk_type, type);

	return offset;
}

static int
frsrpc_dissect_element_CommPktChunk_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, guint1632 *type)
{
	guint3264 size;
	int conformant = di->conformant_run;
	tvbuff_t *subtvb;

	if (!conformant) {
		guint32 saved_flags = di->call_data->flags;
		offset = dissect_ndr_uint3264(tvb, offset, pinfo, tree, di, drep, hf_frsrpc_frsrpc_CommPktChunk_data_, &size);
		di->call_data->flags &= ~DCERPC_IS_NDR64;
		subtvb = tvb_new_subset_length_caplen(tvb, offset, (const gint)size, -1);
		frsrpc_dissect_element_CommPktChunk_data_(subtvb, 0, pinfo, tree, di, drep, type);
		offset += (int)size;
		di->call_data->flags = saved_flags;
	}

	return offset;
}

static int
frsrpc_dissect_element_CommPktChunk_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, guint1632 *type)
{
	offset = frsrpc_dissect_CommPktChunkData(tvb, offset, pinfo, tree, di, drep, hf_frsrpc_frsrpc_CommPktChunk_data, *type);

	return offset;
}


/* IDL: struct { */
/* IDL: 	uint32 num_chunks; */
/* IDL: 	frsrpc_CommPktChunk chunks[num_chunks]; */
/* IDL: } */


/* IDL: enum { */
/* IDL: 	FRSRPC_COMM_PKT_MAJOR_0=0x00000000, */
/* IDL: } */

int
frsrpc_dissect_enum_CommPktMajor(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
{
	guint32 parameter=0;
	if (param) {
		parameter = *param;
	}
	offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_index, &parameter);
	if (param) {
		*param = parameter;
	}
	return offset;
}


/* IDL: enum { */
/* IDL: 	FRSRPC_COMM_PKT_MINOR_0=0x00000000, */
/* IDL: 	FRSRPC_COMM_PKT_MINOR_1=0x00000001, */
/* IDL: 	FRSRPC_COMM_PKT_MINOR_2=0x00000002, */
/* IDL: 	FRSRPC_COMM_PKT_MINOR_3=0x00000003, */
/* IDL: 	FRSRPC_COMM_PKT_MINOR_4=0x00000004, */
/* IDL: 	FRSRPC_COMM_PKT_MINOR_5=0x00000005, */
/* IDL: 	FRSRPC_COMM_PKT_MINOR_6=0x00000006, */
/* IDL: 	FRSRPC_COMM_PKT_MINOR_7=0x00000007, */
/* IDL: 	FRSRPC_COMM_PKT_MINOR_8=0x00000008, */
/* IDL: 	FRSRPC_COMM_PKT_MINOR_9=0x00000009, */
/* IDL: } */

int
frsrpc_dissect_enum_CommPktMinor(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
{
	guint32 parameter=0;
	if (param) {
		parameter = *param;
	}
	offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_index, &parameter);
	if (param) {
		*param = parameter;
	}
	return offset;
}


/* IDL: struct { */
/* IDL: 	frsrpc_CommPktMajor major; */
/* IDL: 	frsrpc_CommPktMinor minor; */
/* IDL: 	[value(1)] uint32 cs_id; */
/* IDL: 	[value(pkt_len+12)] uint32 memory_len; */
/* IDL: 	[range(0,262144)] [value(ndr_size_frsrpc_CommPktChunkCtr(r->ctr,ndr->flags))] uint32 pkt_len; */
/* IDL: 	[value(0)] uint32 upk_len; */
/* IDL: 	[subcontext(4)] [subcontext_size(pkt_len)] [unique(1)] frsrpc_CommPktChunkCtr *ctr; */
/* IDL: 	[value(0)] uint3264 data_name; */
/* IDL: 	[value(0)] uint3264 data_handle; */
/* IDL: } */

static int
frsrpc_dissect_element_FrsSendCommPktReq_major(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = frsrpc_dissect_enum_CommPktMajor(tvb, offset, pinfo, tree, di, drep, hf_frsrpc_frsrpc_FrsSendCommPktReq_major, 0);

	return offset;
}

static int
frsrpc_dissect_element_FrsSendCommPktReq_minor(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = frsrpc_dissect_enum_CommPktMinor(tvb, offset, pinfo, tree, di, drep, hf_frsrpc_frsrpc_FrsSendCommPktReq_minor, 0);

	return offset;
}

static int
frsrpc_dissect_element_FrsSendCommPktReq_cs_id(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_frsrpc_frsrpc_FrsSendCommPktReq_cs_id, 0);

	return offset;
}

static int
frsrpc_dissect_element_FrsSendCommPktReq_memory_len(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_frsrpc_frsrpc_FrsSendCommPktReq_memory_len, 0);

	return offset;
}

static int
frsrpc_dissect_element_FrsSendCommPktReq_pkt_len(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_frsrpc_frsrpc_FrsSendCommPktReq_pkt_len, 0);

	return offset;
}

static int
frsrpc_dissect_element_FrsSendCommPktReq_upk_len(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_frsrpc_frsrpc_FrsSendCommPktReq_upk_len, 0);

	return offset;
}

static int
frsrpc_dissect_element_FrsSendCommPktReq_ctr(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, frsrpc_dissect_element_FrsSendCommPktReq_ctr_, NDR_POINTER_UNIQUE, "Pointer to Ctr (frsrpc_CommPktChunkCtr)",hf_frsrpc_frsrpc_FrsSendCommPktReq_ctr);

	return offset;
}

static int
frsrpc_dissect_element_FrsSendCommPktReq_ctr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	guint3264 size;
	int conformant = di->conformant_run;
	tvbuff_t *subtvb;

	if (!conformant) {
		guint32 saved_flags = di->call_data->flags;
		offset = dissect_ndr_uint3264(tvb, offset, pinfo, tree, di, drep, hf_frsrpc_frsrpc_FrsSendCommPktReq_ctr_, &size);
		di->call_data->flags &= ~DCERPC_IS_NDR64;
		subtvb = tvb_new_subset_length_caplen(tvb, offset, (const gint)size, -1);
		frsrpc_dissect_element_FrsSendCommPktReq_ctr__(subtvb, 0, pinfo, tree, di, drep);
		offset += (int)size;
		di->call_data->flags = saved_flags;
	}

	return offset;
}

static int
frsrpc_dissect_element_FrsSendCommPktReq_ctr__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = frsrpc_dissect_struct_frsrpc_CommPktChunkCtr(tvb,offset,pinfo,tree,di,drep,hf_frsrpc_frsrpc_FrsSendCommPktReq_ctr,0);

	return offset;
}

static int
frsrpc_dissect_element_FrsSendCommPktReq_data_name(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_uint3264(tvb, offset, pinfo, tree, di, drep, hf_frsrpc_frsrpc_FrsSendCommPktReq_data_name, NULL);

	return offset;
}

static int
frsrpc_dissect_element_FrsSendCommPktReq_data_handle(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_uint3264(tvb, offset, pinfo, tree, di, drep, hf_frsrpc_frsrpc_FrsSendCommPktReq_data_handle, NULL);

	return offset;
}

int
frsrpc_dissect_struct_FrsSendCommPktReq(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_frsrpc_frsrpc_FrsSendCommPktReq);
	}

	offset = frsrpc_dissect_element_FrsSendCommPktReq_major(tvb, offset, pinfo, tree, di, drep);

	offset = frsrpc_dissect_element_FrsSendCommPktReq_minor(tvb, offset, pinfo, tree, di, drep);

	offset = frsrpc_dissect_element_FrsSendCommPktReq_cs_id(tvb, offset, pinfo, tree, di, drep);

	offset = frsrpc_dissect_element_FrsSendCommPktReq_memory_len(tvb, offset, pinfo, tree, di, drep);

	offset = frsrpc_dissect_element_FrsSendCommPktReq_pkt_len(tvb, offset, pinfo, tree, di, drep);

	offset = frsrpc_dissect_element_FrsSendCommPktReq_upk_len(tvb, offset, pinfo, tree, di, drep);

	offset = frsrpc_dissect_element_FrsSendCommPktReq_ctr(tvb, offset, pinfo, tree, di, drep);

	offset = frsrpc_dissect_element_FrsSendCommPktReq_data_name(tvb, offset, pinfo, tree, di, drep);

	offset = frsrpc_dissect_element_FrsSendCommPktReq_data_handle(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: enum { */
/* IDL: 	FRSRPC_PARENT_AUTH_LEVEL_ENCRYPTED_KERBEROS=0x00000000, */
/* IDL: 	FRSRPC_PARENT_AUTH_LEVEL_NO_AUTHENTICATION=0x00000001, */
/* IDL: } */

int
frsrpc_dissect_enum_PartnerAuthLevel(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
{
	guint32 parameter=0;
	if (param) {
		parameter = *param;
	}
	offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_index, &parameter);
	if (param) {
		*param = parameter;
	}
	return offset;
}

static int
frsrpc_dissect_element_FrsSendCommPkt_req(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = frsrpc_dissect_struct_FrsSendCommPktReq(tvb,offset,pinfo,tree,di,drep,hf_frsrpc_frsrpc_FrsSendCommPkt_req,0);

	return offset;
}

/* IDL: WERROR frsrpc_FrsSendCommPkt( */
/* IDL: [in] frsrpc_FrsSendCommPktReq req */
/* IDL: ); */

static int
frsrpc_dissect_FrsSendCommPkt_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="FrsSendCommPkt";
	offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_frsrpc_werror, &status);

	if (status != 0)
		col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));

	return offset;
}

static int
frsrpc_dissect_FrsSendCommPkt_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="FrsSendCommPkt";
	offset = frsrpc_dissect_element_FrsSendCommPkt_req(tvb, offset, pinfo, tree, di, drep);
	offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
	return offset;
}

static int
frsrpc_dissect_element_FrsVerifyPromotionParent_parent_account(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, frsrpc_dissect_element_FrsVerifyPromotionParent_parent_account_, NDR_POINTER_UNIQUE, "Pointer to Parent Account (uint16)",hf_frsrpc_frsrpc_FrsVerifyPromotionParent_parent_account);

	return offset;
}

static int
frsrpc_dissect_element_FrsVerifyPromotionParent_parent_account_(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_frsrpc_frsrpc_FrsVerifyPromotionParent_parent_account, FALSE, &data);
	proto_item_append_text(tree, ": %s", data);

	return offset;
}

static int
frsrpc_dissect_element_FrsVerifyPromotionParent_parent_password(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, frsrpc_dissect_element_FrsVerifyPromotionParent_parent_password_, NDR_POINTER_UNIQUE, "Pointer to Parent Password (uint16)",hf_frsrpc_frsrpc_FrsVerifyPromotionParent_parent_password);

	return offset;
}

static int
frsrpc_dissect_element_FrsVerifyPromotionParent_parent_password_(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_frsrpc_frsrpc_FrsVerifyPromotionParent_parent_password, FALSE, &data);
	proto_item_append_text(tree, ": %s", data);

	return offset;
}

static int
frsrpc_dissect_element_FrsVerifyPromotionParent_replica_set_name(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, frsrpc_dissect_element_FrsVerifyPromotionParent_replica_set_name_, NDR_POINTER_UNIQUE, "Pointer to Replica Set Name (uint16)",hf_frsrpc_frsrpc_FrsVerifyPromotionParent_replica_set_name);

	return offset;
}

static int
frsrpc_dissect_element_FrsVerifyPromotionParent_replica_set_name_(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_frsrpc_frsrpc_FrsVerifyPromotionParent_replica_set_name, FALSE, &data);
	proto_item_append_text(tree, ": %s", data);

	return offset;
}

static int
frsrpc_dissect_element_FrsVerifyPromotionParent_replica_set_type(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, frsrpc_dissect_element_FrsVerifyPromotionParent_replica_set_type_, NDR_POINTER_UNIQUE, "Pointer to Replica Set Type (uint16)",hf_frsrpc_frsrpc_FrsVerifyPromotionParent_replica_set_type);

	return offset;
}

static int
frsrpc_dissect_element_FrsVerifyPromotionParent_replica_set_type_(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_frsrpc_frsrpc_FrsVerifyPromotionParent_replica_set_type, FALSE, &data);
	proto_item_append_text(tree, ": %s", data);

	return offset;
}

static int
frsrpc_dissect_element_FrsVerifyPromotionParent_partner_auth_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = frsrpc_dissect_enum_PartnerAuthLevel(tvb, offset, pinfo, tree, di, drep, hf_frsrpc_frsrpc_FrsVerifyPromotionParent_partner_auth_level, 0);

	return offset;
}

static int
frsrpc_dissect_element_FrsVerifyPromotionParent___ndr_guid_size(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_frsrpc_frsrpc_FrsVerifyPromotionParent___ndr_guid_size, 0);

	return offset;
}

/* IDL: WERROR frsrpc_FrsVerifyPromotionParent( */
/* IDL: [charset(UTF16)] [in] [unique(1)] uint16 *parent_account, */
/* IDL: [charset(UTF16)] [in] [unique(1)] uint16 *parent_password, */
/* IDL: [charset(UTF16)] [in] [unique(1)] uint16 *replica_set_name, */
/* IDL: [charset(UTF16)] [in] [unique(1)] uint16 *replica_set_type, */
/* IDL: [in] frsrpc_PartnerAuthLevel partner_auth_level, */
/* IDL: [in] uint32 __ndr_guid_size */
/* IDL: ); */

static int
frsrpc_dissect_FrsVerifyPromotionParent_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="FrsVerifyPromotionParent";
	offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_frsrpc_werror, &status);

	if (status != 0)
		col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));

	return offset;
}

static int
frsrpc_dissect_FrsVerifyPromotionParent_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="FrsVerifyPromotionParent";
	offset = frsrpc_dissect_element_FrsVerifyPromotionParent_parent_account(tvb, offset, pinfo, tree, di, drep);
	offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
	offset = frsrpc_dissect_element_FrsVerifyPromotionParent_parent_password(tvb, offset, pinfo, tree, di, drep);
	offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
	offset = frsrpc_dissect_element_FrsVerifyPromotionParent_replica_set_name(tvb, offset, pinfo, tree, di, drep);
	offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
	offset = frsrpc_dissect_element_FrsVerifyPromotionParent_replica_set_type(tvb, offset, pinfo, tree, di, drep);
	offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
	offset = frsrpc_dissect_element_FrsVerifyPromotionParent_partner_auth_level(tvb, offset, pinfo, tree, di, drep);
	offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
	offset = frsrpc_dissect_element_FrsVerifyPromotionParent___ndr_guid_size(tvb, offset, pinfo, tree, di, drep);
	offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
	return offset;
}

static int
frsrpc_dissect_element_FrsStartPromotionParent_parent_account(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, frsrpc_dissect_element_FrsStartPromotionParent_parent_account_, NDR_POINTER_UNIQUE, "Pointer to Parent Account (uint16)",hf_frsrpc_frsrpc_FrsStartPromotionParent_parent_account);

	return offset;
}

static int
frsrpc_dissect_element_FrsStartPromotionParent_parent_account_(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_frsrpc_frsrpc_FrsStartPromotionParent_parent_account, FALSE, &data);
	proto_item_append_text(tree, ": %s", data);

	return offset;
}

static int
frsrpc_dissect_element_FrsStartPromotionParent_parent_password(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, frsrpc_dissect_element_FrsStartPromotionParent_parent_password_, NDR_POINTER_UNIQUE, "Pointer to Parent Password (uint16)",hf_frsrpc_frsrpc_FrsStartPromotionParent_parent_password);

	return offset;
}

static int
frsrpc_dissect_element_FrsStartPromotionParent_parent_password_(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_frsrpc_frsrpc_FrsStartPromotionParent_parent_password, FALSE, &data);
	proto_item_append_text(tree, ": %s", data);

	return offset;
}

static int
frsrpc_dissect_element_FrsStartPromotionParent_replica_set_name(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, frsrpc_dissect_element_FrsStartPromotionParent_replica_set_name_, NDR_POINTER_UNIQUE, "Pointer to Replica Set Name (uint16)",hf_frsrpc_frsrpc_FrsStartPromotionParent_replica_set_name);

	return offset;
}

static int
frsrpc_dissect_element_FrsStartPromotionParent_replica_set_name_(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_frsrpc_frsrpc_FrsStartPromotionParent_replica_set_name, FALSE, &data);
	proto_item_append_text(tree, ": %s", data);

	return offset;
}

static int
frsrpc_dissect_element_FrsStartPromotionParent_replica_set_type(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, frsrpc_dissect_element_FrsStartPromotionParent_replica_set_type_, NDR_POINTER_UNIQUE, "Pointer to Replica Set Type (uint16)",hf_frsrpc_frsrpc_FrsStartPromotionParent_replica_set_type);

	return offset;
}

static int
frsrpc_dissect_element_FrsStartPromotionParent_replica_set_type_(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_frsrpc_frsrpc_FrsStartPromotionParent_replica_set_type, FALSE, &data);
	proto_item_append_text(tree, ": %s", data);

	return offset;
}

static int
frsrpc_dissect_element_FrsStartPromotionParent_connection_name(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, frsrpc_dissect_element_FrsStartPromotionParent_connection_name_, NDR_POINTER_UNIQUE, "Pointer to Connection Name (uint16)",hf_frsrpc_frsrpc_FrsStartPromotionParent_connection_name);

	return offset;
}

static int
frsrpc_dissect_element_FrsStartPromotionParent_connection_name_(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_frsrpc_frsrpc_FrsStartPromotionParent_connection_name, FALSE, &data);
	proto_item_append_text(tree, ": %s", data);

	return offset;
}

static int
frsrpc_dissect_element_FrsStartPromotionParent_partner_name(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, frsrpc_dissect_element_FrsStartPromotionParent_partner_name_, NDR_POINTER_UNIQUE, "Pointer to Partner Name (uint16)",hf_frsrpc_frsrpc_FrsStartPromotionParent_partner_name);

	return offset;
}

static int
frsrpc_dissect_element_FrsStartPromotionParent_partner_name_(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_frsrpc_frsrpc_FrsStartPromotionParent_partner_name, FALSE, &data);
	proto_item_append_text(tree, ": %s", data);

	return offset;
}

static int
frsrpc_dissect_element_FrsStartPromotionParent_partner_princ_name(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, frsrpc_dissect_element_FrsStartPromotionParent_partner_princ_name_, NDR_POINTER_UNIQUE, "Pointer to Partner Princ Name (uint16)",hf_frsrpc_frsrpc_FrsStartPromotionParent_partner_princ_name);

	return offset;
}

static int
frsrpc_dissect_element_FrsStartPromotionParent_partner_princ_name_(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_frsrpc_frsrpc_FrsStartPromotionParent_partner_princ_name, FALSE, &data);
	proto_item_append_text(tree, ": %s", data);

	return offset;
}

static int
frsrpc_dissect_element_FrsStartPromotionParent_partner_auth_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = frsrpc_dissect_enum_PartnerAuthLevel(tvb, offset, pinfo, tree, di, drep, hf_frsrpc_frsrpc_FrsStartPromotionParent_partner_auth_level, 0);

	return offset;
}

static int
frsrpc_dissect_element_FrsStartPromotionParent___ndr_guid_size(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_frsrpc_frsrpc_FrsStartPromotionParent___ndr_guid_size, 0);

	return offset;
}

static int
frsrpc_dissect_element_FrsStartPromotionParent_connection_guid(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, frsrpc_dissect_element_FrsStartPromotionParent_connection_guid_, NDR_POINTER_UNIQUE, "Pointer to Connection Guid (GUID)",hf_frsrpc_frsrpc_FrsStartPromotionParent_connection_guid);

	return offset;
}

static int
frsrpc_dissect_element_FrsStartPromotionParent_connection_guid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	guint3264 size;
	int conformant = di->conformant_run;
	tvbuff_t *subtvb;

	if (!conformant) {
		guint32 saved_flags = di->call_data->flags;
		offset = dissect_ndr_uint3264(tvb, offset, pinfo, tree, di, drep, hf_frsrpc_frsrpc_FrsStartPromotionParent_connection_guid_, &size);
		di->call_data->flags &= ~DCERPC_IS_NDR64;
		subtvb = tvb_new_subset_length_caplen(tvb, offset, (const gint)size, -1);
		frsrpc_dissect_element_FrsStartPromotionParent_connection_guid__(subtvb, 0, pinfo, tree, di, drep);
		offset += (int)size;
		di->call_data->flags = saved_flags;
	}

	return offset;
}

static int
frsrpc_dissect_element_FrsStartPromotionParent_connection_guid__(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_frsrpc_frsrpc_FrsStartPromotionParent_connection_guid, NULL);

	return offset;
}

static int
frsrpc_dissect_element_FrsStartPromotionParent_partner_guid(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, frsrpc_dissect_element_FrsStartPromotionParent_partner_guid_, NDR_POINTER_UNIQUE, "Pointer to Partner Guid (GUID)",hf_frsrpc_frsrpc_FrsStartPromotionParent_partner_guid);

	return offset;
}

static int
frsrpc_dissect_element_FrsStartPromotionParent_partner_guid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	guint3264 size;
	int conformant = di->conformant_run;
	tvbuff_t *subtvb;

	if (!conformant) {
		guint32 saved_flags = di->call_data->flags;
		offset = dissect_ndr_uint3264(tvb, offset, pinfo, tree, di, drep, hf_frsrpc_frsrpc_FrsStartPromotionParent_partner_guid_, &size);
		di->call_data->flags &= ~DCERPC_IS_NDR64;
		subtvb = tvb_new_subset_length_caplen(tvb, offset, (const gint)size, -1);
		frsrpc_dissect_element_FrsStartPromotionParent_partner_guid__(subtvb, 0, pinfo, tree, di, drep);
		offset += (int)size;
		di->call_data->flags = saved_flags;
	}

	return offset;
}

static int
frsrpc_dissect_element_FrsStartPromotionParent_partner_guid__(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_frsrpc_frsrpc_FrsStartPromotionParent_partner_guid, NULL);

	return offset;
}

static int
frsrpc_dissect_element_FrsStartPromotionParent_parent_guid(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, frsrpc_dissect_element_FrsStartPromotionParent_parent_guid_, NDR_POINTER_UNIQUE, "Pointer to Parent Guid (GUID)",hf_frsrpc_frsrpc_FrsStartPromotionParent_parent_guid);

	return offset;
}

static int
frsrpc_dissect_element_FrsStartPromotionParent_parent_guid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	guint3264 size;
	int conformant = di->conformant_run;
	tvbuff_t *subtvb;

	if (!conformant) {
		guint32 saved_flags = di->call_data->flags;
		offset = dissect_ndr_uint3264(tvb, offset, pinfo, tree, di, drep, hf_frsrpc_frsrpc_FrsStartPromotionParent_parent_guid_, &size);
		di->call_data->flags &= ~DCERPC_IS_NDR64;
		subtvb = tvb_new_subset_length_caplen(tvb, offset, (const gint)size, -1);
		frsrpc_dissect_element_FrsStartPromotionParent_parent_guid__(subtvb, 0, pinfo, tree, di, drep);
		offset += (int)size;
		di->call_data->flags = saved_flags;
	}

	return offset;
}

static int
frsrpc_dissect_element_FrsStartPromotionParent_parent_guid__(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_frsrpc_frsrpc_FrsStartPromotionParent_parent_guid, NULL);

	return offset;
}

/* IDL: WERROR frsrpc_FrsStartPromotionParent( */
/* IDL: [charset(UTF16)] [in] [unique(1)] uint16 *parent_account, */
/* IDL: [charset(UTF16)] [in] [unique(1)] uint16 *parent_password, */
/* IDL: [charset(UTF16)] [in] [unique(1)] uint16 *replica_set_name, */
/* IDL: [charset(UTF16)] [in] [unique(1)] uint16 *replica_set_type, */
/* IDL: [charset(UTF16)] [in] [unique(1)] uint16 *connection_name, */
/* IDL: [charset(UTF16)] [in] [unique(1)] uint16 *partner_name, */
/* IDL: [charset(UTF16)] [in] [unique(1)] uint16 *partner_princ_name, */
/* IDL: [in] frsrpc_PartnerAuthLevel partner_auth_level, */
/* IDL: [in] [range(16,16)] [value(16)] uint32 __ndr_guid_size, */
/* IDL: [in] [subcontext(4)] [subcontext_size(16)] [unique(1)] GUID *connection_guid, */
/* IDL: [in] [subcontext(4)] [subcontext_size(16)] [unique(1)] GUID *partner_guid, */
/* IDL: [in] [out] [subcontext(4)] [subcontext_size(16)] [unique(1)] GUID *parent_guid */
/* IDL: ); */

static int
frsrpc_dissect_FrsStartPromotionParent_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="FrsStartPromotionParent";
	offset = frsrpc_dissect_element_FrsStartPromotionParent_parent_guid(tvb, offset, pinfo, tree, di, drep);
	offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);

	offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_frsrpc_werror, &status);

	if (status != 0)
		col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));

	return offset;
}

static int
frsrpc_dissect_FrsStartPromotionParent_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="FrsStartPromotionParent";
	offset = frsrpc_dissect_element_FrsStartPromotionParent_parent_account(tvb, offset, pinfo, tree, di, drep);
	offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
	offset = frsrpc_dissect_element_FrsStartPromotionParent_parent_password(tvb, offset, pinfo, tree, di, drep);
	offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
	offset = frsrpc_dissect_element_FrsStartPromotionParent_replica_set_name(tvb, offset, pinfo, tree, di, drep);
	offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
	offset = frsrpc_dissect_element_FrsStartPromotionParent_replica_set_type(tvb, offset, pinfo, tree, di, drep);
	offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
	offset = frsrpc_dissect_element_FrsStartPromotionParent_connection_name(tvb, offset, pinfo, tree, di, drep);
	offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
	offset = frsrpc_dissect_element_FrsStartPromotionParent_partner_name(tvb, offset, pinfo, tree, di, drep);
	offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
	offset = frsrpc_dissect_element_FrsStartPromotionParent_partner_princ_name(tvb, offset, pinfo, tree, di, drep);
	offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
	offset = frsrpc_dissect_element_FrsStartPromotionParent_partner_auth_level(tvb, offset, pinfo, tree, di, drep);
	offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
	offset = frsrpc_dissect_element_FrsStartPromotionParent___ndr_guid_size(tvb, offset, pinfo, tree, di, drep);
	offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
	offset = frsrpc_dissect_element_FrsStartPromotionParent_connection_guid(tvb, offset, pinfo, tree, di, drep);
	offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
	offset = frsrpc_dissect_element_FrsStartPromotionParent_partner_guid(tvb, offset, pinfo, tree, di, drep);
	offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
	offset = frsrpc_dissect_element_FrsStartPromotionParent_parent_guid(tvb, offset, pinfo, tree, di, drep);
	offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
	return offset;
}

/* IDL: WERROR frsrpc_FrsNOP( */
/* IDL:  */
/* IDL: ); */

static int
frsrpc_dissect_FrsNOP_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="FrsNOP";
	offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_frsrpc_werror, &status);

	if (status != 0)
		col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));

	return offset;
}

static int
frsrpc_dissect_FrsNOP_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="FrsNOP";
	return offset;
}

/* IDL: void FRSRPC_BACKUP_COMPLETE( */
/* IDL:  */
/* IDL: ); */

static int
frsrpc_dissect_FRSRPC_BACKUP_COMPLETE_response(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="FRSRPC_BACKUP_COMPLETE";
	return offset;
}

static int
frsrpc_dissect_FRSRPC_BACKUP_COMPLETE_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="FRSRPC_BACKUP_COMPLETE";
	return offset;
}

/* IDL: void FRSRPC_BACKUP_COMPLETE_5( */
/* IDL:  */
/* IDL: ); */

static int
frsrpc_dissect_FRSRPC_BACKUP_COMPLETE_5_response(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="FRSRPC_BACKUP_COMPLETE_5";
	return offset;
}

static int
frsrpc_dissect_FRSRPC_BACKUP_COMPLETE_5_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="FRSRPC_BACKUP_COMPLETE_5";
	return offset;
}

/* IDL: void FRSRPC_BACKUP_COMPLETE_6( */
/* IDL:  */
/* IDL: ); */

static int
frsrpc_dissect_FRSRPC_BACKUP_COMPLETE_6_response(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="FRSRPC_BACKUP_COMPLETE_6";
	return offset;
}

static int
frsrpc_dissect_FRSRPC_BACKUP_COMPLETE_6_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="FRSRPC_BACKUP_COMPLETE_6";
	return offset;
}

/* IDL: void FRSRPC_BACKUP_COMPLETE_7( */
/* IDL:  */
/* IDL: ); */

static int
frsrpc_dissect_FRSRPC_BACKUP_COMPLETE_7_response(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="FRSRPC_BACKUP_COMPLETE_7";
	return offset;
}

static int
frsrpc_dissect_FRSRPC_BACKUP_COMPLETE_7_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="FRSRPC_BACKUP_COMPLETE_7";
	return offset;
}

/* IDL: void FRSRPC_BACKUP_COMPLETE_8( */
/* IDL:  */
/* IDL: ); */

static int
frsrpc_dissect_FRSRPC_BACKUP_COMPLETE_8_response(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="FRSRPC_BACKUP_COMPLETE_8";
	return offset;
}

static int
frsrpc_dissect_FRSRPC_BACKUP_COMPLETE_8_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="FRSRPC_BACKUP_COMPLETE_8";
	return offset;
}

/* IDL: void FRSRPC_BACKUP_COMPLETE_9( */
/* IDL:  */
/* IDL: ); */

static int
frsrpc_dissect_FRSRPC_BACKUP_COMPLETE_9_response(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="FRSRPC_BACKUP_COMPLETE_9";
	return offset;
}

static int
frsrpc_dissect_FRSRPC_BACKUP_COMPLETE_9_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="FRSRPC_BACKUP_COMPLETE_9";
	return offset;
}

/* IDL: void FRSRPC_VERIFY_PROMOTION_PARENT_EX( */
/* IDL:  */
/* IDL: ); */

static int
frsrpc_dissect_FRSRPC_VERIFY_PROMOTION_PARENT_EX_response(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="FRSRPC_VERIFY_PROMOTION_PARENT_EX";
	return offset;
}

static int
frsrpc_dissect_FRSRPC_VERIFY_PROMOTION_PARENT_EX_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="FRSRPC_VERIFY_PROMOTION_PARENT_EX";
	return offset;
}


static dcerpc_sub_dissector frsrpc_dissectors[] = {
	{ 0, "FrsSendCommPkt",
	   frsrpc_dissect_FrsSendCommPkt_request, frsrpc_dissect_FrsSendCommPkt_response},
	{ 1, "FrsVerifyPromotionParent",
	   frsrpc_dissect_FrsVerifyPromotionParent_request, frsrpc_dissect_FrsVerifyPromotionParent_response},
	{ 2, "FrsStartPromotionParent",
	   frsrpc_dissect_FrsStartPromotionParent_request, frsrpc_dissect_FrsStartPromotionParent_response},
	{ 3, "FrsNOP",
	   frsrpc_dissect_FrsNOP_request, frsrpc_dissect_FrsNOP_response},
	{ 4, "FRSRPC_BACKUP_COMPLETE",
	   frsrpc_dissect_FRSRPC_BACKUP_COMPLETE_request, frsrpc_dissect_FRSRPC_BACKUP_COMPLETE_response},
	{ 5, "FRSRPC_BACKUP_COMPLETE_5",
	   frsrpc_dissect_FRSRPC_BACKUP_COMPLETE_5_request, frsrpc_dissect_FRSRPC_BACKUP_COMPLETE_5_response},
	{ 6, "FRSRPC_BACKUP_COMPLETE_6",
	   frsrpc_dissect_FRSRPC_BACKUP_COMPLETE_6_request, frsrpc_dissect_FRSRPC_BACKUP_COMPLETE_6_response},
	{ 7, "FRSRPC_BACKUP_COMPLETE_7",
	   frsrpc_dissect_FRSRPC_BACKUP_COMPLETE_7_request, frsrpc_dissect_FRSRPC_BACKUP_COMPLETE_7_response},
	{ 8, "FRSRPC_BACKUP_COMPLETE_8",
	   frsrpc_dissect_FRSRPC_BACKUP_COMPLETE_8_request, frsrpc_dissect_FRSRPC_BACKUP_COMPLETE_8_response},
	{ 9, "FRSRPC_BACKUP_COMPLETE_9",
	   frsrpc_dissect_FRSRPC_BACKUP_COMPLETE_9_request, frsrpc_dissect_FRSRPC_BACKUP_COMPLETE_9_response},
	{ 10, "FRSRPC_VERIFY_PROMOTION_PARENT_EX",
	   frsrpc_dissect_FRSRPC_VERIFY_PROMOTION_PARENT_EX_request, frsrpc_dissect_FRSRPC_VERIFY_PROMOTION_PARENT_EX_response},
	{ 0, NULL, NULL, NULL }
};

void proto_register_dcerpc_frsrpc(void)
{
	static hf_register_info hf[] = {
	{ &hf_CommPktChunk,
	  { "Chunk", "frsrpc.chunk.ctr.chunk", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_frsrpc_CommPktChangeOrderCommand_file_name,
	  { "File Name", "frsrpc.CommPktChangeOrderCommand.file_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_frsrpc_frsrpc_CommPktChangeOrderCommand_ack_version,
	  { "Ack Version", "frsrpc.frsrpc_CommPktChangeOrderCommand.ack_version", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_frsrpc_frsrpc_CommPktChangeOrderCommand_change_order_guid,
	  { "Change Order Guid", "frsrpc.frsrpc_CommPktChangeOrderCommand.change_order_guid", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_frsrpc_frsrpc_CommPktChangeOrderCommand_connection_guid,
	  { "Connection Guid", "frsrpc.frsrpc_CommPktChangeOrderCommand.connection_guid", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_frsrpc_frsrpc_CommPktChangeOrderCommand_content_cmd,
	  { "Content Cmd", "frsrpc.frsrpc_CommPktChangeOrderCommand.content_cmd", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
	{ &hf_frsrpc_frsrpc_CommPktChangeOrderCommand_event_time,
	  { "Event Time", "frsrpc.frsrpc_CommPktChangeOrderCommand.event_time", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
	{ &hf_frsrpc_frsrpc_CommPktChangeOrderCommand_extension,
	  { "Extension", "frsrpc.frsrpc_CommPktChangeOrderCommand.extension", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_frsrpc_frsrpc_CommPktChangeOrderCommand_file_attributes,
	  { "File Attributes", "frsrpc.frsrpc_CommPktChangeOrderCommand.file_attributes", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_frsrpc_frsrpc_CommPktChangeOrderCommand_file_guid,
	  { "File Guid", "frsrpc.frsrpc_CommPktChangeOrderCommand.file_guid", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_frsrpc_frsrpc_CommPktChangeOrderCommand_file_name,
	  { "File Name", "frsrpc.frsrpc_CommPktChangeOrderCommand.file_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_frsrpc_frsrpc_CommPktChangeOrderCommand_file_name_length,
	  { "File Name Length", "frsrpc.frsrpc_CommPktChangeOrderCommand.file_name_length", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_frsrpc_frsrpc_CommPktChangeOrderCommand_file_offset,
	  { "File Offset", "frsrpc.frsrpc_CommPktChangeOrderCommand.file_offset", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_frsrpc_frsrpc_CommPktChangeOrderCommand_file_size,
	  { "File Size", "frsrpc.frsrpc_CommPktChangeOrderCommand.file_size", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_frsrpc_frsrpc_CommPktChangeOrderCommand_file_usn,
	  { "File Usn", "frsrpc.frsrpc_CommPktChangeOrderCommand.file_usn", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_frsrpc_frsrpc_CommPktChangeOrderCommand_file_version_number,
	  { "File Version Number", "frsrpc.frsrpc_CommPktChangeOrderCommand.file_version_number", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_frsrpc_frsrpc_CommPktChangeOrderCommand_flags,
	  { "Flags", "frsrpc.frsrpc_CommPktChangeOrderCommand.flags", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
	{ &hf_frsrpc_frsrpc_CommPktChangeOrderCommand_frs_vsn,
	  { "Frs Vsn", "frsrpc.frsrpc_CommPktChangeOrderCommand.frs_vsn", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_frsrpc_frsrpc_CommPktChangeOrderCommand_iflags,
	  { "Iflags", "frsrpc.frsrpc_CommPktChangeOrderCommand.iflags", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
	{ &hf_frsrpc_frsrpc_CommPktChangeOrderCommand_jrnl_first_usn,
	  { "Jrnl First Usn", "frsrpc.frsrpc_CommPktChangeOrderCommand.jrnl_first_usn", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_frsrpc_frsrpc_CommPktChangeOrderCommand_jrnl_usn,
	  { "Jrnl Usn", "frsrpc.frsrpc_CommPktChangeOrderCommand.jrnl_usn", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_frsrpc_frsrpc_CommPktChangeOrderCommand_location_cmd,
	  { "Location Cmd", "frsrpc.frsrpc_CommPktChangeOrderCommand.location_cmd", FT_UINT32, BASE_DEC, VALS(frsrpc_frsrpc_CommPktCoCmdLocationCmd_vals), 0, NULL, HFILL }},
	{ &hf_frsrpc_frsrpc_CommPktChangeOrderCommand_new_parent_guid,
	  { "New Parent Guid", "frsrpc.frsrpc_CommPktChangeOrderCommand.new_parent_guid", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_frsrpc_frsrpc_CommPktChangeOrderCommand_new_replica_num,
	  { "New Replica Num", "frsrpc.frsrpc_CommPktChangeOrderCommand.new_replica_num", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_frsrpc_frsrpc_CommPktChangeOrderCommand_not_used,
	  { "Not Used", "frsrpc.frsrpc_CommPktChangeOrderCommand.not_used", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_frsrpc_frsrpc_CommPktChangeOrderCommand_old_parent_guid,
	  { "Old Parent Guid", "frsrpc.frsrpc_CommPktChangeOrderCommand.old_parent_guid", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_frsrpc_frsrpc_CommPktChangeOrderCommand_original_replica_num,
	  { "Original Replica Num", "frsrpc.frsrpc_CommPktChangeOrderCommand.original_replica_num", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_frsrpc_frsrpc_CommPktChangeOrderCommand_originator_guid,
	  { "Originator Guid", "frsrpc.frsrpc_CommPktChangeOrderCommand.originator_guid", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_frsrpc_frsrpc_CommPktChangeOrderCommand_padding1,
	  { "Padding1", "frsrpc.frsrpc_CommPktChangeOrderCommand.padding1", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_frsrpc_frsrpc_CommPktChangeOrderCommand_padding2,
	  { "Padding2", "frsrpc.frsrpc_CommPktChangeOrderCommand.padding2", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_frsrpc_frsrpc_CommPktChangeOrderCommand_padding3,
	  { "Padding3", "frsrpc.frsrpc_CommPktChangeOrderCommand.padding3", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_frsrpc_frsrpc_CommPktChangeOrderCommand_padding4,
	  { "Padding4", "frsrpc.frsrpc_CommPktChangeOrderCommand.padding4", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_frsrpc_frsrpc_CommPktChangeOrderCommand_partern_ack_sequence_number,
	  { "Partern Ack Sequence Number", "frsrpc.frsrpc_CommPktChangeOrderCommand.partern_ack_sequence_number", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_frsrpc_frsrpc_CommPktChangeOrderCommand_sequence_number,
	  { "Sequence Number", "frsrpc.frsrpc_CommPktChangeOrderCommand.sequence_number", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_frsrpc_frsrpc_CommPktChangeOrderCommand_spare1guid_p1,
	  { "Spare1guid P1", "frsrpc.frsrpc_CommPktChangeOrderCommand.spare1guid_p1", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_frsrpc_frsrpc_CommPktChangeOrderCommand_spare1guid_p2,
	  { "Spare1guid P2", "frsrpc.frsrpc_CommPktChangeOrderCommand.spare1guid_p2", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_frsrpc_frsrpc_CommPktChangeOrderCommand_spare1wcs,
	  { "Spare1wcs", "frsrpc.frsrpc_CommPktChangeOrderCommand.spare1wcs", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_frsrpc_frsrpc_CommPktChangeOrderCommand_spare2bin,
	  { "Spare2bin", "frsrpc.frsrpc_CommPktChangeOrderCommand.spare2bin", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_frsrpc_frsrpc_CommPktChangeOrderCommand_spare2guid_p1,
	  { "Spare2guid P1", "frsrpc.frsrpc_CommPktChangeOrderCommand.spare2guid_p1", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_frsrpc_frsrpc_CommPktChangeOrderCommand_spare2ul1,
	  { "Spare2ul1", "frsrpc.frsrpc_CommPktChangeOrderCommand.spare2ul1", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_frsrpc_frsrpc_CommPktChangeOrderCommand_spare2wcs,
	  { "Spare2wcs", "frsrpc.frsrpc_CommPktChangeOrderCommand.spare2wcs", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_frsrpc_frsrpc_CommPktChangeOrderCommand_spare3guid_p2,
	  { "Spare3guid P2", "frsrpc.frsrpc_CommPktChangeOrderCommand.spare3guid_p2", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_frsrpc_frsrpc_CommPktChangeOrderCommand_status,
	  { "Status", "frsrpc.frsrpc_CommPktChangeOrderCommand.status", FT_UINT32, BASE_DEC, VALS(frsrpc_frsrpc_CommPktCoCmdStatus_vals), 0, NULL, HFILL }},
	{ &hf_frsrpc_frsrpc_CommPktChangeOrderRecordExtension_data_checksum,
	  { "Data Checksum", "frsrpc.frsrpc_CommPktChangeOrderRecordExtension.data_checksum", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_frsrpc_frsrpc_CommPktChangeOrderRecordExtension_data_retry_timeout,
	  { "Data Retry Timeout", "frsrpc.frsrpc_CommPktChangeOrderRecordExtension.data_retry_timeout", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_frsrpc_frsrpc_CommPktChangeOrderRecordExtension_field_size,
	  { "Field Size", "frsrpc.frsrpc_CommPktChangeOrderRecordExtension.field_size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_frsrpc_frsrpc_CommPktChangeOrderRecordExtension_major,
	  { "Major", "frsrpc.frsrpc_CommPktChangeOrderRecordExtension.major", FT_UINT1632, BASE_DEC, VALS(frsrpc_frsrpc_CommPktCoRecordExtensionMajor_vals), 0, NULL, HFILL }},
	{ &hf_frsrpc_frsrpc_CommPktChangeOrderRecordExtension_not_used,
	  { "Not Used", "frsrpc.frsrpc_CommPktChangeOrderRecordExtension.not_used", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_frsrpc_frsrpc_CommPktChangeOrderRecordExtension_offset0,
	  { "Offset0", "frsrpc.frsrpc_CommPktChangeOrderRecordExtension.offset0", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_frsrpc_frsrpc_CommPktChangeOrderRecordExtension_offset1,
	  { "Offset1", "frsrpc.frsrpc_CommPktChangeOrderRecordExtension.offset1", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_frsrpc_frsrpc_CommPktChangeOrderRecordExtension_offset_count,
	  { "Offset Count", "frsrpc.frsrpc_CommPktChangeOrderRecordExtension.offset_count", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_frsrpc_frsrpc_CommPktChangeOrderRecordExtension_offset_last,
	  { "Offset Last", "frsrpc.frsrpc_CommPktChangeOrderRecordExtension.offset_last", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_frsrpc_frsrpc_CommPktChunkData_blob,
	  { "Blob", "frsrpc.frsrpc_CommPktChunkData.blob", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_frsrpc_frsrpc_CommPktChunkData_block,
	  { "Block", "frsrpc.frsrpc_CommPktChunkData.block", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_frsrpc_frsrpc_CommPktChunkData_block_size,
	  { "Block Size", "frsrpc.frsrpc_CommPktChunkData.block_size", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_frsrpc_frsrpc_CommPktChunkData_bop,
	  { "Bop", "frsrpc.frsrpc_CommPktChunkData.bop", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_frsrpc_frsrpc_CommPktChunkData_bopend,
	  { "Bopend", "frsrpc.frsrpc_CommPktChunkData.bopend", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_frsrpc_frsrpc_CommPktChunkData_co_ext_win2k,
	  { "Co Ext Win2k", "frsrpc.frsrpc_CommPktChunkData.co_ext_win2k", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_frsrpc_frsrpc_CommPktChunkData_co_ext_win2k_,
	  { "Subcontext length", "frsrpc.frsrpc_CommPktChunkData.subcontext", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
	{ &hf_frsrpc_frsrpc_CommPktChunkData_co_extension2,
	  { "Co Extension2", "frsrpc.frsrpc_CommPktChunkData.co_extension2", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_frsrpc_frsrpc_CommPktChunkData_co_guid,
	  { "Co Guid", "frsrpc.frsrpc_CommPktChunkData.co_guid", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_frsrpc_frsrpc_CommPktChunkData_co_guid_,
	  { "Subcontext length", "frsrpc.frsrpc_CommPktChunkData.subcontext", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
	{ &hf_frsrpc_frsrpc_CommPktChunkData_co_sequnence_number,
	  { "Co Sequnence Number", "frsrpc.frsrpc_CommPktChunkData.co_sequnence_number", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_frsrpc_frsrpc_CommPktChunkData_command,
	  { "Command", "frsrpc.frsrpc_CommPktChunkData.command", FT_UINT32, BASE_DEC, VALS(frsrpc_frsrpc_CommPktCommand_vals), 0, NULL, HFILL }},
	{ &hf_frsrpc_frsrpc_CommPktChunkData_compression_guid,
	  { "Compression Guid", "frsrpc.frsrpc_CommPktChunkData.compression_guid", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_frsrpc_frsrpc_CommPktChunkData_connection,
	  { "Connection", "frsrpc.frsrpc_CommPktChunkData.connection", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_frsrpc_frsrpc_CommPktChunkData_file_offset,
	  { "File Offset", "frsrpc.frsrpc_CommPktChunkData.file_offset", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_frsrpc_frsrpc_CommPktChunkData_file_size,
	  { "File Size", "frsrpc.frsrpc_CommPktChunkData.file_size", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_frsrpc_frsrpc_CommPktChunkData_from,
	  { "From", "frsrpc.frsrpc_CommPktChunkData.from", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_frsrpc_frsrpc_CommPktChunkData_gvsn,
	  { "Gvsn", "frsrpc.frsrpc_CommPktChunkData.gvsn", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_frsrpc_frsrpc_CommPktChunkData_gvsn_,
	  { "Subcontext length", "frsrpc.frsrpc_CommPktChunkData.subcontext", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
	{ &hf_frsrpc_frsrpc_CommPktChunkData_join_guid,
	  { "Join Guid", "frsrpc.frsrpc_CommPktChunkData.join_guid", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_frsrpc_frsrpc_CommPktChunkData_join_guid_,
	  { "Subcontext length", "frsrpc.frsrpc_CommPktChunkData.subcontext", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
	{ &hf_frsrpc_frsrpc_CommPktChunkData_join_time,
	  { "Join Time", "frsrpc.frsrpc_CommPktChunkData.join_time", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
	{ &hf_frsrpc_frsrpc_CommPktChunkData_join_time_,
	  { "Subcontext length", "frsrpc.frsrpc_CommPktChunkData.subcontext", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
	{ &hf_frsrpc_frsrpc_CommPktChunkData_last_join_time,
	  { "Last Join Time", "frsrpc.frsrpc_CommPktChunkData.last_join_time", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
	{ &hf_frsrpc_frsrpc_CommPktChunkData_remote_co,
	  { "Remote Co", "frsrpc.frsrpc_CommPktChunkData.remote_co", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_frsrpc_frsrpc_CommPktChunkData_remote_co_,
	  { "Subcontext length", "frsrpc.frsrpc_CommPktChunkData.subcontext", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
	{ &hf_frsrpc_frsrpc_CommPktChunkData_replica,
	  { "Replica", "frsrpc.frsrpc_CommPktChunkData.replica", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_frsrpc_frsrpc_CommPktChunkData_replica_version_guid,
	  { "Replica Version Guid", "frsrpc.frsrpc_CommPktChunkData.replica_version_guid", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_frsrpc_frsrpc_CommPktChunkData_replica_version_guid_,
	  { "Subcontext length", "frsrpc.frsrpc_CommPktChunkData.subcontext", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
	{ &hf_frsrpc_frsrpc_CommPktChunkData_to,
	  { "To", "frsrpc.frsrpc_CommPktChunkData.to", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_frsrpc_frsrpc_CommPktChunkData_vvector,
	  { "Vvector", "frsrpc.frsrpc_CommPktChunkData.vvector", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_frsrpc_frsrpc_CommPktChunkData_vvector_,
	  { "Subcontext length", "frsrpc.frsrpc_CommPktChunkData.subcontext", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
	{ &hf_frsrpc_frsrpc_CommPktChunkGuidName_guid,
	  { "Guid", "frsrpc.frsrpc_CommPktChunkGuidName.guid", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_frsrpc_frsrpc_CommPktChunkGuidName_guid_,
	  { "Subcontext length", "frsrpc.frsrpc_CommPktChunkGuidName.subcontext", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
	{ &hf_frsrpc_frsrpc_CommPktChunkGuidName_name,
	  { "Name", "frsrpc.frsrpc_CommPktChunkGuidName.name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_frsrpc_frsrpc_CommPktChunkGuidName_name_,
	  { "Subcontext length", "frsrpc.frsrpc_CommPktChunkGuidName.subcontext", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
	{ &hf_frsrpc_frsrpc_CommPktChunk_data,
	  { "Data", "frsrpc.frsrpc_CommPktChunk.data", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_frsrpc_frsrpc_CommPktChunk_data_,
	  { "Subcontext length", "frsrpc.frsrpc_CommPktChunk.subcontext", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
	{ &hf_frsrpc_frsrpc_CommPktChunk_type,
	  { "Type", "frsrpc.frsrpc_CommPktChunk.type", FT_UINT1632, BASE_DEC, VALS(frsrpc_frsrpc_CommPktChunkType_vals), 0, NULL, HFILL }},
	{ &hf_frsrpc_frsrpc_CommPktCoCmdContentCmd_FRSRPC_CONTENT_REASON_BASIC_INFO_CHANGE,
	  { "FRSRPC CONTENT REASON BASIC INFO CHANGE", "frsrpc.frsrpc_CommPktCoCmdContentCmd.FRSRPC_CONTENT_REASON_BASIC_INFO_CHANGE", FT_BOOLEAN, 32, TFS(&frsrpc_CommPktCoCmdContentCmd_FRSRPC_CONTENT_REASON_BASIC_INFO_CHANGE_tfs), ( 0x00004000 ), NULL, HFILL }},
	{ &hf_frsrpc_frsrpc_CommPktCoCmdContentCmd_FRSRPC_CONTENT_REASON_COMPRESSION_CHANGE,
	  { "FRSRPC CONTENT REASON COMPRESSION CHANGE", "frsrpc.frsrpc_CommPktCoCmdContentCmd.FRSRPC_CONTENT_REASON_COMPRESSION_CHANGE", FT_BOOLEAN, 32, TFS(&frsrpc_CommPktCoCmdContentCmd_FRSRPC_CONTENT_REASON_COMPRESSION_CHANGE_tfs), ( 0x00020000 ), NULL, HFILL }},
	{ &hf_frsrpc_frsrpc_CommPktCoCmdContentCmd_FRSRPC_CONTENT_REASON_DATA_EXTEND,
	  { "FRSRPC CONTENT REASON DATA EXTEND", "frsrpc.frsrpc_CommPktCoCmdContentCmd.FRSRPC_CONTENT_REASON_DATA_EXTEND", FT_BOOLEAN, 32, TFS(&frsrpc_CommPktCoCmdContentCmd_FRSRPC_CONTENT_REASON_DATA_EXTEND_tfs), ( 0x00000002 ), NULL, HFILL }},
	{ &hf_frsrpc_frsrpc_CommPktCoCmdContentCmd_FRSRPC_CONTENT_REASON_DATA_OVERWRITE,
	  { "FRSRPC CONTENT REASON DATA OVERWRITE", "frsrpc.frsrpc_CommPktCoCmdContentCmd.FRSRPC_CONTENT_REASON_DATA_OVERWRITE", FT_BOOLEAN, 32, TFS(&frsrpc_CommPktCoCmdContentCmd_FRSRPC_CONTENT_REASON_DATA_OVERWRITE_tfs), ( 0x00000001 ), NULL, HFILL }},
	{ &hf_frsrpc_frsrpc_CommPktCoCmdContentCmd_FRSRPC_CONTENT_REASON_DATA_TRUNCATION,
	  { "FRSRPC CONTENT REASON DATA TRUNCATION", "frsrpc.frsrpc_CommPktCoCmdContentCmd.FRSRPC_CONTENT_REASON_DATA_TRUNCATION", FT_BOOLEAN, 32, TFS(&frsrpc_CommPktCoCmdContentCmd_FRSRPC_CONTENT_REASON_DATA_TRUNCATION_tfs), ( 0x00000004 ), NULL, HFILL }},
	{ &hf_frsrpc_frsrpc_CommPktCoCmdContentCmd_FRSRPC_CONTENT_REASON_EA_CHANGE,
	  { "FRSRPC CONTENT REASON EA CHANGE", "frsrpc.frsrpc_CommPktCoCmdContentCmd.FRSRPC_CONTENT_REASON_EA_CHANGE", FT_BOOLEAN, 32, TFS(&frsrpc_CommPktCoCmdContentCmd_FRSRPC_CONTENT_REASON_EA_CHANGE_tfs), ( 0x00000400 ), NULL, HFILL }},
	{ &hf_frsrpc_frsrpc_CommPktCoCmdContentCmd_FRSRPC_CONTENT_REASON_FILE_CREATE,
	  { "FRSRPC CONTENT REASON FILE CREATE", "frsrpc.frsrpc_CommPktCoCmdContentCmd.FRSRPC_CONTENT_REASON_FILE_CREATE", FT_BOOLEAN, 32, TFS(&frsrpc_CommPktCoCmdContentCmd_FRSRPC_CONTENT_REASON_FILE_CREATE_tfs), ( 0x00000100 ), NULL, HFILL }},
	{ &hf_frsrpc_frsrpc_CommPktCoCmdContentCmd_FRSRPC_CONTENT_REASON_FILE_DELETE,
	  { "FRSRPC CONTENT REASON FILE DELETE", "frsrpc.frsrpc_CommPktCoCmdContentCmd.FRSRPC_CONTENT_REASON_FILE_DELETE", FT_BOOLEAN, 32, TFS(&frsrpc_CommPktCoCmdContentCmd_FRSRPC_CONTENT_REASON_FILE_DELETE_tfs), ( 0x00000200 ), NULL, HFILL }},
	{ &hf_frsrpc_frsrpc_CommPktCoCmdContentCmd_FRSRPC_CONTENT_REASON_NAMED_DATA_EXTEND,
	  { "FRSRPC CONTENT REASON NAMED DATA EXTEND", "frsrpc.frsrpc_CommPktCoCmdContentCmd.FRSRPC_CONTENT_REASON_NAMED_DATA_EXTEND", FT_BOOLEAN, 32, TFS(&frsrpc_CommPktCoCmdContentCmd_FRSRPC_CONTENT_REASON_NAMED_DATA_EXTEND_tfs), ( 0x00000020 ), NULL, HFILL }},
	{ &hf_frsrpc_frsrpc_CommPktCoCmdContentCmd_FRSRPC_CONTENT_REASON_NAMED_DATA_OVERWRITE,
	  { "FRSRPC CONTENT REASON NAMED DATA OVERWRITE", "frsrpc.frsrpc_CommPktCoCmdContentCmd.FRSRPC_CONTENT_REASON_NAMED_DATA_OVERWRITE", FT_BOOLEAN, 32, TFS(&frsrpc_CommPktCoCmdContentCmd_FRSRPC_CONTENT_REASON_NAMED_DATA_OVERWRITE_tfs), ( 0x00000010 ), NULL, HFILL }},
	{ &hf_frsrpc_frsrpc_CommPktCoCmdContentCmd_FRSRPC_CONTENT_REASON_NAMED_DATA_TRUNCATION,
	  { "FRSRPC CONTENT REASON NAMED DATA TRUNCATION", "frsrpc.frsrpc_CommPktCoCmdContentCmd.FRSRPC_CONTENT_REASON_NAMED_DATA_TRUNCATION", FT_BOOLEAN, 32, TFS(&frsrpc_CommPktCoCmdContentCmd_FRSRPC_CONTENT_REASON_NAMED_DATA_TRUNCATION_tfs), ( 0x00000040 ), NULL, HFILL }},
	{ &hf_frsrpc_frsrpc_CommPktCoCmdContentCmd_FRSRPC_CONTENT_REASON_NEW_NAME,
	  { "FRSRPC CONTENT REASON NEW NAME", "frsrpc.frsrpc_CommPktCoCmdContentCmd.FRSRPC_CONTENT_REASON_NEW_NAME", FT_BOOLEAN, 32, TFS(&frsrpc_CommPktCoCmdContentCmd_FRSRPC_CONTENT_REASON_NEW_NAME_tfs), ( 0x00002000 ), NULL, HFILL }},
	{ &hf_frsrpc_frsrpc_CommPktCoCmdContentCmd_FRSRPC_CONTENT_REASON_OLD_NAME,
	  { "FRSRPC CONTENT REASON OLD NAME", "frsrpc.frsrpc_CommPktCoCmdContentCmd.FRSRPC_CONTENT_REASON_OLD_NAME", FT_BOOLEAN, 32, TFS(&frsrpc_CommPktCoCmdContentCmd_FRSRPC_CONTENT_REASON_OLD_NAME_tfs), ( 0x00001000 ), NULL, HFILL }},
	{ &hf_frsrpc_frsrpc_CommPktCoCmdContentCmd_FRSRPC_CONTENT_REASON_SECURITY_CHANGE,
	  { "FRSRPC CONTENT REASON SECURITY CHANGE", "frsrpc.frsrpc_CommPktCoCmdContentCmd.FRSRPC_CONTENT_REASON_SECURITY_CHANGE", FT_BOOLEAN, 32, TFS(&frsrpc_CommPktCoCmdContentCmd_FRSRPC_CONTENT_REASON_SECURITY_CHANGE_tfs), ( 0x00000800 ), NULL, HFILL }},
	{ &hf_frsrpc_frsrpc_CommPktCoCmdFlags_FRSRPC_CO_FLAG_ABORT_CO,
	  { "FRSRPC CO FLAG ABORT CO", "frsrpc.frsrpc_CommPktCoCmdFlags.FRSRPC_CO_FLAG_ABORT_CO", FT_BOOLEAN, 32, TFS(&frsrpc_CommPktCoCmdFlags_FRSRPC_CO_FLAG_ABORT_CO_tfs), ( 0x00000001 ), NULL, HFILL }},
	{ &hf_frsrpc_frsrpc_CommPktCoCmdFlags_FRSRPC_CO_FLAG_COMPRESSED_STAGE,
	  { "FRSRPC CO FLAG COMPRESSED STAGE", "frsrpc.frsrpc_CommPktCoCmdFlags.FRSRPC_CO_FLAG_COMPRESSED_STAGE", FT_BOOLEAN, 32, TFS(&frsrpc_CommPktCoCmdFlags_FRSRPC_CO_FLAG_COMPRESSED_STAGE_tfs), ( 0x01000000 ), NULL, HFILL }},
	{ &hf_frsrpc_frsrpc_CommPktCoCmdFlags_FRSRPC_CO_FLAG_CONTENT_CMD,
	  { "FRSRPC CO FLAG CONTENT CMD", "frsrpc.frsrpc_CommPktCoCmdFlags.FRSRPC_CO_FLAG_CONTENT_CMD", FT_BOOLEAN, 32, TFS(&frsrpc_CommPktCoCmdFlags_FRSRPC_CO_FLAG_CONTENT_CMD_tfs), ( 0x00000004 ), NULL, HFILL }},
	{ &hf_frsrpc_frsrpc_CommPktCoCmdFlags_FRSRPC_CO_FLAG_CONTROL,
	  { "FRSRPC CO FLAG CONTROL", "frsrpc.frsrpc_CommPktCoCmdFlags.FRSRPC_CO_FLAG_CONTROL", FT_BOOLEAN, 32, TFS(&frsrpc_CommPktCoCmdFlags_FRSRPC_CO_FLAG_CONTROL_tfs), ( 0x00001000 ), NULL, HFILL }},
	{ &hf_frsrpc_frsrpc_CommPktCoCmdFlags_FRSRPC_CO_FLAG_DIRECTED_CO,
	  { "FRSRPC CO FLAG DIRECTED CO", "frsrpc.frsrpc_CommPktCoCmdFlags.FRSRPC_CO_FLAG_DIRECTED_CO", FT_BOOLEAN, 32, TFS(&frsrpc_CommPktCoCmdFlags_FRSRPC_CO_FLAG_DIRECTED_CO_tfs), ( 0x00002000 ), NULL, HFILL }},
	{ &hf_frsrpc_frsrpc_CommPktCoCmdFlags_FRSRPC_CO_FLAG_JUST_OID_RESET,
	  { "FRSRPC CO FLAG JUST OID RESET", "frsrpc.frsrpc_CommPktCoCmdFlags.FRSRPC_CO_FLAG_JUST_OID_RESET", FT_BOOLEAN, 32, TFS(&frsrpc_CommPktCoCmdFlags_FRSRPC_CO_FLAG_JUST_OID_RESET_tfs), ( 0x00800000 ), NULL, HFILL }},
	{ &hf_frsrpc_frsrpc_CommPktCoCmdFlags_FRSRPC_CO_FLAG_LOCALCO,
	  { "FRSRPC CO FLAG LOCALCO", "frsrpc.frsrpc_CommPktCoCmdFlags.FRSRPC_CO_FLAG_LOCALCO", FT_BOOLEAN, 32, TFS(&frsrpc_CommPktCoCmdFlags_FRSRPC_CO_FLAG_LOCALCO_tfs), ( 0x00000020 ), NULL, HFILL }},
	{ &hf_frsrpc_frsrpc_CommPktCoCmdFlags_FRSRPC_CO_FLAG_LOCATION_CMD,
	  { "FRSRPC CO FLAG LOCATION CMD", "frsrpc.frsrpc_CommPktCoCmdFlags.FRSRPC_CO_FLAG_LOCATION_CMD", FT_BOOLEAN, 32, TFS(&frsrpc_CommPktCoCmdFlags_FRSRPC_CO_FLAG_LOCATION_CMD_tfs), ( 0x00000008 ), NULL, HFILL }},
	{ &hf_frsrpc_frsrpc_CommPktCoCmdFlags_FRSRPC_CO_FLAG_MORPH_GEN_HEAD,
	  { "FRSRPC CO FLAG MORPH GEN HEAD", "frsrpc.frsrpc_CommPktCoCmdFlags.FRSRPC_CO_FLAG_MORPH_GEN_HEAD", FT_BOOLEAN, 32, TFS(&frsrpc_CommPktCoCmdFlags_FRSRPC_CO_FLAG_MORPH_GEN_HEAD_tfs), ( 0x00400000 ), NULL, HFILL }},
	{ &hf_frsrpc_frsrpc_CommPktCoCmdFlags_FRSRPC_CO_FLAG_MOVEIN_GEN,
	  { "FRSRPC CO FLAG MOVEIN GEN", "frsrpc.frsrpc_CommPktCoCmdFlags.FRSRPC_CO_FLAG_MOVEIN_GEN", FT_BOOLEAN, 32, TFS(&frsrpc_CommPktCoCmdFlags_FRSRPC_CO_FLAG_MOVEIN_GEN_tfs), ( 0x00200000 ), NULL, HFILL }},
	{ &hf_frsrpc_frsrpc_CommPktCoCmdFlags_FRSRPC_CO_FLAG_NEW_FILE,
	  { "FRSRPC CO FLAG NEW FILE", "frsrpc.frsrpc_CommPktCoCmdFlags.FRSRPC_CO_FLAG_NEW_FILE", FT_BOOLEAN, 32, TFS(&frsrpc_CommPktCoCmdFlags_FRSRPC_CO_FLAG_NEW_FILE_tfs), ( 0x00000400 ), NULL, HFILL }},
	{ &hf_frsrpc_frsrpc_CommPktCoCmdFlags_FRSRPC_CO_FLAG_ONLIST,
	  { "FRSRPC CO FLAG ONLIST", "frsrpc.frsrpc_CommPktCoCmdFlags.FRSRPC_CO_FLAG_ONLIST", FT_BOOLEAN, 32, TFS(&frsrpc_CommPktCoCmdFlags_FRSRPC_CO_FLAG_ONLIST_tfs), ( 0x00000010 ), NULL, HFILL }},
	{ &hf_frsrpc_frsrpc_CommPktCoCmdFlags_FRSRPC_CO_FLAG_OUT_OF_ORDER,
	  { "FRSRPC CO FLAG OUT OF ORDER", "frsrpc.frsrpc_CommPktCoCmdFlags.FRSRPC_CO_FLAG_OUT_OF_ORDER", FT_BOOLEAN, 32, TFS(&frsrpc_CommPktCoCmdFlags_FRSRPC_CO_FLAG_OUT_OF_ORDER_tfs), ( 0x00000200 ), NULL, HFILL }},
	{ &hf_frsrpc_frsrpc_CommPktCoCmdFlags_FRSRPC_CO_FLAG_RETRY,
	  { "FRSRPC CO FLAG RETRY", "frsrpc.frsrpc_CommPktCoCmdFlags.FRSRPC_CO_FLAG_RETRY", FT_BOOLEAN, 32, TFS(&frsrpc_CommPktCoCmdFlags_FRSRPC_CO_FLAG_RETRY_tfs), ( 0x00000040 ), NULL, HFILL }},
	{ &hf_frsrpc_frsrpc_CommPktCoCmdFlags_FRSRPC_CO_FLAG_SKIP_ORIG_REC_C,
	  { "FRSRPC CO FLAG SKIP ORIG REC C", "frsrpc.frsrpc_CommPktCoCmdFlags.FRSRPC_CO_FLAG_SKIP_ORIG_REC_C", FT_BOOLEAN, 32, TFS(&frsrpc_CommPktCoCmdFlags_FRSRPC_CO_FLAG_SKIP_ORIG_REC_C_tfs), ( 0x00100000 ), NULL, HFILL }},
	{ &hf_frsrpc_frsrpc_CommPktCoCmdFlags_FRSRPC_CO_FLAG_SKIP_VV_UPDATE,
	  { "FRSRPC CO FLAG SKIP VV UPDATE", "frsrpc.frsrpc_CommPktCoCmdFlags.FRSRPC_CO_FLAG_SKIP_VV_UPDATE", FT_BOOLEAN, 32, TFS(&frsrpc_CommPktCoCmdFlags_FRSRPC_CO_FLAG_SKIP_VV_UPDATE_tfs), ( 0x02000000 ), NULL, HFILL }},
	{ &hf_frsrpc_frsrpc_CommPktCoCmdFlags_FRSRPC_CO_FLAG_VVJOIN_TO_ORIG,
	  { "FRSRPC CO FLAG VVJOIN TO ORIG", "frsrpc.frsrpc_CommPktCoCmdFlags.FRSRPC_CO_FLAG_VVJOIN_TO_ORIG", FT_BOOLEAN, 32, TFS(&frsrpc_CommPktCoCmdFlags_FRSRPC_CO_FLAG_VVJOIN_TO_ORIG_tfs), ( 0x00040000 ), NULL, HFILL }},
	{ &hf_frsrpc_frsrpc_CommPktCoCmdFlags_FRSRPC_CO_FLAG_VV_ACTIVATED,
	  { "FRSRPC CO FLAG VV ACTIVATED", "frsrpc.frsrpc_CommPktCoCmdFlags.FRSRPC_CO_FLAG_VV_ACTIVATED", FT_BOOLEAN, 32, TFS(&frsrpc_CommPktCoCmdFlags_FRSRPC_CO_FLAG_VV_ACTIVATED_tfs), ( 0x00000002 ), NULL, HFILL }},
	{ &hf_frsrpc_frsrpc_CommPktCoCmdIFlags_FRSRPC_CO_IFLAG_CO_ABORT,
	  { "FRSRPC CO IFLAG CO ABORT", "frsrpc.frsrpc_CommPktCoCmdIFlags.FRSRPC_CO_IFLAG_CO_ABORT", FT_BOOLEAN, 32, TFS(&frsrpc_CommPktCoCmdIFlags_FRSRPC_CO_IFLAG_CO_ABORT_tfs), ( 0x00000002 ), NULL, HFILL }},
	{ &hf_frsrpc_frsrpc_CommPktCoCmdIFlags_FRSRPC_CO_IFLAG_DIR_ENUM_PENDING,
	  { "FRSRPC CO IFLAG DIR ENUM PENDING", "frsrpc.frsrpc_CommPktCoCmdIFlags.FRSRPC_CO_IFLAG_DIR_ENUM_PENDING", FT_BOOLEAN, 32, TFS(&frsrpc_CommPktCoCmdIFlags_FRSRPC_CO_IFLAG_DIR_ENUM_PENDING_tfs), ( 0x00000004 ), NULL, HFILL }},
	{ &hf_frsrpc_frsrpc_CommPktCoCmdIFlags_FRSRPC_CO_IFLAG_VVRETIRE_EXEC,
	  { "FRSRPC CO IFLAG VVRETIRE EXEC", "frsrpc.frsrpc_CommPktCoCmdIFlags.FRSRPC_CO_IFLAG_VVRETIRE_EXEC", FT_BOOLEAN, 32, TFS(&frsrpc_CommPktCoCmdIFlags_FRSRPC_CO_IFLAG_VVRETIRE_EXEC_tfs), ( 0x00000001 ), NULL, HFILL }},
	{ &hf_frsrpc_frsrpc_CommPktCoRecordExtensionWin2k_data_checksum,
	  { "Data Checksum", "frsrpc.frsrpc_CommPktCoRecordExtensionWin2k.data_checksum", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_frsrpc_frsrpc_CommPktCoRecordExtensionWin2k_field_size,
	  { "Field Size", "frsrpc.frsrpc_CommPktCoRecordExtensionWin2k.field_size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_frsrpc_frsrpc_CommPktCoRecordExtensionWin2k_major,
	  { "Major", "frsrpc.frsrpc_CommPktCoRecordExtensionWin2k.major", FT_UINT1632, BASE_DEC, VALS(frsrpc_frsrpc_CommPktCoRecordExtensionMajor_vals), 0, NULL, HFILL }},
	{ &hf_frsrpc_frsrpc_CommPktCoRecordExtensionWin2k_offset,
	  { "Offset", "frsrpc.frsrpc_CommPktCoRecordExtensionWin2k.offset", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_frsrpc_frsrpc_CommPktCoRecordExtensionWin2k_offset_count,
	  { "Offset Count", "frsrpc.frsrpc_CommPktCoRecordExtensionWin2k.offset_count", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_frsrpc_frsrpc_CommPktCoRecordExtensionWin2k_offset_last,
	  { "Offset Last", "frsrpc.frsrpc_CommPktCoRecordExtensionWin2k.offset_last", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_frsrpc_frsrpc_CommPktDataExtensionChecksum_data,
	  { "Data", "frsrpc.frsrpc_CommPktDataExtensionChecksum.data", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_frsrpc_frsrpc_CommPktDataExtensionChecksum_prefix_size,
	  { "Prefix Size", "frsrpc.frsrpc_CommPktDataExtensionChecksum.prefix_size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_frsrpc_frsrpc_CommPktDataExtensionChecksum_prefix_type,
	  { "Prefix Type", "frsrpc.frsrpc_CommPktDataExtensionChecksum.prefix_type", FT_UINT32, BASE_DEC, VALS(frsrpc_frsrpc_CommPktDataExtensionType_vals), 0, NULL, HFILL }},
	{ &hf_frsrpc_frsrpc_CommPktDataExtensionRetryTimeout_count,
	  { "Count", "frsrpc.frsrpc_CommPktDataExtensionRetryTimeout.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_frsrpc_frsrpc_CommPktDataExtensionRetryTimeout_first_try_time,
	  { "First Try Time", "frsrpc.frsrpc_CommPktDataExtensionRetryTimeout.first_try_time", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
	{ &hf_frsrpc_frsrpc_CommPktDataExtensionRetryTimeout_not_used,
	  { "Not Used", "frsrpc.frsrpc_CommPktDataExtensionRetryTimeout.not_used", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_frsrpc_frsrpc_CommPktDataExtensionRetryTimeout_prefix_size,
	  { "Prefix Size", "frsrpc.frsrpc_CommPktDataExtensionRetryTimeout.prefix_size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_frsrpc_frsrpc_CommPktDataExtensionRetryTimeout_prefix_type,
	  { "Prefix Type", "frsrpc.frsrpc_CommPktDataExtensionRetryTimeout.prefix_type", FT_UINT32, BASE_DEC, VALS(frsrpc_frsrpc_CommPktDataExtensionType_vals), 0, NULL, HFILL }},
	{ &hf_frsrpc_frsrpc_CommPktGSVN_guid,
	  { "Guid", "frsrpc.frsrpc_CommPktGSVN.guid", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_frsrpc_frsrpc_CommPktGSVN_vsn,
	  { "Vsn", "frsrpc.frsrpc_CommPktGSVN.vsn", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_frsrpc_frsrpc_FrsSendCommPktReq_cs_id,
	  { "Cs Id", "frsrpc.frsrpc_FrsSendCommPktReq.cs_id", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_frsrpc_frsrpc_FrsSendCommPktReq_ctr,
	  { "Ctr", "frsrpc.frsrpc_FrsSendCommPktReq.ctr", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_frsrpc_frsrpc_FrsSendCommPktReq_ctr_,
	  { "Subcontext length", "frsrpc.frsrpc_FrsSendCommPktReq.subcontext", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
	{ &hf_frsrpc_frsrpc_FrsSendCommPktReq_data_handle,
	  { "Data Handle", "frsrpc.frsrpc_FrsSendCommPktReq.data_handle", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_frsrpc_frsrpc_FrsSendCommPktReq_data_name,
	  { "Data Name", "frsrpc.frsrpc_FrsSendCommPktReq.data_name", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_frsrpc_frsrpc_FrsSendCommPktReq_major,
	  { "Major", "frsrpc.frsrpc_FrsSendCommPktReq.major", FT_UINT32, BASE_DEC, VALS(frsrpc_frsrpc_CommPktMajor_vals), 0, NULL, HFILL }},
	{ &hf_frsrpc_frsrpc_FrsSendCommPktReq_memory_len,
	  { "Memory Len", "frsrpc.frsrpc_FrsSendCommPktReq.memory_len", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_frsrpc_frsrpc_FrsSendCommPktReq_minor,
	  { "Minor", "frsrpc.frsrpc_FrsSendCommPktReq.minor", FT_UINT32, BASE_DEC, VALS(frsrpc_frsrpc_CommPktMinor_vals), 0, NULL, HFILL }},
	{ &hf_frsrpc_frsrpc_FrsSendCommPktReq_pkt_len,
	  { "Pkt Len", "frsrpc.frsrpc_FrsSendCommPktReq.pkt_len", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_frsrpc_frsrpc_FrsSendCommPktReq_upk_len,
	  { "Upk Len", "frsrpc.frsrpc_FrsSendCommPktReq.upk_len", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_frsrpc_frsrpc_FrsSendCommPkt_req,
	  { "Req", "frsrpc.frsrpc_FrsSendCommPkt.req", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_frsrpc_frsrpc_FrsStartPromotionParent___ndr_guid_size,
	  { "Ndr Guid Size", "frsrpc.frsrpc_FrsStartPromotionParent.__ndr_guid_size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_frsrpc_frsrpc_FrsStartPromotionParent_connection_guid,
	  { "Connection Guid", "frsrpc.frsrpc_FrsStartPromotionParent.connection_guid", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_frsrpc_frsrpc_FrsStartPromotionParent_connection_guid_,
	  { "Subcontext length", "frsrpc.frsrpc_FrsStartPromotionParent.subcontext", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
	{ &hf_frsrpc_frsrpc_FrsStartPromotionParent_connection_name,
	  { "Connection Name", "frsrpc.frsrpc_FrsStartPromotionParent.connection_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_frsrpc_frsrpc_FrsStartPromotionParent_parent_account,
	  { "Parent Account", "frsrpc.frsrpc_FrsStartPromotionParent.parent_account", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_frsrpc_frsrpc_FrsStartPromotionParent_parent_guid,
	  { "Parent Guid", "frsrpc.frsrpc_FrsStartPromotionParent.parent_guid", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_frsrpc_frsrpc_FrsStartPromotionParent_parent_guid_,
	  { "Subcontext length", "frsrpc.frsrpc_FrsStartPromotionParent.subcontext", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
	{ &hf_frsrpc_frsrpc_FrsStartPromotionParent_parent_password,
	  { "Parent Password", "frsrpc.frsrpc_FrsStartPromotionParent.parent_password", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_frsrpc_frsrpc_FrsStartPromotionParent_partner_auth_level,
	  { "Partner Auth Level", "frsrpc.frsrpc_FrsStartPromotionParent.partner_auth_level", FT_UINT32, BASE_DEC, VALS(frsrpc_frsrpc_PartnerAuthLevel_vals), 0, NULL, HFILL }},
	{ &hf_frsrpc_frsrpc_FrsStartPromotionParent_partner_guid,
	  { "Partner Guid", "frsrpc.frsrpc_FrsStartPromotionParent.partner_guid", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_frsrpc_frsrpc_FrsStartPromotionParent_partner_guid_,
	  { "Subcontext length", "frsrpc.frsrpc_FrsStartPromotionParent.subcontext", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
	{ &hf_frsrpc_frsrpc_FrsStartPromotionParent_partner_name,
	  { "Partner Name", "frsrpc.frsrpc_FrsStartPromotionParent.partner_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_frsrpc_frsrpc_FrsStartPromotionParent_partner_princ_name,
	  { "Partner Princ Name", "frsrpc.frsrpc_FrsStartPromotionParent.partner_princ_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_frsrpc_frsrpc_FrsStartPromotionParent_replica_set_name,
	  { "Replica Set Name", "frsrpc.frsrpc_FrsStartPromotionParent.replica_set_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_frsrpc_frsrpc_FrsStartPromotionParent_replica_set_type,
	  { "Replica Set Type", "frsrpc.frsrpc_FrsStartPromotionParent.replica_set_type", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_frsrpc_frsrpc_FrsVerifyPromotionParent___ndr_guid_size,
	  { "Ndr Guid Size", "frsrpc.frsrpc_FrsVerifyPromotionParent.__ndr_guid_size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_frsrpc_frsrpc_FrsVerifyPromotionParent_parent_account,
	  { "Parent Account", "frsrpc.frsrpc_FrsVerifyPromotionParent.parent_account", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_frsrpc_frsrpc_FrsVerifyPromotionParent_parent_password,
	  { "Parent Password", "frsrpc.frsrpc_FrsVerifyPromotionParent.parent_password", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_frsrpc_frsrpc_FrsVerifyPromotionParent_partner_auth_level,
	  { "Partner Auth Level", "frsrpc.frsrpc_FrsVerifyPromotionParent.partner_auth_level", FT_UINT32, BASE_DEC, VALS(frsrpc_frsrpc_PartnerAuthLevel_vals), 0, NULL, HFILL }},
	{ &hf_frsrpc_frsrpc_FrsVerifyPromotionParent_replica_set_name,
	  { "Replica Set Name", "frsrpc.frsrpc_FrsVerifyPromotionParent.replica_set_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_frsrpc_frsrpc_FrsVerifyPromotionParent_replica_set_type,
	  { "Replica Set Type", "frsrpc.frsrpc_FrsVerifyPromotionParent.replica_set_type", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_frsrpc_opnum,
	  { "Operation", "frsrpc.opnum", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_frsrpc_werror,
	  { "Windows Error", "frsrpc.werror", FT_UINT32, BASE_HEX, VALS(WERR_errors), 0, NULL, HFILL }},
	};


	static gint *ett[] = {
		&ett_ChunkCtr,
		&ett_dcerpc_frsrpc,
		&ett_frsrpc_frsrpc_CommPktChunkGuidName,
		&ett_frsrpc_frsrpc_CommPktGSVN,
		&ett_frsrpc_frsrpc_CommPktCoCmdFlags,
		&ett_frsrpc_frsrpc_CommPktCoCmdIFlags,
		&ett_frsrpc_frsrpc_CommPktCoCmdContentCmd,
		&ett_frsrpc_frsrpc_CommPktChangeOrderCommand,
		&ett_frsrpc_frsrpc_CommPktDataExtensionChecksum,
		&ett_frsrpc_frsrpc_CommPktDataExtensionRetryTimeout,
		&ett_frsrpc_frsrpc_CommPktCoRecordExtensionWin2k,
		&ett_frsrpc_frsrpc_CommPktChangeOrderRecordExtension,
		&ett_frsrpc_frsrpc_CommPktChunkData,
		&ett_frsrpc_frsrpc_CommPktChunk,
		&ett_frsrpc_frsrpc_FrsSendCommPktReq,
	};

	proto_dcerpc_frsrpc = proto_register_protocol("File Replication Service", "FRSRPC", "frsrpc");
	proto_register_field_array(proto_dcerpc_frsrpc, hf, array_length (hf));
	proto_register_subtree_array(ett, array_length(ett));
}

void proto_reg_handoff_dcerpc_frsrpc(void)
{
	dcerpc_init_uuid(proto_dcerpc_frsrpc, ett_dcerpc_frsrpc,
		&uuid_dcerpc_frsrpc, ver_dcerpc_frsrpc,
		frsrpc_dissectors, hf_frsrpc_opnum);
}
