2 This file was automatically generated by Pidl
3 from mdssvc.idl and mdssvc.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 https://wiki.wireshark.org/Pidl
14 #include <wsutil/array.h>
15 #include <epan/packet.h>
18 #include "packet-dcerpc.h"
19 #include "packet-dcerpc-nt.h"
20 #include "packet-windows-common.h"
21 #include "packet-dcerpc-mdssvc.h"
22 void proto_register_dcerpc_mdssvc(void);
23 void proto_reg_handoff_dcerpc_mdssvc(void);
25 /* Ett declarations */
26 static int ett_dcerpc_mdssvc
;
27 static int ett_mdssvc_mdssvc_blob
;
30 /* Header field declarations */
31 static int hf_mdssvc_mdssvc_blob_length
;
32 static int hf_mdssvc_mdssvc_blob_size
;
33 static int hf_mdssvc_mdssvc_blob_spotlight_blob
;
34 static int hf_mdssvc_mdssvc_close_device_id
;
35 static int hf_mdssvc_mdssvc_close_in_handle
;
36 static int hf_mdssvc_mdssvc_close_out_handle
;
37 static int hf_mdssvc_mdssvc_close_status
;
38 static int hf_mdssvc_mdssvc_close_unkn1
;
39 static int hf_mdssvc_mdssvc_close_unkn2
;
40 static int hf_mdssvc_mdssvc_close_unkn3
;
41 static int hf_mdssvc_mdssvc_cmd_device_id
;
42 static int hf_mdssvc_mdssvc_cmd_flags
;
43 static int hf_mdssvc_mdssvc_cmd_fragment
;
44 static int hf_mdssvc_mdssvc_cmd_handle
;
45 static int hf_mdssvc_mdssvc_cmd_max_fragment_size1
;
46 static int hf_mdssvc_mdssvc_cmd_max_fragment_size2
;
47 static int hf_mdssvc_mdssvc_cmd_request_blob
;
48 static int hf_mdssvc_mdssvc_cmd_response_blob
;
49 static int hf_mdssvc_mdssvc_cmd_unkn1
;
50 static int hf_mdssvc_mdssvc_cmd_unkn3
;
51 static int hf_mdssvc_mdssvc_cmd_unkn4
;
52 static int hf_mdssvc_mdssvc_cmd_unkn5
;
53 static int hf_mdssvc_mdssvc_cmd_unkn6
;
54 static int hf_mdssvc_mdssvc_cmd_unkn7
;
55 static int hf_mdssvc_mdssvc_cmd_unkn8
;
56 static int hf_mdssvc_mdssvc_cmd_unkn9
;
57 static int hf_mdssvc_mdssvc_open_device_id
;
58 static int hf_mdssvc_mdssvc_open_handle
;
59 static int hf_mdssvc_mdssvc_open_share_mount_path
;
60 static int hf_mdssvc_mdssvc_open_share_name
;
61 static int hf_mdssvc_mdssvc_open_share_path
;
62 static int hf_mdssvc_mdssvc_open_unkn2
;
63 static int hf_mdssvc_mdssvc_open_unkn3
;
64 static int hf_mdssvc_mdssvc_unknown1_device_id
;
65 static int hf_mdssvc_mdssvc_unknown1_flags
;
66 static int hf_mdssvc_mdssvc_unknown1_gid
;
67 static int hf_mdssvc_mdssvc_unknown1_handle
;
68 static int hf_mdssvc_mdssvc_unknown1_status
;
69 static int hf_mdssvc_mdssvc_unknown1_uid
;
70 static int hf_mdssvc_mdssvc_unknown1_unkn1
;
71 static int hf_mdssvc_mdssvc_unknown1_unkn3
;
72 static int hf_mdssvc_mdssvc_unknown1_unkn4
;
73 static int hf_mdssvc_mdssvc_unknown1_unkn7
;
74 static int hf_mdssvc_opnum
;
76 static int proto_dcerpc_mdssvc
;
77 /* Version information */
80 static e_guid_t uuid_dcerpc_mdssvc
= {
81 0x885d85fb, 0xc754, 0x4062,
82 { 0xa0, 0xe7, 0x68, 0x72, 0xce, 0x00, 0x64, 0xf4 }
84 static uint16_t ver_dcerpc_mdssvc
= 2;
86 static int mdssvc_dissect_element_blob_length(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
);
87 static int mdssvc_dissect_element_blob_size(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
);
88 static int mdssvc_dissect_element_blob_spotlight_blob(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
);
89 static int mdssvc_dissect_element_open_device_id(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
);
90 static int mdssvc_dissect_element_open_device_id_(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
);
91 static int mdssvc_dissect_element_open_unkn2(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
);
92 static int mdssvc_dissect_element_open_unkn2_(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
);
93 static int mdssvc_dissect_element_open_unkn3(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
);
94 static int mdssvc_dissect_element_open_unkn3_(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
);
95 static int mdssvc_dissect_element_open_share_mount_path(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
);
96 static int mdssvc_dissect_element_open_share_name(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
);
97 static int mdssvc_dissect_element_open_share_path(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
);
98 static int mdssvc_dissect_element_open_handle(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
);
99 static int mdssvc_dissect_element_open_handle_(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
);
100 static int mdssvc_dissect_element_unknown1_handle(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
);
101 static int mdssvc_dissect_element_unknown1_handle_(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
);
102 static int mdssvc_dissect_element_unknown1_unkn1(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
);
103 static int mdssvc_dissect_element_unknown1_device_id(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
);
104 static int mdssvc_dissect_element_unknown1_unkn3(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
);
105 static int mdssvc_dissect_element_unknown1_unkn4(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
);
106 static int mdssvc_dissect_element_unknown1_uid(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
);
107 static int mdssvc_dissect_element_unknown1_gid(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
);
108 static int mdssvc_dissect_element_unknown1_status(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
);
109 static int mdssvc_dissect_element_unknown1_status_(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
);
110 static int mdssvc_dissect_element_unknown1_flags(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
);
111 static int mdssvc_dissect_element_unknown1_flags_(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
);
112 static int mdssvc_dissect_element_unknown1_unkn7(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
);
113 static int mdssvc_dissect_element_unknown1_unkn7_(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
);
114 static int mdssvc_dissect_element_cmd_handle(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
);
115 static int mdssvc_dissect_element_cmd_handle_(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
);
116 static int mdssvc_dissect_element_cmd_unkn1(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
);
117 static int mdssvc_dissect_element_cmd_device_id(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
);
118 static int mdssvc_dissect_element_cmd_unkn3(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
);
119 static int mdssvc_dissect_element_cmd_unkn4(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
);
120 static int mdssvc_dissect_element_cmd_flags(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
);
121 static int mdssvc_dissect_element_cmd_request_blob(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
);
122 static int mdssvc_dissect_element_cmd_unkn5(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
);
123 static int mdssvc_dissect_element_cmd_max_fragment_size1(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
);
124 static int mdssvc_dissect_element_cmd_unkn6(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
);
125 static int mdssvc_dissect_element_cmd_max_fragment_size2(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
);
126 static int mdssvc_dissect_element_cmd_unkn7(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
);
127 static int mdssvc_dissect_element_cmd_unkn8(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
);
128 static int mdssvc_dissect_element_cmd_fragment(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
);
129 static int mdssvc_dissect_element_cmd_fragment_(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
);
130 static int mdssvc_dissect_element_cmd_response_blob(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
);
131 static int mdssvc_dissect_element_cmd_response_blob_(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
);
132 static int mdssvc_dissect_element_cmd_unkn9(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
);
133 static int mdssvc_dissect_element_cmd_unkn9_(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
);
134 static int mdssvc_dissect_element_close_in_handle(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
);
135 static int mdssvc_dissect_element_close_in_handle_(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
);
136 static int mdssvc_dissect_element_close_unkn1(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
);
137 static int mdssvc_dissect_element_close_device_id(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
);
138 static int mdssvc_dissect_element_close_unkn2(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
);
139 static int mdssvc_dissect_element_close_unkn3(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
);
140 static int mdssvc_dissect_element_close_out_handle(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
);
141 static int mdssvc_dissect_element_close_out_handle_(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
);
142 static int mdssvc_dissect_element_close_status(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
);
143 static int mdssvc_dissect_element_close_status_(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
);
145 mdssvc_dissect_element_blob_spotlight_blob(tvbuff_t
*tvb
, int offset
, packet_info
*pinfo
, proto_tree
*tree
, dcerpc_info
* di
, uint8_t *drep _U_
)
147 tvbuff_t
*spotlight_tvb
;
148 dissector_handle_t spotlight_handle
;
149 if (di
->conformant_run
) {
152 spotlight_handle
= find_dissector("afp_spotlight");
153 if (spotlight_handle
)
155 spotlight_tvb
= tvb_new_subset_remaining(tvb
, offset
+ 16);
156 return (offset
+ 16 + call_dissector(spotlight_handle
, spotlight_tvb
, pinfo
, tree
));
163 /* IDL: uint32 length; */
164 /* IDL: uint32 size; */
165 /* IDL: [length_is(length)] [size_is(size)] [unique(1)] uint8 *spotlight_blob; */
169 mdssvc_dissect_element_blob_length(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
)
171 offset
= PIDL_dissect_uint32(tvb
, offset
, pinfo
, tree
, di
, drep
, hf_mdssvc_mdssvc_blob_length
, 0);
177 mdssvc_dissect_element_blob_size(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
)
179 offset
= PIDL_dissect_uint32(tvb
, offset
, pinfo
, tree
, di
, drep
, hf_mdssvc_mdssvc_blob_size
, 0);
185 mdssvc_dissect_struct_blob(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*parent_tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
, int hf_index _U_
, uint32_t param _U_
)
187 proto_item
*item
= NULL
;
188 proto_tree
*tree
= NULL
;
196 item
= proto_tree_add_item(parent_tree
, hf_index
, tvb
, offset
, -1, ENC_NA
);
197 tree
= proto_item_add_subtree(item
, ett_mdssvc_mdssvc_blob
);
200 offset
= mdssvc_dissect_element_blob_length(tvb
, offset
, pinfo
, tree
, di
, drep
);
202 offset
= mdssvc_dissect_element_blob_size(tvb
, offset
, pinfo
, tree
, di
, drep
);
204 offset
= mdssvc_dissect_element_blob_spotlight_blob(tvb
, offset
, pinfo
, tree
, di
, drep
);
207 proto_item_set_len(item
, offset
-old_offset
);
210 if (di
->call_data
->flags
& DCERPC_IS_NDR64
) {
218 mdssvc_dissect_element_open_device_id(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
)
220 offset
= dissect_ndr_toplevel_pointer(tvb
, offset
, pinfo
, tree
, di
, drep
, mdssvc_dissect_element_open_device_id_
, NDR_POINTER_REF
, "Pointer to Device Id (uint32)",hf_mdssvc_mdssvc_open_device_id
);
226 mdssvc_dissect_element_open_device_id_(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
)
228 offset
= PIDL_dissect_uint32(tvb
, offset
, pinfo
, tree
, di
, drep
, hf_mdssvc_mdssvc_open_device_id
, 0);
234 mdssvc_dissect_element_open_unkn2(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
)
236 offset
= dissect_ndr_toplevel_pointer(tvb
, offset
, pinfo
, tree
, di
, drep
, mdssvc_dissect_element_open_unkn2_
, NDR_POINTER_REF
, "Pointer to Unkn2 (uint32)",hf_mdssvc_mdssvc_open_unkn2
);
242 mdssvc_dissect_element_open_unkn2_(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
)
244 offset
= PIDL_dissect_uint32(tvb
, offset
, pinfo
, tree
, di
, drep
, hf_mdssvc_mdssvc_open_unkn2
, 0);
250 mdssvc_dissect_element_open_unkn3(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
)
252 offset
= dissect_ndr_toplevel_pointer(tvb
, offset
, pinfo
, tree
, di
, drep
, mdssvc_dissect_element_open_unkn3_
, NDR_POINTER_REF
, "Pointer to Unkn3 (uint32)",hf_mdssvc_mdssvc_open_unkn3
);
258 mdssvc_dissect_element_open_unkn3_(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
)
260 offset
= PIDL_dissect_uint32(tvb
, offset
, pinfo
, tree
, di
, drep
, hf_mdssvc_mdssvc_open_unkn3
, 0);
266 mdssvc_dissect_element_open_share_mount_path(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
)
270 offset
= dissect_ndr_cvstring(tvb
, offset
, pinfo
, tree
, di
, drep
, sizeof(uint8_t), hf_mdssvc_mdssvc_open_share_mount_path
, false, &data
);
271 proto_item_append_text(tree
, ": %s", data
);
277 mdssvc_dissect_element_open_share_name(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
)
281 offset
= dissect_ndr_cvstring(tvb
, offset
, pinfo
, tree
, di
, drep
, sizeof(uint8_t), hf_mdssvc_mdssvc_open_share_name
, false, &data
);
282 proto_item_append_text(tree
, ": %s", data
);
288 mdssvc_dissect_element_open_share_path(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
)
292 offset
= dissect_ndr_cvstring(tvb
, offset
, pinfo
, tree
, di
, drep
, sizeof(uint8_t), hf_mdssvc_mdssvc_open_share_path
, false, &data
);
293 proto_item_append_text(tree
, ": %s", data
);
299 mdssvc_dissect_element_open_handle(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
)
301 offset
= dissect_ndr_toplevel_pointer(tvb
, offset
, pinfo
, tree
, di
, drep
, mdssvc_dissect_element_open_handle_
, NDR_POINTER_REF
, "Pointer to Handle (policy_handle)",hf_mdssvc_mdssvc_open_handle
);
307 mdssvc_dissect_element_open_handle_(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
)
309 offset
= PIDL_dissect_policy_hnd(tvb
, offset
, pinfo
, tree
, di
, drep
, hf_mdssvc_mdssvc_open_handle
, 0);
314 /* IDL: void mdssvc_open( */
315 /* IDL: [in] [out] [ref] uint32 *device_id, */
316 /* IDL: [in] [out] [ref] uint32 *unkn2, */
317 /* IDL: [in] [out] [ref] uint32 *unkn3, */
318 /* IDL: [charset(UTF8)] [in] [size_is(1025)] uint8 share_mount_path[*], */
319 /* IDL: [charset(UTF8)] [in] [size_is(1025)] uint8 share_name[*], */
320 /* IDL: [charset(UTF8)] [out] [size_is(1025)] uint8 share_path[*], */
321 /* IDL: [out] [ref] policy_handle *handle */
325 mdssvc_dissect_open_response(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
)
327 di
->dcerpc_procedure_name
="open";
328 offset
= mdssvc_dissect_element_open_device_id(tvb
, offset
, pinfo
, tree
, di
, drep
);
329 offset
= dissect_deferred_pointers(pinfo
, tvb
, offset
, di
, drep
);
331 offset
= mdssvc_dissect_element_open_unkn2(tvb
, offset
, pinfo
, tree
, di
, drep
);
332 offset
= dissect_deferred_pointers(pinfo
, tvb
, offset
, di
, drep
);
334 offset
= mdssvc_dissect_element_open_unkn3(tvb
, offset
, pinfo
, tree
, di
, drep
);
335 offset
= dissect_deferred_pointers(pinfo
, tvb
, offset
, di
, drep
);
337 offset
= mdssvc_dissect_element_open_share_path(tvb
, offset
, pinfo
, tree
, di
, drep
);
338 offset
= dissect_deferred_pointers(pinfo
, tvb
, offset
, di
, drep
);
340 offset
= mdssvc_dissect_element_open_handle(tvb
, offset
, pinfo
, tree
, di
, drep
);
341 offset
= dissect_deferred_pointers(pinfo
, tvb
, offset
, di
, drep
);
347 mdssvc_dissect_open_request(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
)
349 di
->dcerpc_procedure_name
="open";
350 offset
= mdssvc_dissect_element_open_device_id(tvb
, offset
, pinfo
, tree
, di
, drep
);
351 offset
= dissect_deferred_pointers(pinfo
, tvb
, offset
, di
, drep
);
352 offset
= mdssvc_dissect_element_open_unkn2(tvb
, offset
, pinfo
, tree
, di
, drep
);
353 offset
= dissect_deferred_pointers(pinfo
, tvb
, offset
, di
, drep
);
354 offset
= mdssvc_dissect_element_open_unkn3(tvb
, offset
, pinfo
, tree
, di
, drep
);
355 offset
= dissect_deferred_pointers(pinfo
, tvb
, offset
, di
, drep
);
356 offset
= mdssvc_dissect_element_open_share_mount_path(tvb
, offset
, pinfo
, tree
, di
, drep
);
357 offset
= dissect_deferred_pointers(pinfo
, tvb
, offset
, di
, drep
);
358 offset
= mdssvc_dissect_element_open_share_name(tvb
, offset
, pinfo
, tree
, di
, drep
);
359 offset
= dissect_deferred_pointers(pinfo
, tvb
, offset
, di
, drep
);
364 mdssvc_dissect_element_unknown1_handle(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
)
366 offset
= dissect_ndr_toplevel_pointer(tvb
, offset
, pinfo
, tree
, di
, drep
, mdssvc_dissect_element_unknown1_handle_
, NDR_POINTER_REF
, "Pointer to Handle (policy_handle)",hf_mdssvc_mdssvc_unknown1_handle
);
372 mdssvc_dissect_element_unknown1_handle_(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
)
374 offset
= PIDL_dissect_policy_hnd(tvb
, offset
, pinfo
, tree
, di
, drep
, hf_mdssvc_mdssvc_unknown1_handle
, 0);
380 mdssvc_dissect_element_unknown1_unkn1(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
)
382 offset
= PIDL_dissect_uint32(tvb
, offset
, pinfo
, tree
, di
, drep
, hf_mdssvc_mdssvc_unknown1_unkn1
, 0);
388 mdssvc_dissect_element_unknown1_device_id(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
)
390 offset
= PIDL_dissect_uint32(tvb
, offset
, pinfo
, tree
, di
, drep
, hf_mdssvc_mdssvc_unknown1_device_id
, 0);
396 mdssvc_dissect_element_unknown1_unkn3(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
)
398 offset
= PIDL_dissect_uint32(tvb
, offset
, pinfo
, tree
, di
, drep
, hf_mdssvc_mdssvc_unknown1_unkn3
, 0);
404 mdssvc_dissect_element_unknown1_unkn4(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
)
406 offset
= PIDL_dissect_uint32(tvb
, offset
, pinfo
, tree
, di
, drep
, hf_mdssvc_mdssvc_unknown1_unkn4
, 0);
412 mdssvc_dissect_element_unknown1_uid(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
)
414 offset
= PIDL_dissect_uint32(tvb
, offset
, pinfo
, tree
, di
, drep
, hf_mdssvc_mdssvc_unknown1_uid
, 0);
420 mdssvc_dissect_element_unknown1_gid(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
)
422 offset
= PIDL_dissect_uint32(tvb
, offset
, pinfo
, tree
, di
, drep
, hf_mdssvc_mdssvc_unknown1_gid
, 0);
428 mdssvc_dissect_element_unknown1_status(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
)
430 offset
= dissect_ndr_toplevel_pointer(tvb
, offset
, pinfo
, tree
, di
, drep
, mdssvc_dissect_element_unknown1_status_
, NDR_POINTER_REF
, "Pointer to Status (uint32)",hf_mdssvc_mdssvc_unknown1_status
);
436 mdssvc_dissect_element_unknown1_status_(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
)
438 offset
= PIDL_dissect_uint32(tvb
, offset
, pinfo
, tree
, di
, drep
, hf_mdssvc_mdssvc_unknown1_status
, 0);
444 mdssvc_dissect_element_unknown1_flags(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
)
446 offset
= dissect_ndr_toplevel_pointer(tvb
, offset
, pinfo
, tree
, di
, drep
, mdssvc_dissect_element_unknown1_flags_
, NDR_POINTER_REF
, "Pointer to Flags (uint32)",hf_mdssvc_mdssvc_unknown1_flags
);
452 mdssvc_dissect_element_unknown1_flags_(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
)
454 offset
= PIDL_dissect_uint32(tvb
, offset
, pinfo
, tree
, di
, drep
, hf_mdssvc_mdssvc_unknown1_flags
, 0);
460 mdssvc_dissect_element_unknown1_unkn7(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
)
462 offset
= dissect_ndr_toplevel_pointer(tvb
, offset
, pinfo
, tree
, di
, drep
, mdssvc_dissect_element_unknown1_unkn7_
, NDR_POINTER_REF
, "Pointer to Unkn7 (uint32)",hf_mdssvc_mdssvc_unknown1_unkn7
);
468 mdssvc_dissect_element_unknown1_unkn7_(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
)
470 offset
= PIDL_dissect_uint32(tvb
, offset
, pinfo
, tree
, di
, drep
, hf_mdssvc_mdssvc_unknown1_unkn7
, 0);
475 /* IDL: void mdssvc_unknown1( */
476 /* IDL: [in] [ref] policy_handle *handle, */
477 /* IDL: [in] uint32 unkn1, */
478 /* IDL: [in] uint32 device_id, */
479 /* IDL: [in] uint32 unkn3, */
480 /* IDL: [in] uint32 unkn4, */
481 /* IDL: [in] uint32 uid, */
482 /* IDL: [in] uint32 gid, */
483 /* IDL: [out] [ref] uint32 *status, */
484 /* IDL: [out] [ref] uint32 *flags, */
485 /* IDL: [out] [ref] uint32 *unkn7 */
489 mdssvc_dissect_unknown1_response(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
)
491 di
->dcerpc_procedure_name
="unknown1";
492 offset
= mdssvc_dissect_element_unknown1_status(tvb
, offset
, pinfo
, tree
, di
, drep
);
493 offset
= dissect_deferred_pointers(pinfo
, tvb
, offset
, di
, drep
);
495 offset
= mdssvc_dissect_element_unknown1_flags(tvb
, offset
, pinfo
, tree
, di
, drep
);
496 offset
= dissect_deferred_pointers(pinfo
, tvb
, offset
, di
, drep
);
498 offset
= mdssvc_dissect_element_unknown1_unkn7(tvb
, offset
, pinfo
, tree
, di
, drep
);
499 offset
= dissect_deferred_pointers(pinfo
, tvb
, offset
, di
, drep
);
505 mdssvc_dissect_unknown1_request(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
)
507 di
->dcerpc_procedure_name
="unknown1";
508 offset
= mdssvc_dissect_element_unknown1_handle(tvb
, offset
, pinfo
, tree
, di
, drep
);
509 offset
= dissect_deferred_pointers(pinfo
, tvb
, offset
, di
, drep
);
510 offset
= mdssvc_dissect_element_unknown1_unkn1(tvb
, offset
, pinfo
, tree
, di
, drep
);
511 offset
= dissect_deferred_pointers(pinfo
, tvb
, offset
, di
, drep
);
512 offset
= mdssvc_dissect_element_unknown1_device_id(tvb
, offset
, pinfo
, tree
, di
, drep
);
513 offset
= dissect_deferred_pointers(pinfo
, tvb
, offset
, di
, drep
);
514 offset
= mdssvc_dissect_element_unknown1_unkn3(tvb
, offset
, pinfo
, tree
, di
, drep
);
515 offset
= dissect_deferred_pointers(pinfo
, tvb
, offset
, di
, drep
);
516 offset
= mdssvc_dissect_element_unknown1_unkn4(tvb
, offset
, pinfo
, tree
, di
, drep
);
517 offset
= dissect_deferred_pointers(pinfo
, tvb
, offset
, di
, drep
);
518 offset
= mdssvc_dissect_element_unknown1_uid(tvb
, offset
, pinfo
, tree
, di
, drep
);
519 offset
= dissect_deferred_pointers(pinfo
, tvb
, offset
, di
, drep
);
520 offset
= mdssvc_dissect_element_unknown1_gid(tvb
, offset
, pinfo
, tree
, di
, drep
);
521 offset
= dissect_deferred_pointers(pinfo
, tvb
, offset
, di
, drep
);
526 mdssvc_dissect_element_cmd_handle(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
)
528 offset
= dissect_ndr_toplevel_pointer(tvb
, offset
, pinfo
, tree
, di
, drep
, mdssvc_dissect_element_cmd_handle_
, NDR_POINTER_REF
, "Pointer to Handle (policy_handle)",hf_mdssvc_mdssvc_cmd_handle
);
534 mdssvc_dissect_element_cmd_handle_(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
)
536 offset
= PIDL_dissect_policy_hnd(tvb
, offset
, pinfo
, tree
, di
, drep
, hf_mdssvc_mdssvc_cmd_handle
, 0);
542 mdssvc_dissect_element_cmd_unkn1(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
)
544 offset
= PIDL_dissect_uint32(tvb
, offset
, pinfo
, tree
, di
, drep
, hf_mdssvc_mdssvc_cmd_unkn1
, 0);
550 mdssvc_dissect_element_cmd_device_id(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
)
552 offset
= PIDL_dissect_uint32(tvb
, offset
, pinfo
, tree
, di
, drep
, hf_mdssvc_mdssvc_cmd_device_id
, 0);
558 mdssvc_dissect_element_cmd_unkn3(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
)
560 offset
= PIDL_dissect_uint32(tvb
, offset
, pinfo
, tree
, di
, drep
, hf_mdssvc_mdssvc_cmd_unkn3
, 0);
566 mdssvc_dissect_element_cmd_unkn4(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
)
568 offset
= PIDL_dissect_uint32(tvb
, offset
, pinfo
, tree
, di
, drep
, hf_mdssvc_mdssvc_cmd_unkn4
, 0);
574 mdssvc_dissect_element_cmd_flags(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
)
576 offset
= PIDL_dissect_uint32(tvb
, offset
, pinfo
, tree
, di
, drep
, hf_mdssvc_mdssvc_cmd_flags
, 0);
582 mdssvc_dissect_element_cmd_request_blob(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
)
584 offset
= mdssvc_dissect_struct_blob(tvb
,offset
,pinfo
,tree
,di
,drep
,hf_mdssvc_mdssvc_cmd_request_blob
,0);
590 mdssvc_dissect_element_cmd_unkn5(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
)
592 offset
= PIDL_dissect_uint32(tvb
, offset
, pinfo
, tree
, di
, drep
, hf_mdssvc_mdssvc_cmd_unkn5
, 0);
598 mdssvc_dissect_element_cmd_max_fragment_size1(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
)
600 offset
= PIDL_dissect_uint32(tvb
, offset
, pinfo
, tree
, di
, drep
, hf_mdssvc_mdssvc_cmd_max_fragment_size1
, 0);
606 mdssvc_dissect_element_cmd_unkn6(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
)
608 offset
= PIDL_dissect_uint32(tvb
, offset
, pinfo
, tree
, di
, drep
, hf_mdssvc_mdssvc_cmd_unkn6
, 0);
614 mdssvc_dissect_element_cmd_max_fragment_size2(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
)
616 offset
= PIDL_dissect_uint32(tvb
, offset
, pinfo
, tree
, di
, drep
, hf_mdssvc_mdssvc_cmd_max_fragment_size2
, 0);
622 mdssvc_dissect_element_cmd_unkn7(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
)
624 offset
= PIDL_dissect_uint32(tvb
, offset
, pinfo
, tree
, di
, drep
, hf_mdssvc_mdssvc_cmd_unkn7
, 0);
630 mdssvc_dissect_element_cmd_unkn8(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
)
632 offset
= PIDL_dissect_uint32(tvb
, offset
, pinfo
, tree
, di
, drep
, hf_mdssvc_mdssvc_cmd_unkn8
, 0);
638 mdssvc_dissect_element_cmd_fragment(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
)
640 offset
= dissect_ndr_toplevel_pointer(tvb
, offset
, pinfo
, tree
, di
, drep
, mdssvc_dissect_element_cmd_fragment_
, NDR_POINTER_REF
, "Pointer to Fragment (uint32)",hf_mdssvc_mdssvc_cmd_fragment
);
646 mdssvc_dissect_element_cmd_fragment_(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
)
648 offset
= PIDL_dissect_uint32(tvb
, offset
, pinfo
, tree
, di
, drep
, hf_mdssvc_mdssvc_cmd_fragment
, 0);
654 mdssvc_dissect_element_cmd_response_blob(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
)
656 offset
= dissect_ndr_toplevel_pointer(tvb
, offset
, pinfo
, tree
, di
, drep
, mdssvc_dissect_element_cmd_response_blob_
, NDR_POINTER_REF
, "Pointer to Response Blob (mdssvc_blob)",hf_mdssvc_mdssvc_cmd_response_blob
);
662 mdssvc_dissect_element_cmd_response_blob_(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
)
664 offset
= mdssvc_dissect_struct_blob(tvb
,offset
,pinfo
,tree
,di
,drep
,hf_mdssvc_mdssvc_cmd_response_blob
,0);
670 mdssvc_dissect_element_cmd_unkn9(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
)
672 offset
= dissect_ndr_toplevel_pointer(tvb
, offset
, pinfo
, tree
, di
, drep
, mdssvc_dissect_element_cmd_unkn9_
, NDR_POINTER_REF
, "Pointer to Unkn9 (uint32)",hf_mdssvc_mdssvc_cmd_unkn9
);
678 mdssvc_dissect_element_cmd_unkn9_(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
)
680 offset
= PIDL_dissect_uint32(tvb
, offset
, pinfo
, tree
, di
, drep
, hf_mdssvc_mdssvc_cmd_unkn9
, 0);
685 /* IDL: void mdssvc_cmd( */
686 /* IDL: [in] [ref] policy_handle *handle, */
687 /* IDL: [in] uint32 unkn1, */
688 /* IDL: [in] uint32 device_id, */
689 /* IDL: [in] uint32 unkn3, */
690 /* IDL: [in] uint32 unkn4, */
691 /* IDL: [in] uint32 flags, */
692 /* IDL: [in] mdssvc_blob request_blob, */
693 /* IDL: [in] uint32 unkn5, */
694 /* IDL: [in] uint32 max_fragment_size1, */
695 /* IDL: [in] uint32 unkn6, */
696 /* IDL: [in] uint32 max_fragment_size2, */
697 /* IDL: [in] uint32 unkn7, */
698 /* IDL: [in] uint32 unkn8, */
699 /* IDL: [out] [ref] uint32 *fragment, */
700 /* IDL: [out] [ref] mdssvc_blob *response_blob, */
701 /* IDL: [out] [ref] uint32 *unkn9 */
705 mdssvc_dissect_cmd_response(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
)
707 di
->dcerpc_procedure_name
="cmd";
708 offset
= mdssvc_dissect_element_cmd_fragment(tvb
, offset
, pinfo
, tree
, di
, drep
);
709 offset
= dissect_deferred_pointers(pinfo
, tvb
, offset
, di
, drep
);
711 offset
= mdssvc_dissect_element_cmd_response_blob(tvb
, offset
, pinfo
, tree
, di
, drep
);
712 offset
= dissect_deferred_pointers(pinfo
, tvb
, offset
, di
, drep
);
714 offset
= mdssvc_dissect_element_cmd_unkn9(tvb
, offset
, pinfo
, tree
, di
, drep
);
715 offset
= dissect_deferred_pointers(pinfo
, tvb
, offset
, di
, drep
);
721 mdssvc_dissect_cmd_request(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
)
723 di
->dcerpc_procedure_name
="cmd";
724 offset
= mdssvc_dissect_element_cmd_handle(tvb
, offset
, pinfo
, tree
, di
, drep
);
725 offset
= dissect_deferred_pointers(pinfo
, tvb
, offset
, di
, drep
);
726 offset
= mdssvc_dissect_element_cmd_unkn1(tvb
, offset
, pinfo
, tree
, di
, drep
);
727 offset
= dissect_deferred_pointers(pinfo
, tvb
, offset
, di
, drep
);
728 offset
= mdssvc_dissect_element_cmd_device_id(tvb
, offset
, pinfo
, tree
, di
, drep
);
729 offset
= dissect_deferred_pointers(pinfo
, tvb
, offset
, di
, drep
);
730 offset
= mdssvc_dissect_element_cmd_unkn3(tvb
, offset
, pinfo
, tree
, di
, drep
);
731 offset
= dissect_deferred_pointers(pinfo
, tvb
, offset
, di
, drep
);
732 offset
= mdssvc_dissect_element_cmd_unkn4(tvb
, offset
, pinfo
, tree
, di
, drep
);
733 offset
= dissect_deferred_pointers(pinfo
, tvb
, offset
, di
, drep
);
734 offset
= mdssvc_dissect_element_cmd_flags(tvb
, offset
, pinfo
, tree
, di
, drep
);
735 offset
= dissect_deferred_pointers(pinfo
, tvb
, offset
, di
, drep
);
736 offset
= mdssvc_dissect_element_cmd_request_blob(tvb
, offset
, pinfo
, tree
, di
, drep
);
737 offset
= dissect_deferred_pointers(pinfo
, tvb
, offset
, di
, drep
);
738 offset
= mdssvc_dissect_element_cmd_unkn5(tvb
, offset
, pinfo
, tree
, di
, drep
);
739 offset
= dissect_deferred_pointers(pinfo
, tvb
, offset
, di
, drep
);
740 offset
= mdssvc_dissect_element_cmd_max_fragment_size1(tvb
, offset
, pinfo
, tree
, di
, drep
);
741 offset
= dissect_deferred_pointers(pinfo
, tvb
, offset
, di
, drep
);
742 offset
= mdssvc_dissect_element_cmd_unkn6(tvb
, offset
, pinfo
, tree
, di
, drep
);
743 offset
= dissect_deferred_pointers(pinfo
, tvb
, offset
, di
, drep
);
744 offset
= mdssvc_dissect_element_cmd_max_fragment_size2(tvb
, offset
, pinfo
, tree
, di
, drep
);
745 offset
= dissect_deferred_pointers(pinfo
, tvb
, offset
, di
, drep
);
746 offset
= mdssvc_dissect_element_cmd_unkn7(tvb
, offset
, pinfo
, tree
, di
, drep
);
747 offset
= dissect_deferred_pointers(pinfo
, tvb
, offset
, di
, drep
);
748 offset
= mdssvc_dissect_element_cmd_unkn8(tvb
, offset
, pinfo
, tree
, di
, drep
);
749 offset
= dissect_deferred_pointers(pinfo
, tvb
, offset
, di
, drep
);
754 mdssvc_dissect_element_close_in_handle(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
)
756 offset
= dissect_ndr_toplevel_pointer(tvb
, offset
, pinfo
, tree
, di
, drep
, mdssvc_dissect_element_close_in_handle_
, NDR_POINTER_REF
, "Pointer to In Handle (policy_handle)",hf_mdssvc_mdssvc_close_in_handle
);
762 mdssvc_dissect_element_close_in_handle_(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
)
764 offset
= PIDL_dissect_policy_hnd(tvb
, offset
, pinfo
, tree
, di
, drep
, hf_mdssvc_mdssvc_close_in_handle
, 0);
770 mdssvc_dissect_element_close_unkn1(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
)
772 offset
= PIDL_dissect_uint32(tvb
, offset
, pinfo
, tree
, di
, drep
, hf_mdssvc_mdssvc_close_unkn1
, 0);
778 mdssvc_dissect_element_close_device_id(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
)
780 offset
= PIDL_dissect_uint32(tvb
, offset
, pinfo
, tree
, di
, drep
, hf_mdssvc_mdssvc_close_device_id
, 0);
786 mdssvc_dissect_element_close_unkn2(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
)
788 offset
= PIDL_dissect_uint32(tvb
, offset
, pinfo
, tree
, di
, drep
, hf_mdssvc_mdssvc_close_unkn2
, 0);
794 mdssvc_dissect_element_close_unkn3(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
)
796 offset
= PIDL_dissect_uint32(tvb
, offset
, pinfo
, tree
, di
, drep
, hf_mdssvc_mdssvc_close_unkn3
, 0);
802 mdssvc_dissect_element_close_out_handle(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
)
804 offset
= dissect_ndr_toplevel_pointer(tvb
, offset
, pinfo
, tree
, di
, drep
, mdssvc_dissect_element_close_out_handle_
, NDR_POINTER_REF
, "Pointer to Out Handle (policy_handle)",hf_mdssvc_mdssvc_close_out_handle
);
810 mdssvc_dissect_element_close_out_handle_(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
)
812 offset
= PIDL_dissect_policy_hnd(tvb
, offset
, pinfo
, tree
, di
, drep
, hf_mdssvc_mdssvc_close_out_handle
, 0);
818 mdssvc_dissect_element_close_status(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
)
820 offset
= dissect_ndr_toplevel_pointer(tvb
, offset
, pinfo
, tree
, di
, drep
, mdssvc_dissect_element_close_status_
, NDR_POINTER_REF
, "Pointer to Status (uint32)",hf_mdssvc_mdssvc_close_status
);
826 mdssvc_dissect_element_close_status_(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
)
828 offset
= PIDL_dissect_uint32(tvb
, offset
, pinfo
, tree
, di
, drep
, hf_mdssvc_mdssvc_close_status
, 0);
833 /* IDL: void mdssvc_close( */
834 /* IDL: [in] [ref] policy_handle *in_handle, */
835 /* IDL: [in] uint32 unkn1, */
836 /* IDL: [in] uint32 device_id, */
837 /* IDL: [in] uint32 unkn2, */
838 /* IDL: [in] uint32 unkn3, */
839 /* IDL: [out] [ref] policy_handle *out_handle, */
840 /* IDL: [out] [ref] uint32 *status */
844 mdssvc_dissect_close_response(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
)
846 di
->dcerpc_procedure_name
="close";
847 offset
= mdssvc_dissect_element_close_out_handle(tvb
, offset
, pinfo
, tree
, di
, drep
);
848 offset
= dissect_deferred_pointers(pinfo
, tvb
, offset
, di
, drep
);
850 offset
= mdssvc_dissect_element_close_status(tvb
, offset
, pinfo
, tree
, di
, drep
);
851 offset
= dissect_deferred_pointers(pinfo
, tvb
, offset
, di
, drep
);
857 mdssvc_dissect_close_request(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
)
859 di
->dcerpc_procedure_name
="close";
860 offset
= mdssvc_dissect_element_close_in_handle(tvb
, offset
, pinfo
, tree
, di
, drep
);
861 offset
= dissect_deferred_pointers(pinfo
, tvb
, offset
, di
, drep
);
862 offset
= mdssvc_dissect_element_close_unkn1(tvb
, offset
, pinfo
, tree
, di
, drep
);
863 offset
= dissect_deferred_pointers(pinfo
, tvb
, offset
, di
, drep
);
864 offset
= mdssvc_dissect_element_close_device_id(tvb
, offset
, pinfo
, tree
, di
, drep
);
865 offset
= dissect_deferred_pointers(pinfo
, tvb
, offset
, di
, drep
);
866 offset
= mdssvc_dissect_element_close_unkn2(tvb
, offset
, pinfo
, tree
, di
, drep
);
867 offset
= dissect_deferred_pointers(pinfo
, tvb
, offset
, di
, drep
);
868 offset
= mdssvc_dissect_element_close_unkn3(tvb
, offset
, pinfo
, tree
, di
, drep
);
869 offset
= dissect_deferred_pointers(pinfo
, tvb
, offset
, di
, drep
);
874 static const dcerpc_sub_dissector mdssvc_dissectors
[] = {
876 mdssvc_dissect_open_request
, mdssvc_dissect_open_response
},
878 mdssvc_dissect_unknown1_request
, mdssvc_dissect_unknown1_response
},
880 mdssvc_dissect_cmd_request
, mdssvc_dissect_cmd_response
},
882 mdssvc_dissect_close_request
, mdssvc_dissect_close_response
},
883 { 0, NULL
, NULL
, NULL
}
886 void proto_register_dcerpc_mdssvc(void)
888 static hf_register_info hf
[] = {
889 { &hf_mdssvc_mdssvc_blob_length
,
890 { "Length", "mdssvc.mdssvc_blob.length", FT_UINT32
, BASE_DEC
, NULL
, 0, NULL
, HFILL
}},
891 { &hf_mdssvc_mdssvc_blob_size
,
892 { "Size", "mdssvc.mdssvc_blob.size", FT_UINT32
, BASE_DEC
, NULL
, 0, NULL
, HFILL
}},
893 { &hf_mdssvc_mdssvc_blob_spotlight_blob
,
894 { "Spotlight Blob", "mdssvc.mdssvc_blob.spotlight_blob", FT_UINT8
, BASE_DEC
, NULL
, 0, NULL
, HFILL
}},
895 { &hf_mdssvc_mdssvc_close_device_id
,
896 { "Device Id", "mdssvc.mdssvc_close.device_id", FT_UINT32
, BASE_DEC
, NULL
, 0, NULL
, HFILL
}},
897 { &hf_mdssvc_mdssvc_close_in_handle
,
898 { "In Handle", "mdssvc.mdssvc_close.in_handle", FT_BYTES
, BASE_NONE
, NULL
, 0, NULL
, HFILL
}},
899 { &hf_mdssvc_mdssvc_close_out_handle
,
900 { "Out Handle", "mdssvc.mdssvc_close.out_handle", FT_BYTES
, BASE_NONE
, NULL
, 0, NULL
, HFILL
}},
901 { &hf_mdssvc_mdssvc_close_status
,
902 { "Status", "mdssvc.mdssvc_close.status", FT_UINT32
, BASE_DEC
, NULL
, 0, NULL
, HFILL
}},
903 { &hf_mdssvc_mdssvc_close_unkn1
,
904 { "Unkn1", "mdssvc.mdssvc_close.unkn1", FT_UINT32
, BASE_DEC
, NULL
, 0, NULL
, HFILL
}},
905 { &hf_mdssvc_mdssvc_close_unkn2
,
906 { "Unkn2", "mdssvc.mdssvc_close.unkn2", FT_UINT32
, BASE_DEC
, NULL
, 0, NULL
, HFILL
}},
907 { &hf_mdssvc_mdssvc_close_unkn3
,
908 { "Unkn3", "mdssvc.mdssvc_close.unkn3", FT_UINT32
, BASE_DEC
, NULL
, 0, NULL
, HFILL
}},
909 { &hf_mdssvc_mdssvc_cmd_device_id
,
910 { "Device Id", "mdssvc.mdssvc_cmd.device_id", FT_UINT32
, BASE_DEC
, NULL
, 0, NULL
, HFILL
}},
911 { &hf_mdssvc_mdssvc_cmd_flags
,
912 { "Flags", "mdssvc.mdssvc_cmd.flags", FT_UINT32
, BASE_DEC
, NULL
, 0, NULL
, HFILL
}},
913 { &hf_mdssvc_mdssvc_cmd_fragment
,
914 { "Fragment", "mdssvc.mdssvc_cmd.fragment", FT_UINT32
, BASE_DEC
, NULL
, 0, NULL
, HFILL
}},
915 { &hf_mdssvc_mdssvc_cmd_handle
,
916 { "Handle", "mdssvc.mdssvc_cmd.handle", FT_BYTES
, BASE_NONE
, NULL
, 0, NULL
, HFILL
}},
917 { &hf_mdssvc_mdssvc_cmd_max_fragment_size1
,
918 { "Max Fragment Size1", "mdssvc.mdssvc_cmd.max_fragment_size1", FT_UINT32
, BASE_DEC
, NULL
, 0, NULL
, HFILL
}},
919 { &hf_mdssvc_mdssvc_cmd_max_fragment_size2
,
920 { "Max Fragment Size2", "mdssvc.mdssvc_cmd.max_fragment_size2", FT_UINT32
, BASE_DEC
, NULL
, 0, NULL
, HFILL
}},
921 { &hf_mdssvc_mdssvc_cmd_request_blob
,
922 { "Request Blob", "mdssvc.mdssvc_cmd.request_blob", FT_NONE
, BASE_NONE
, NULL
, 0, NULL
, HFILL
}},
923 { &hf_mdssvc_mdssvc_cmd_response_blob
,
924 { "Response Blob", "mdssvc.mdssvc_cmd.response_blob", FT_NONE
, BASE_NONE
, NULL
, 0, NULL
, HFILL
}},
925 { &hf_mdssvc_mdssvc_cmd_unkn1
,
926 { "Unkn1", "mdssvc.mdssvc_cmd.unkn1", FT_UINT32
, BASE_DEC
, NULL
, 0, NULL
, HFILL
}},
927 { &hf_mdssvc_mdssvc_cmd_unkn3
,
928 { "Unkn3", "mdssvc.mdssvc_cmd.unkn3", FT_UINT32
, BASE_DEC
, NULL
, 0, NULL
, HFILL
}},
929 { &hf_mdssvc_mdssvc_cmd_unkn4
,
930 { "Unkn4", "mdssvc.mdssvc_cmd.unkn4", FT_UINT32
, BASE_DEC
, NULL
, 0, NULL
, HFILL
}},
931 { &hf_mdssvc_mdssvc_cmd_unkn5
,
932 { "Unkn5", "mdssvc.mdssvc_cmd.unkn5", FT_UINT32
, BASE_DEC
, NULL
, 0, NULL
, HFILL
}},
933 { &hf_mdssvc_mdssvc_cmd_unkn6
,
934 { "Unkn6", "mdssvc.mdssvc_cmd.unkn6", FT_UINT32
, BASE_DEC
, NULL
, 0, NULL
, HFILL
}},
935 { &hf_mdssvc_mdssvc_cmd_unkn7
,
936 { "Unkn7", "mdssvc.mdssvc_cmd.unkn7", FT_UINT32
, BASE_DEC
, NULL
, 0, NULL
, HFILL
}},
937 { &hf_mdssvc_mdssvc_cmd_unkn8
,
938 { "Unkn8", "mdssvc.mdssvc_cmd.unkn8", FT_UINT32
, BASE_DEC
, NULL
, 0, NULL
, HFILL
}},
939 { &hf_mdssvc_mdssvc_cmd_unkn9
,
940 { "Unkn9", "mdssvc.mdssvc_cmd.unkn9", FT_UINT32
, BASE_DEC
, NULL
, 0, NULL
, HFILL
}},
941 { &hf_mdssvc_mdssvc_open_device_id
,
942 { "Device Id", "mdssvc.mdssvc_open.device_id", FT_UINT32
, BASE_DEC
, NULL
, 0, NULL
, HFILL
}},
943 { &hf_mdssvc_mdssvc_open_handle
,
944 { "Handle", "mdssvc.mdssvc_open.handle", FT_BYTES
, BASE_NONE
, NULL
, 0, NULL
, HFILL
}},
945 { &hf_mdssvc_mdssvc_open_share_mount_path
,
946 { "Share Mount Path", "mdssvc.mdssvc_open.share_mount_path", FT_STRING
, BASE_NONE
, NULL
, 0, NULL
, HFILL
}},
947 { &hf_mdssvc_mdssvc_open_share_name
,
948 { "Share Name", "mdssvc.mdssvc_open.share_name", FT_STRING
, BASE_NONE
, NULL
, 0, NULL
, HFILL
}},
949 { &hf_mdssvc_mdssvc_open_share_path
,
950 { "Share Path", "mdssvc.mdssvc_open.share_path", FT_STRING
, BASE_NONE
, NULL
, 0, NULL
, HFILL
}},
951 { &hf_mdssvc_mdssvc_open_unkn2
,
952 { "Unkn2", "mdssvc.mdssvc_open.unkn2", FT_UINT32
, BASE_DEC
, NULL
, 0, NULL
, HFILL
}},
953 { &hf_mdssvc_mdssvc_open_unkn3
,
954 { "Unkn3", "mdssvc.mdssvc_open.unkn3", FT_UINT32
, BASE_DEC
, NULL
, 0, NULL
, HFILL
}},
955 { &hf_mdssvc_mdssvc_unknown1_device_id
,
956 { "Device Id", "mdssvc.mdssvc_unknown1.device_id", FT_UINT32
, BASE_DEC
, NULL
, 0, NULL
, HFILL
}},
957 { &hf_mdssvc_mdssvc_unknown1_flags
,
958 { "Flags", "mdssvc.mdssvc_unknown1.flags", FT_UINT32
, BASE_DEC
, NULL
, 0, NULL
, HFILL
}},
959 { &hf_mdssvc_mdssvc_unknown1_gid
,
960 { "Gid", "mdssvc.mdssvc_unknown1.gid", FT_UINT32
, BASE_DEC
, NULL
, 0, NULL
, HFILL
}},
961 { &hf_mdssvc_mdssvc_unknown1_handle
,
962 { "Handle", "mdssvc.mdssvc_unknown1.handle", FT_BYTES
, BASE_NONE
, NULL
, 0, NULL
, HFILL
}},
963 { &hf_mdssvc_mdssvc_unknown1_status
,
964 { "Status", "mdssvc.mdssvc_unknown1.status", FT_UINT32
, BASE_DEC
, NULL
, 0, NULL
, HFILL
}},
965 { &hf_mdssvc_mdssvc_unknown1_uid
,
966 { "Uid", "mdssvc.mdssvc_unknown1.uid", FT_UINT32
, BASE_DEC
, NULL
, 0, NULL
, HFILL
}},
967 { &hf_mdssvc_mdssvc_unknown1_unkn1
,
968 { "Unkn1", "mdssvc.mdssvc_unknown1.unkn1", FT_UINT32
, BASE_DEC
, NULL
, 0, NULL
, HFILL
}},
969 { &hf_mdssvc_mdssvc_unknown1_unkn3
,
970 { "Unkn3", "mdssvc.mdssvc_unknown1.unkn3", FT_UINT32
, BASE_DEC
, NULL
, 0, NULL
, HFILL
}},
971 { &hf_mdssvc_mdssvc_unknown1_unkn4
,
972 { "Unkn4", "mdssvc.mdssvc_unknown1.unkn4", FT_UINT32
, BASE_DEC
, NULL
, 0, NULL
, HFILL
}},
973 { &hf_mdssvc_mdssvc_unknown1_unkn7
,
974 { "Unkn7", "mdssvc.mdssvc_unknown1.unkn7", FT_UINT32
, BASE_DEC
, NULL
, 0, NULL
, HFILL
}},
976 { "Operation", "mdssvc.opnum", FT_UINT16
, BASE_DEC
, NULL
, 0, NULL
, HFILL
}},
980 static int *ett
[] = {
982 &ett_mdssvc_mdssvc_blob
,
985 proto_dcerpc_mdssvc
= proto_register_protocol("Spotlight metadata search service", "MDSSVC", "mdssvc");
986 proto_register_field_array(proto_dcerpc_mdssvc
, hf
, array_length (hf
));
987 proto_register_subtree_array(ett
, array_length(ett
));
990 void proto_reg_handoff_dcerpc_mdssvc(void)
992 dcerpc_init_uuid(proto_dcerpc_mdssvc
, ett_dcerpc_mdssvc
,
993 &uuid_dcerpc_mdssvc
, ver_dcerpc_mdssvc
,
994 mdssvc_dissectors
, hf_mdssvc_opnum
);