2 This filter was automatically generated
3 from /home/metze/devel/samba/4.0/master4-franky/librpc/idl/frstransblobs.idl and /home/metze/devel/samba/4.0/master4-franky/librpc/idl/frstransblobs.cnf.
5 Pidl is a perl based IDL compiler for DCE/RPC idl files.
6 It is maintained by the Samba team, not the Wireshark team.
7 Instructions on how to download and install Pidl can be
8 found at http://wiki.wireshark.org/Pidl
16 #pragma warning(disable:4005)
17 #pragma warning(disable:4013)
18 #pragma warning(disable:4018)
19 #pragma warning(disable:4101)
24 #include <epan/packet.h>
26 #include "packet-dcerpc.h"
27 #include "packet-dcerpc-nt.h"
28 #include "packet-windows-common.h"
29 #include "packet-dcerpc-frstransblobs.h"
31 /* Ett declarations */
32 static gint ett_dcerpc_frstransblobs = -1;
33 static gint ett_frstransblobs_compressedBlock = -1;
34 static gint ett_frstransblobs_compressedDataFormat = -1;
37 /* Header field declarations */
38 static gint hf_frstransblobs_compressedBlock_Block_Signature = -1;
39 static gint hf_frstransblobs_decode_compressedDataFormat_data = -1;
40 static gint hf_frstransblobs_compressedDataFormat_block = -1;
41 static gint hf_frstransblobs_compressedBlock_uncompressed_size = -1;
42 static gint hf_frstransblobs_compressedBlock_compressed_size = -1;
43 static gint hf_frstransblobs_compressedDataFormat_Signature = -1;
44 static gint hf_frstransblobs_compressedBlock_data = -1;
45 static gint hf_frstransblobs_opnum = -1;
47 static gint proto_dcerpc_frstransblobs = -1;
48 /* Version information */
51 static e_uuid_t uuid_dcerpc_frstransblobs = {
52 0x12345778, 0x1234, 0xbcde,
53 { 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01 }
55 static guint16 ver_dcerpc_frstransblobs = 0;
57 static int frstransblobs_dissect_element_compressedBlock_Block_Signature(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
58 static int frstransblobs_dissect_element_compressedBlock_Block_Signature_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
59 static int frstransblobs_dissect_element_compressedBlock_compressed_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
60 static int frstransblobs_dissect_element_compressedBlock_uncompressed_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
61 static int frstransblobs_dissect_element_compressedBlock_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
62 static int frstransblobs_dissect_element_compressedBlock_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
63 static int frstransblobs_dissect_element_compressedDataFormat_Signature(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
64 static int frstransblobs_dissect_element_compressedDataFormat_Signature_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
65 static int frstransblobs_dissect_element_compressedDataFormat_block(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
66 static int frstransblobs_dissect_element_decode_compressedDataFormat_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
70 /* IDL: [value("XBLO")] [charset(DOS)] uint8 Block_Signature[4]; */
71 /* IDL: uint32 compressed_size; */
72 /* IDL: uint32 uncompressed_size; */
73 /* IDL: uint8 data[compressed_size]; */
77 frstransblobs_dissect_element_compressedBlock_Block_Signature(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
80 for (i = 0; i < 4; i++)
81 offset = frstransblobs_dissect_element_compressedBlock_Block_Signature_(tvb, offset, pinfo, tree, drep);
87 frstransblobs_dissect_element_compressedBlock_Block_Signature_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
89 offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_frstransblobs_compressedBlock_Block_Signature, 0);
95 frstransblobs_dissect_element_compressedBlock_compressed_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
97 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_frstransblobs_compressedBlock_compressed_size, 0);
103 frstransblobs_dissect_element_compressedBlock_uncompressed_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
105 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_frstransblobs_compressedBlock_uncompressed_size, 0);
111 frstransblobs_dissect_element_compressedBlock_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
118 frstransblobs_dissect_element_compressedBlock_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
120 offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_frstransblobs_compressedBlock_data, 0);
126 frstransblobs_dissect_struct_compressedBlock(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
128 proto_item *item = NULL;
129 proto_tree *tree = NULL;
130 dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
137 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
138 tree = proto_item_add_subtree(item, ett_frstransblobs_compressedBlock);
141 offset = frstransblobs_dissect_element_compressedBlock_Block_Signature(tvb, offset, pinfo, tree, drep);
143 offset = frstransblobs_dissect_element_compressedBlock_compressed_size(tvb, offset, pinfo, tree, drep);
145 offset = frstransblobs_dissect_element_compressedBlock_uncompressed_size(tvb, offset, pinfo, tree, drep);
147 offset = frstransblobs_dissect_element_compressedBlock_data(tvb, offset, pinfo, tree, drep);
150 proto_item_set_len(item, offset-old_offset);
153 if (di->call_data->flags & DCERPC_IS_NDR64) {
162 /* IDL: [value("FRSX")] [charset(DOS)] uint8 Signature[4]; */
163 /* IDL: compressedBlock block; */
167 frstransblobs_dissect_element_compressedDataFormat_Signature(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
170 for (i = 0; i < 4; i++)
171 offset = frstransblobs_dissect_element_compressedDataFormat_Signature_(tvb, offset, pinfo, tree, drep);
177 frstransblobs_dissect_element_compressedDataFormat_Signature_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
179 offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_frstransblobs_compressedDataFormat_Signature, 0);
185 frstransblobs_dissect_element_compressedDataFormat_block(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
187 offset = frstransblobs_dissect_struct_compressedBlock(tvb,offset,pinfo,tree,drep,hf_frstransblobs_compressedDataFormat_block,0);
193 frstransblobs_dissect_struct_compressedDataFormat(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
195 proto_item *item = NULL;
196 proto_tree *tree = NULL;
197 dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
204 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
205 tree = proto_item_add_subtree(item, ett_frstransblobs_compressedDataFormat);
208 offset = frstransblobs_dissect_element_compressedDataFormat_Signature(tvb, offset, pinfo, tree, drep);
210 offset = frstransblobs_dissect_element_compressedDataFormat_block(tvb, offset, pinfo, tree, drep);
213 proto_item_set_len(item, offset-old_offset);
216 if (di->call_data->flags & DCERPC_IS_NDR64) {
224 frstransblobs_dissect_element_decode_compressedDataFormat_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
226 offset = frstransblobs_dissect_struct_compressedDataFormat(tvb,offset,pinfo,tree,drep,hf_frstransblobs_decode_compressedDataFormat_data,0);
231 /* IDL: void decode_compressedDataFormat( */
232 /* IDL: [in] compressedDataFormat data */
236 frstransblobs_dissect_decode_compressedDataFormat_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
238 pinfo->dcerpc_procedure_name="decode_compressedDataFormat";
243 frstransblobs_dissect_decode_compressedDataFormat_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
245 pinfo->dcerpc_procedure_name="decode_compressedDataFormat";
246 offset = frstransblobs_dissect_element_decode_compressedDataFormat_data(tvb, offset, pinfo, tree, drep);
247 offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
252 static dcerpc_sub_dissector frstransblobs_dissectors[] = {
253 { 0, "decode_compressedDataFormat",
254 frstransblobs_dissect_decode_compressedDataFormat_request, frstransblobs_dissect_decode_compressedDataFormat_response},
255 { 0, NULL, NULL, NULL }
258 void proto_register_dcerpc_frstransblobs(void)
260 static hf_register_info hf[] = {
261 { &hf_frstransblobs_compressedBlock_Block_Signature,
262 { "Block Signature", "frstransblobs.compressedBlock.Block_Signature", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
263 { &hf_frstransblobs_decode_compressedDataFormat_data,
264 { "Data", "frstransblobs.decode_compressedDataFormat.data", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
265 { &hf_frstransblobs_compressedDataFormat_block,
266 { "Block", "frstransblobs.compressedDataFormat.block", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
267 { &hf_frstransblobs_compressedBlock_uncompressed_size,
268 { "Uncompressed Size", "frstransblobs.compressedBlock.uncompressed_size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
269 { &hf_frstransblobs_compressedBlock_compressed_size,
270 { "Compressed Size", "frstransblobs.compressedBlock.compressed_size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
271 { &hf_frstransblobs_compressedDataFormat_Signature,
272 { "Signature", "frstransblobs.compressedDataFormat.Signature", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
273 { &hf_frstransblobs_compressedBlock_data,
274 { "Data", "frstransblobs.compressedBlock.data", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
275 { &hf_frstransblobs_opnum,
276 { "Operation", "frstransblobs.opnum", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
280 static gint *ett[] = {
281 &ett_dcerpc_frstransblobs,
282 &ett_frstransblobs_compressedBlock,
283 &ett_frstransblobs_compressedDataFormat,
286 proto_dcerpc_frstransblobs = proto_register_protocol("DFS-R blobs", "FRSTRANSBLOBS", "frstransblobs");
287 proto_register_field_array(proto_dcerpc_frstransblobs, hf, array_length (hf));
288 proto_register_subtree_array(ett, array_length(ett));
291 void proto_reg_handoff_dcerpc_frstransblobs(void)
293 dcerpc_init_uuid(proto_dcerpc_frstransblobs, ett_dcerpc_frstransblobs,
294 &uuid_dcerpc_frstransblobs, ver_dcerpc_frstransblobs,
295 frstransblobs_dissectors, hf_frstransblobs_opnum);