/src/wireshark/epan/dissectors/packet-dcerpc-mdssvc.c
Line | Count | Source |
1 | | /* DO NOT EDIT |
2 | | This file was automatically generated by Pidl |
3 | | from mdssvc.idl and mdssvc.cnf. |
4 | | |
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 |
9 | | */ |
10 | | |
11 | | |
12 | | #include "config.h" |
13 | | #include <string.h> |
14 | | #include <wsutil/array.h> |
15 | | #include <epan/packet.h> |
16 | | #include <epan/tfs.h> |
17 | | |
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); |
24 | | |
25 | | /* Ett declarations */ |
26 | | static int ett_dcerpc_mdssvc; |
27 | | static int ett_mdssvc_mdssvc_blob; |
28 | | |
29 | | |
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; |
75 | | |
76 | | static int proto_dcerpc_mdssvc; |
77 | | /* Version information */ |
78 | | |
79 | | |
80 | | static e_guid_t uuid_dcerpc_mdssvc = { |
81 | | 0x885d85fb, 0xc754, 0x4062, |
82 | | { 0xa0, 0xe7, 0x68, 0x72, 0xce, 0x00, 0x64, 0xf4 } |
83 | | }; |
84 | | static uint16_t ver_dcerpc_mdssvc = 2; |
85 | | |
86 | | static unsigned mdssvc_dissect_element_blob_length(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_); |
87 | | static unsigned mdssvc_dissect_element_blob_size(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_); |
88 | | static unsigned mdssvc_dissect_element_blob_spotlight_blob(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_); |
89 | | static unsigned mdssvc_dissect_element_open_device_id(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_); |
90 | | static unsigned mdssvc_dissect_element_open_device_id_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_); |
91 | | static unsigned mdssvc_dissect_element_open_unkn2(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_); |
92 | | static unsigned mdssvc_dissect_element_open_unkn2_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_); |
93 | | static unsigned mdssvc_dissect_element_open_unkn3(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_); |
94 | | static unsigned mdssvc_dissect_element_open_unkn3_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_); |
95 | | static unsigned mdssvc_dissect_element_open_share_mount_path(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_); |
96 | | static unsigned mdssvc_dissect_element_open_share_name(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_); |
97 | | static unsigned mdssvc_dissect_element_open_share_path(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_); |
98 | | static unsigned mdssvc_dissect_element_open_handle(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_); |
99 | | static unsigned mdssvc_dissect_element_open_handle_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_); |
100 | | static unsigned mdssvc_dissect_element_unknown1_handle(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_); |
101 | | static unsigned mdssvc_dissect_element_unknown1_handle_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_); |
102 | | static unsigned mdssvc_dissect_element_unknown1_unkn1(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_); |
103 | | static unsigned mdssvc_dissect_element_unknown1_device_id(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_); |
104 | | static unsigned mdssvc_dissect_element_unknown1_unkn3(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_); |
105 | | static unsigned mdssvc_dissect_element_unknown1_unkn4(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_); |
106 | | static unsigned mdssvc_dissect_element_unknown1_uid(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_); |
107 | | static unsigned mdssvc_dissect_element_unknown1_gid(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_); |
108 | | static unsigned mdssvc_dissect_element_unknown1_status(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_); |
109 | | static unsigned mdssvc_dissect_element_unknown1_status_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_); |
110 | | static unsigned mdssvc_dissect_element_unknown1_flags(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_); |
111 | | static unsigned mdssvc_dissect_element_unknown1_flags_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_); |
112 | | static unsigned mdssvc_dissect_element_unknown1_unkn7(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_); |
113 | | static unsigned mdssvc_dissect_element_unknown1_unkn7_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_); |
114 | | static unsigned mdssvc_dissect_element_cmd_handle(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_); |
115 | | static unsigned mdssvc_dissect_element_cmd_handle_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_); |
116 | | static unsigned mdssvc_dissect_element_cmd_unkn1(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_); |
117 | | static unsigned mdssvc_dissect_element_cmd_device_id(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_); |
118 | | static unsigned mdssvc_dissect_element_cmd_unkn3(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_); |
119 | | static unsigned mdssvc_dissect_element_cmd_unkn4(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_); |
120 | | static unsigned mdssvc_dissect_element_cmd_flags(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_); |
121 | | static unsigned mdssvc_dissect_element_cmd_request_blob(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_); |
122 | | static unsigned mdssvc_dissect_element_cmd_unkn5(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_); |
123 | | static unsigned mdssvc_dissect_element_cmd_max_fragment_size1(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_); |
124 | | static unsigned mdssvc_dissect_element_cmd_unkn6(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_); |
125 | | static unsigned mdssvc_dissect_element_cmd_max_fragment_size2(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_); |
126 | | static unsigned mdssvc_dissect_element_cmd_unkn7(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_); |
127 | | static unsigned mdssvc_dissect_element_cmd_unkn8(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_); |
128 | | static unsigned mdssvc_dissect_element_cmd_fragment(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_); |
129 | | static unsigned mdssvc_dissect_element_cmd_fragment_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_); |
130 | | static unsigned mdssvc_dissect_element_cmd_response_blob(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_); |
131 | | static unsigned mdssvc_dissect_element_cmd_response_blob_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_); |
132 | | static unsigned mdssvc_dissect_element_cmd_unkn9(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_); |
133 | | static unsigned mdssvc_dissect_element_cmd_unkn9_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_); |
134 | | static unsigned mdssvc_dissect_element_close_in_handle(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_); |
135 | | static unsigned mdssvc_dissect_element_close_in_handle_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_); |
136 | | static unsigned mdssvc_dissect_element_close_unkn1(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_); |
137 | | static unsigned mdssvc_dissect_element_close_device_id(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_); |
138 | | static unsigned mdssvc_dissect_element_close_unkn2(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_); |
139 | | static unsigned mdssvc_dissect_element_close_unkn3(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_); |
140 | | static unsigned mdssvc_dissect_element_close_out_handle(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_); |
141 | | static unsigned mdssvc_dissect_element_close_out_handle_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_); |
142 | | static unsigned mdssvc_dissect_element_close_status(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_); |
143 | | static unsigned mdssvc_dissect_element_close_status_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_); |
144 | | static unsigned |
145 | | mdssvc_dissect_element_blob_spotlight_blob(tvbuff_t *tvb, unsigned offset, packet_info *pinfo, proto_tree *tree, dcerpc_info* di, uint8_t *drep _U_) |
146 | 0 | { |
147 | 0 | tvbuff_t *spotlight_tvb; |
148 | 0 | dissector_handle_t spotlight_handle; |
149 | 0 | if (di->conformant_run) { |
150 | 0 | return offset; |
151 | 0 | } |
152 | 0 | spotlight_handle = find_dissector("afp_spotlight"); |
153 | 0 | if (spotlight_handle) |
154 | 0 | { |
155 | 0 | spotlight_tvb = tvb_new_subset_remaining(tvb, offset + 16); |
156 | 0 | return (offset + 16 + call_dissector(spotlight_handle, spotlight_tvb, pinfo, tree)); |
157 | 0 | } |
158 | 0 | return offset; |
159 | 0 | } |
160 | | |
161 | | |
162 | | /* IDL: struct { */ |
163 | | /* IDL: uint32 length; */ |
164 | | /* IDL: uint32 size; */ |
165 | | /* IDL: [length_is(length)] [size_is(size)] [unique(1)] uint8 *spotlight_blob; */ |
166 | | /* IDL: } */ |
167 | | |
168 | | static unsigned |
169 | | mdssvc_dissect_element_blob_length(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_) |
170 | 0 | { |
171 | 0 | offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_mdssvc_mdssvc_blob_length, 0); |
172 | |
|
173 | 0 | return offset; |
174 | 0 | } |
175 | | |
176 | | static unsigned |
177 | | mdssvc_dissect_element_blob_size(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_) |
178 | 0 | { |
179 | 0 | offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_mdssvc_mdssvc_blob_size, 0); |
180 | |
|
181 | 0 | return offset; |
182 | 0 | } |
183 | | |
184 | | unsigned |
185 | | mdssvc_dissect_struct_blob(tvbuff_t *tvb _U_, unsigned 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_) |
186 | 0 | { |
187 | 0 | proto_item *item = NULL; |
188 | 0 | proto_tree *tree = NULL; |
189 | 0 | unsigned old_offset; |
190 | |
|
191 | 0 | ALIGN_TO_5_BYTES; |
192 | |
|
193 | 0 | old_offset = offset; |
194 | |
|
195 | 0 | if (parent_tree) { |
196 | 0 | item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA); |
197 | 0 | tree = proto_item_add_subtree(item, ett_mdssvc_mdssvc_blob); |
198 | 0 | } |
199 | |
|
200 | 0 | offset = mdssvc_dissect_element_blob_length(tvb, offset, pinfo, tree, di, drep); |
201 | |
|
202 | 0 | offset = mdssvc_dissect_element_blob_size(tvb, offset, pinfo, tree, di, drep); |
203 | |
|
204 | 0 | offset = mdssvc_dissect_element_blob_spotlight_blob(tvb, offset, pinfo, tree, di, drep); |
205 | | |
206 | |
|
207 | 0 | proto_item_set_len(item, offset-old_offset); |
208 | | |
209 | |
|
210 | 0 | if (di->call_data->flags & DCERPC_IS_NDR64) { |
211 | 0 | ALIGN_TO_5_BYTES; |
212 | 0 | } |
213 | |
|
214 | 0 | return offset; |
215 | 0 | } |
216 | | |
217 | | static unsigned |
218 | | mdssvc_dissect_element_open_device_id(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_) |
219 | 0 | { |
220 | 0 | 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); |
221 | |
|
222 | 0 | return offset; |
223 | 0 | } |
224 | | |
225 | | static unsigned |
226 | | mdssvc_dissect_element_open_device_id_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_) |
227 | 0 | { |
228 | 0 | offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_mdssvc_mdssvc_open_device_id, 0); |
229 | |
|
230 | 0 | return offset; |
231 | 0 | } |
232 | | |
233 | | static unsigned |
234 | | mdssvc_dissect_element_open_unkn2(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_) |
235 | 0 | { |
236 | 0 | 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); |
237 | |
|
238 | 0 | return offset; |
239 | 0 | } |
240 | | |
241 | | static unsigned |
242 | | mdssvc_dissect_element_open_unkn2_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_) |
243 | 0 | { |
244 | 0 | offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_mdssvc_mdssvc_open_unkn2, 0); |
245 | |
|
246 | 0 | return offset; |
247 | 0 | } |
248 | | |
249 | | static unsigned |
250 | | mdssvc_dissect_element_open_unkn3(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_) |
251 | 0 | { |
252 | 0 | 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); |
253 | |
|
254 | 0 | return offset; |
255 | 0 | } |
256 | | |
257 | | static unsigned |
258 | | mdssvc_dissect_element_open_unkn3_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_) |
259 | 0 | { |
260 | 0 | offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_mdssvc_mdssvc_open_unkn3, 0); |
261 | |
|
262 | 0 | return offset; |
263 | 0 | } |
264 | | |
265 | | static unsigned |
266 | | mdssvc_dissect_element_open_share_mount_path(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_) |
267 | 0 | { |
268 | 0 | char *data; |
269 | |
|
270 | 0 | offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(uint8_t), hf_mdssvc_mdssvc_open_share_mount_path, false, &data); |
271 | 0 | proto_item_append_text(tree, ": %s", data); |
272 | |
|
273 | 0 | return offset; |
274 | 0 | } |
275 | | |
276 | | static unsigned |
277 | | mdssvc_dissect_element_open_share_name(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_) |
278 | 0 | { |
279 | 0 | char *data; |
280 | |
|
281 | 0 | offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(uint8_t), hf_mdssvc_mdssvc_open_share_name, false, &data); |
282 | 0 | proto_item_append_text(tree, ": %s", data); |
283 | |
|
284 | 0 | return offset; |
285 | 0 | } |
286 | | |
287 | | static unsigned |
288 | | mdssvc_dissect_element_open_share_path(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_) |
289 | 0 | { |
290 | 0 | char *data; |
291 | |
|
292 | 0 | offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(uint8_t), hf_mdssvc_mdssvc_open_share_path, false, &data); |
293 | 0 | proto_item_append_text(tree, ": %s", data); |
294 | |
|
295 | 0 | return offset; |
296 | 0 | } |
297 | | |
298 | | static unsigned |
299 | | mdssvc_dissect_element_open_handle(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_) |
300 | 0 | { |
301 | 0 | 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); |
302 | |
|
303 | 0 | return offset; |
304 | 0 | } |
305 | | |
306 | | static unsigned |
307 | | mdssvc_dissect_element_open_handle_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_) |
308 | 0 | { |
309 | 0 | offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_mdssvc_mdssvc_open_handle, 0); |
310 | |
|
311 | 0 | return offset; |
312 | 0 | } |
313 | | |
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 */ |
322 | | /* IDL: ); */ |
323 | | |
324 | | static unsigned |
325 | | mdssvc_dissect_open_response(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_) |
326 | 0 | { |
327 | 0 | di->dcerpc_procedure_name="open"; |
328 | 0 | offset = mdssvc_dissect_element_open_device_id(tvb, offset, pinfo, tree, di, drep); |
329 | 0 | offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep); |
330 | |
|
331 | 0 | offset = mdssvc_dissect_element_open_unkn2(tvb, offset, pinfo, tree, di, drep); |
332 | 0 | offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep); |
333 | |
|
334 | 0 | offset = mdssvc_dissect_element_open_unkn3(tvb, offset, pinfo, tree, di, drep); |
335 | 0 | offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep); |
336 | |
|
337 | 0 | offset = mdssvc_dissect_element_open_share_path(tvb, offset, pinfo, tree, di, drep); |
338 | 0 | offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep); |
339 | |
|
340 | 0 | offset = mdssvc_dissect_element_open_handle(tvb, offset, pinfo, tree, di, drep); |
341 | 0 | offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep); |
342 | |
|
343 | 0 | return offset; |
344 | 0 | } |
345 | | |
346 | | static unsigned |
347 | | mdssvc_dissect_open_request(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_) |
348 | 0 | { |
349 | 0 | di->dcerpc_procedure_name="open"; |
350 | 0 | offset = mdssvc_dissect_element_open_device_id(tvb, offset, pinfo, tree, di, drep); |
351 | 0 | offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep); |
352 | 0 | offset = mdssvc_dissect_element_open_unkn2(tvb, offset, pinfo, tree, di, drep); |
353 | 0 | offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep); |
354 | 0 | offset = mdssvc_dissect_element_open_unkn3(tvb, offset, pinfo, tree, di, drep); |
355 | 0 | offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep); |
356 | 0 | offset = mdssvc_dissect_element_open_share_mount_path(tvb, offset, pinfo, tree, di, drep); |
357 | 0 | offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep); |
358 | 0 | offset = mdssvc_dissect_element_open_share_name(tvb, offset, pinfo, tree, di, drep); |
359 | 0 | offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep); |
360 | 0 | return offset; |
361 | 0 | } |
362 | | |
363 | | static unsigned |
364 | | mdssvc_dissect_element_unknown1_handle(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_) |
365 | 0 | { |
366 | 0 | 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); |
367 | |
|
368 | 0 | return offset; |
369 | 0 | } |
370 | | |
371 | | static unsigned |
372 | | mdssvc_dissect_element_unknown1_handle_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_) |
373 | 0 | { |
374 | 0 | offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_mdssvc_mdssvc_unknown1_handle, 0); |
375 | |
|
376 | 0 | return offset; |
377 | 0 | } |
378 | | |
379 | | static unsigned |
380 | | mdssvc_dissect_element_unknown1_unkn1(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_) |
381 | 0 | { |
382 | 0 | offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_mdssvc_mdssvc_unknown1_unkn1, 0); |
383 | |
|
384 | 0 | return offset; |
385 | 0 | } |
386 | | |
387 | | static unsigned |
388 | | mdssvc_dissect_element_unknown1_device_id(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_) |
389 | 0 | { |
390 | 0 | offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_mdssvc_mdssvc_unknown1_device_id, 0); |
391 | |
|
392 | 0 | return offset; |
393 | 0 | } |
394 | | |
395 | | static unsigned |
396 | | mdssvc_dissect_element_unknown1_unkn3(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_) |
397 | 0 | { |
398 | 0 | offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_mdssvc_mdssvc_unknown1_unkn3, 0); |
399 | |
|
400 | 0 | return offset; |
401 | 0 | } |
402 | | |
403 | | static unsigned |
404 | | mdssvc_dissect_element_unknown1_unkn4(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_) |
405 | 0 | { |
406 | 0 | offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_mdssvc_mdssvc_unknown1_unkn4, 0); |
407 | |
|
408 | 0 | return offset; |
409 | 0 | } |
410 | | |
411 | | static unsigned |
412 | | mdssvc_dissect_element_unknown1_uid(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_) |
413 | 0 | { |
414 | 0 | offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_mdssvc_mdssvc_unknown1_uid, 0); |
415 | |
|
416 | 0 | return offset; |
417 | 0 | } |
418 | | |
419 | | static unsigned |
420 | | mdssvc_dissect_element_unknown1_gid(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_) |
421 | 0 | { |
422 | 0 | offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_mdssvc_mdssvc_unknown1_gid, 0); |
423 | |
|
424 | 0 | return offset; |
425 | 0 | } |
426 | | |
427 | | static unsigned |
428 | | mdssvc_dissect_element_unknown1_status(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_) |
429 | 0 | { |
430 | 0 | 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); |
431 | |
|
432 | 0 | return offset; |
433 | 0 | } |
434 | | |
435 | | static unsigned |
436 | | mdssvc_dissect_element_unknown1_status_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_) |
437 | 0 | { |
438 | 0 | offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_mdssvc_mdssvc_unknown1_status, 0); |
439 | |
|
440 | 0 | return offset; |
441 | 0 | } |
442 | | |
443 | | static unsigned |
444 | | mdssvc_dissect_element_unknown1_flags(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_) |
445 | 0 | { |
446 | 0 | 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); |
447 | |
|
448 | 0 | return offset; |
449 | 0 | } |
450 | | |
451 | | static unsigned |
452 | | mdssvc_dissect_element_unknown1_flags_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_) |
453 | 0 | { |
454 | 0 | offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_mdssvc_mdssvc_unknown1_flags, 0); |
455 | |
|
456 | 0 | return offset; |
457 | 0 | } |
458 | | |
459 | | static unsigned |
460 | | mdssvc_dissect_element_unknown1_unkn7(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_) |
461 | 0 | { |
462 | 0 | 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); |
463 | |
|
464 | 0 | return offset; |
465 | 0 | } |
466 | | |
467 | | static unsigned |
468 | | mdssvc_dissect_element_unknown1_unkn7_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_) |
469 | 0 | { |
470 | 0 | offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_mdssvc_mdssvc_unknown1_unkn7, 0); |
471 | |
|
472 | 0 | return offset; |
473 | 0 | } |
474 | | |
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 */ |
486 | | /* IDL: ); */ |
487 | | |
488 | | static unsigned |
489 | | mdssvc_dissect_unknown1_response(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_) |
490 | 0 | { |
491 | 0 | di->dcerpc_procedure_name="unknown1"; |
492 | 0 | offset = mdssvc_dissect_element_unknown1_status(tvb, offset, pinfo, tree, di, drep); |
493 | 0 | offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep); |
494 | |
|
495 | 0 | offset = mdssvc_dissect_element_unknown1_flags(tvb, offset, pinfo, tree, di, drep); |
496 | 0 | offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep); |
497 | |
|
498 | 0 | offset = mdssvc_dissect_element_unknown1_unkn7(tvb, offset, pinfo, tree, di, drep); |
499 | 0 | offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep); |
500 | |
|
501 | 0 | return offset; |
502 | 0 | } |
503 | | |
504 | | static unsigned |
505 | | mdssvc_dissect_unknown1_request(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_) |
506 | 0 | { |
507 | 0 | di->dcerpc_procedure_name="unknown1"; |
508 | 0 | offset = mdssvc_dissect_element_unknown1_handle(tvb, offset, pinfo, tree, di, drep); |
509 | 0 | offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep); |
510 | 0 | offset = mdssvc_dissect_element_unknown1_unkn1(tvb, offset, pinfo, tree, di, drep); |
511 | 0 | offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep); |
512 | 0 | offset = mdssvc_dissect_element_unknown1_device_id(tvb, offset, pinfo, tree, di, drep); |
513 | 0 | offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep); |
514 | 0 | offset = mdssvc_dissect_element_unknown1_unkn3(tvb, offset, pinfo, tree, di, drep); |
515 | 0 | offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep); |
516 | 0 | offset = mdssvc_dissect_element_unknown1_unkn4(tvb, offset, pinfo, tree, di, drep); |
517 | 0 | offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep); |
518 | 0 | offset = mdssvc_dissect_element_unknown1_uid(tvb, offset, pinfo, tree, di, drep); |
519 | 0 | offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep); |
520 | 0 | offset = mdssvc_dissect_element_unknown1_gid(tvb, offset, pinfo, tree, di, drep); |
521 | 0 | offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep); |
522 | 0 | return offset; |
523 | 0 | } |
524 | | |
525 | | static unsigned |
526 | | mdssvc_dissect_element_cmd_handle(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_) |
527 | 0 | { |
528 | 0 | 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); |
529 | |
|
530 | 0 | return offset; |
531 | 0 | } |
532 | | |
533 | | static unsigned |
534 | | mdssvc_dissect_element_cmd_handle_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_) |
535 | 0 | { |
536 | 0 | offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_mdssvc_mdssvc_cmd_handle, 0); |
537 | |
|
538 | 0 | return offset; |
539 | 0 | } |
540 | | |
541 | | static unsigned |
542 | | mdssvc_dissect_element_cmd_unkn1(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_) |
543 | 0 | { |
544 | 0 | offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_mdssvc_mdssvc_cmd_unkn1, 0); |
545 | |
|
546 | 0 | return offset; |
547 | 0 | } |
548 | | |
549 | | static unsigned |
550 | | mdssvc_dissect_element_cmd_device_id(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_) |
551 | 0 | { |
552 | 0 | offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_mdssvc_mdssvc_cmd_device_id, 0); |
553 | |
|
554 | 0 | return offset; |
555 | 0 | } |
556 | | |
557 | | static unsigned |
558 | | mdssvc_dissect_element_cmd_unkn3(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_) |
559 | 0 | { |
560 | 0 | offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_mdssvc_mdssvc_cmd_unkn3, 0); |
561 | |
|
562 | 0 | return offset; |
563 | 0 | } |
564 | | |
565 | | static unsigned |
566 | | mdssvc_dissect_element_cmd_unkn4(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_) |
567 | 0 | { |
568 | 0 | offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_mdssvc_mdssvc_cmd_unkn4, 0); |
569 | |
|
570 | 0 | return offset; |
571 | 0 | } |
572 | | |
573 | | static unsigned |
574 | | mdssvc_dissect_element_cmd_flags(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_) |
575 | 0 | { |
576 | 0 | offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_mdssvc_mdssvc_cmd_flags, 0); |
577 | |
|
578 | 0 | return offset; |
579 | 0 | } |
580 | | |
581 | | static unsigned |
582 | | mdssvc_dissect_element_cmd_request_blob(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_) |
583 | 0 | { |
584 | 0 | offset = mdssvc_dissect_struct_blob(tvb,offset,pinfo,tree,di,drep,hf_mdssvc_mdssvc_cmd_request_blob,0); |
585 | |
|
586 | 0 | return offset; |
587 | 0 | } |
588 | | |
589 | | static unsigned |
590 | | mdssvc_dissect_element_cmd_unkn5(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_) |
591 | 0 | { |
592 | 0 | offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_mdssvc_mdssvc_cmd_unkn5, 0); |
593 | |
|
594 | 0 | return offset; |
595 | 0 | } |
596 | | |
597 | | static unsigned |
598 | | mdssvc_dissect_element_cmd_max_fragment_size1(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_) |
599 | 0 | { |
600 | 0 | offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_mdssvc_mdssvc_cmd_max_fragment_size1, 0); |
601 | |
|
602 | 0 | return offset; |
603 | 0 | } |
604 | | |
605 | | static unsigned |
606 | | mdssvc_dissect_element_cmd_unkn6(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_) |
607 | 0 | { |
608 | 0 | offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_mdssvc_mdssvc_cmd_unkn6, 0); |
609 | |
|
610 | 0 | return offset; |
611 | 0 | } |
612 | | |
613 | | static unsigned |
614 | | mdssvc_dissect_element_cmd_max_fragment_size2(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_) |
615 | 0 | { |
616 | 0 | offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_mdssvc_mdssvc_cmd_max_fragment_size2, 0); |
617 | |
|
618 | 0 | return offset; |
619 | 0 | } |
620 | | |
621 | | static unsigned |
622 | | mdssvc_dissect_element_cmd_unkn7(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_) |
623 | 0 | { |
624 | 0 | offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_mdssvc_mdssvc_cmd_unkn7, 0); |
625 | |
|
626 | 0 | return offset; |
627 | 0 | } |
628 | | |
629 | | static unsigned |
630 | | mdssvc_dissect_element_cmd_unkn8(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_) |
631 | 0 | { |
632 | 0 | offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_mdssvc_mdssvc_cmd_unkn8, 0); |
633 | |
|
634 | 0 | return offset; |
635 | 0 | } |
636 | | |
637 | | static unsigned |
638 | | mdssvc_dissect_element_cmd_fragment(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_) |
639 | 0 | { |
640 | 0 | 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); |
641 | |
|
642 | 0 | return offset; |
643 | 0 | } |
644 | | |
645 | | static unsigned |
646 | | mdssvc_dissect_element_cmd_fragment_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_) |
647 | 0 | { |
648 | 0 | offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_mdssvc_mdssvc_cmd_fragment, 0); |
649 | |
|
650 | 0 | return offset; |
651 | 0 | } |
652 | | |
653 | | static unsigned |
654 | | mdssvc_dissect_element_cmd_response_blob(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_) |
655 | 0 | { |
656 | 0 | 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); |
657 | |
|
658 | 0 | return offset; |
659 | 0 | } |
660 | | |
661 | | static unsigned |
662 | | mdssvc_dissect_element_cmd_response_blob_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_) |
663 | 0 | { |
664 | 0 | offset = mdssvc_dissect_struct_blob(tvb,offset,pinfo,tree,di,drep,hf_mdssvc_mdssvc_cmd_response_blob,0); |
665 | |
|
666 | 0 | return offset; |
667 | 0 | } |
668 | | |
669 | | static unsigned |
670 | | mdssvc_dissect_element_cmd_unkn9(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_) |
671 | 0 | { |
672 | 0 | 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); |
673 | |
|
674 | 0 | return offset; |
675 | 0 | } |
676 | | |
677 | | static unsigned |
678 | | mdssvc_dissect_element_cmd_unkn9_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_) |
679 | 0 | { |
680 | 0 | offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_mdssvc_mdssvc_cmd_unkn9, 0); |
681 | |
|
682 | 0 | return offset; |
683 | 0 | } |
684 | | |
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 */ |
702 | | /* IDL: ); */ |
703 | | |
704 | | static unsigned |
705 | | mdssvc_dissect_cmd_response(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_) |
706 | 0 | { |
707 | 0 | di->dcerpc_procedure_name="cmd"; |
708 | 0 | offset = mdssvc_dissect_element_cmd_fragment(tvb, offset, pinfo, tree, di, drep); |
709 | 0 | offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep); |
710 | |
|
711 | 0 | offset = mdssvc_dissect_element_cmd_response_blob(tvb, offset, pinfo, tree, di, drep); |
712 | 0 | offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep); |
713 | |
|
714 | 0 | offset = mdssvc_dissect_element_cmd_unkn9(tvb, offset, pinfo, tree, di, drep); |
715 | 0 | offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep); |
716 | |
|
717 | 0 | return offset; |
718 | 0 | } |
719 | | |
720 | | static unsigned |
721 | | mdssvc_dissect_cmd_request(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_) |
722 | 0 | { |
723 | 0 | di->dcerpc_procedure_name="cmd"; |
724 | 0 | offset = mdssvc_dissect_element_cmd_handle(tvb, offset, pinfo, tree, di, drep); |
725 | 0 | offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep); |
726 | 0 | offset = mdssvc_dissect_element_cmd_unkn1(tvb, offset, pinfo, tree, di, drep); |
727 | 0 | offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep); |
728 | 0 | offset = mdssvc_dissect_element_cmd_device_id(tvb, offset, pinfo, tree, di, drep); |
729 | 0 | offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep); |
730 | 0 | offset = mdssvc_dissect_element_cmd_unkn3(tvb, offset, pinfo, tree, di, drep); |
731 | 0 | offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep); |
732 | 0 | offset = mdssvc_dissect_element_cmd_unkn4(tvb, offset, pinfo, tree, di, drep); |
733 | 0 | offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep); |
734 | 0 | offset = mdssvc_dissect_element_cmd_flags(tvb, offset, pinfo, tree, di, drep); |
735 | 0 | offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep); |
736 | 0 | offset = mdssvc_dissect_element_cmd_request_blob(tvb, offset, pinfo, tree, di, drep); |
737 | 0 | offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep); |
738 | 0 | offset = mdssvc_dissect_element_cmd_unkn5(tvb, offset, pinfo, tree, di, drep); |
739 | 0 | offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep); |
740 | 0 | offset = mdssvc_dissect_element_cmd_max_fragment_size1(tvb, offset, pinfo, tree, di, drep); |
741 | 0 | offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep); |
742 | 0 | offset = mdssvc_dissect_element_cmd_unkn6(tvb, offset, pinfo, tree, di, drep); |
743 | 0 | offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep); |
744 | 0 | offset = mdssvc_dissect_element_cmd_max_fragment_size2(tvb, offset, pinfo, tree, di, drep); |
745 | 0 | offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep); |
746 | 0 | offset = mdssvc_dissect_element_cmd_unkn7(tvb, offset, pinfo, tree, di, drep); |
747 | 0 | offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep); |
748 | 0 | offset = mdssvc_dissect_element_cmd_unkn8(tvb, offset, pinfo, tree, di, drep); |
749 | 0 | offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep); |
750 | 0 | return offset; |
751 | 0 | } |
752 | | |
753 | | static unsigned |
754 | | mdssvc_dissect_element_close_in_handle(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_) |
755 | 0 | { |
756 | 0 | 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); |
757 | |
|
758 | 0 | return offset; |
759 | 0 | } |
760 | | |
761 | | static unsigned |
762 | | mdssvc_dissect_element_close_in_handle_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_) |
763 | 0 | { |
764 | 0 | offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_mdssvc_mdssvc_close_in_handle, 0); |
765 | |
|
766 | 0 | return offset; |
767 | 0 | } |
768 | | |
769 | | static unsigned |
770 | | mdssvc_dissect_element_close_unkn1(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_) |
771 | 0 | { |
772 | 0 | offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_mdssvc_mdssvc_close_unkn1, 0); |
773 | |
|
774 | 0 | return offset; |
775 | 0 | } |
776 | | |
777 | | static unsigned |
778 | | mdssvc_dissect_element_close_device_id(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_) |
779 | 0 | { |
780 | 0 | offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_mdssvc_mdssvc_close_device_id, 0); |
781 | |
|
782 | 0 | return offset; |
783 | 0 | } |
784 | | |
785 | | static unsigned |
786 | | mdssvc_dissect_element_close_unkn2(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_) |
787 | 0 | { |
788 | 0 | offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_mdssvc_mdssvc_close_unkn2, 0); |
789 | |
|
790 | 0 | return offset; |
791 | 0 | } |
792 | | |
793 | | static unsigned |
794 | | mdssvc_dissect_element_close_unkn3(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_) |
795 | 0 | { |
796 | 0 | offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_mdssvc_mdssvc_close_unkn3, 0); |
797 | |
|
798 | 0 | return offset; |
799 | 0 | } |
800 | | |
801 | | static unsigned |
802 | | mdssvc_dissect_element_close_out_handle(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_) |
803 | 0 | { |
804 | 0 | 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); |
805 | |
|
806 | 0 | return offset; |
807 | 0 | } |
808 | | |
809 | | static unsigned |
810 | | mdssvc_dissect_element_close_out_handle_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_) |
811 | 0 | { |
812 | 0 | offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_mdssvc_mdssvc_close_out_handle, 0); |
813 | |
|
814 | 0 | return offset; |
815 | 0 | } |
816 | | |
817 | | static unsigned |
818 | | mdssvc_dissect_element_close_status(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_) |
819 | 0 | { |
820 | 0 | 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); |
821 | |
|
822 | 0 | return offset; |
823 | 0 | } |
824 | | |
825 | | static unsigned |
826 | | mdssvc_dissect_element_close_status_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_) |
827 | 0 | { |
828 | 0 | offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_mdssvc_mdssvc_close_status, 0); |
829 | |
|
830 | 0 | return offset; |
831 | 0 | } |
832 | | |
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 */ |
841 | | /* IDL: ); */ |
842 | | |
843 | | static unsigned |
844 | | mdssvc_dissect_close_response(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_) |
845 | 0 | { |
846 | 0 | di->dcerpc_procedure_name="close"; |
847 | 0 | offset = mdssvc_dissect_element_close_out_handle(tvb, offset, pinfo, tree, di, drep); |
848 | 0 | offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep); |
849 | |
|
850 | 0 | offset = mdssvc_dissect_element_close_status(tvb, offset, pinfo, tree, di, drep); |
851 | 0 | offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep); |
852 | |
|
853 | 0 | return offset; |
854 | 0 | } |
855 | | |
856 | | static unsigned |
857 | | mdssvc_dissect_close_request(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_) |
858 | 0 | { |
859 | 0 | di->dcerpc_procedure_name="close"; |
860 | 0 | offset = mdssvc_dissect_element_close_in_handle(tvb, offset, pinfo, tree, di, drep); |
861 | 0 | offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep); |
862 | 0 | offset = mdssvc_dissect_element_close_unkn1(tvb, offset, pinfo, tree, di, drep); |
863 | 0 | offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep); |
864 | 0 | offset = mdssvc_dissect_element_close_device_id(tvb, offset, pinfo, tree, di, drep); |
865 | 0 | offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep); |
866 | 0 | offset = mdssvc_dissect_element_close_unkn2(tvb, offset, pinfo, tree, di, drep); |
867 | 0 | offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep); |
868 | 0 | offset = mdssvc_dissect_element_close_unkn3(tvb, offset, pinfo, tree, di, drep); |
869 | 0 | offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep); |
870 | 0 | return offset; |
871 | 0 | } |
872 | | |
873 | | |
874 | | static const dcerpc_sub_dissector mdssvc_dissectors[] = { |
875 | | { 0, "open", |
876 | | mdssvc_dissect_open_request, mdssvc_dissect_open_response}, |
877 | | { 1, "unknown1", |
878 | | mdssvc_dissect_unknown1_request, mdssvc_dissect_unknown1_response}, |
879 | | { 2, "cmd", |
880 | | mdssvc_dissect_cmd_request, mdssvc_dissect_cmd_response}, |
881 | | { 3, "close", |
882 | | mdssvc_dissect_close_request, mdssvc_dissect_close_response}, |
883 | | { 0, NULL, NULL, NULL } |
884 | | }; |
885 | | |
886 | | void proto_register_dcerpc_mdssvc(void) |
887 | 14 | { |
888 | 14 | static hf_register_info hf[] = { |
889 | 14 | { &hf_mdssvc_mdssvc_blob_length, |
890 | 14 | { "Length", "mdssvc.mdssvc_blob.length", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, |
891 | 14 | { &hf_mdssvc_mdssvc_blob_size, |
892 | 14 | { "Size", "mdssvc.mdssvc_blob.size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, |
893 | 14 | { &hf_mdssvc_mdssvc_blob_spotlight_blob, |
894 | 14 | { "Spotlight Blob", "mdssvc.mdssvc_blob.spotlight_blob", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }}, |
895 | 14 | { &hf_mdssvc_mdssvc_close_device_id, |
896 | 14 | { "Device Id", "mdssvc.mdssvc_close.device_id", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, |
897 | 14 | { &hf_mdssvc_mdssvc_close_in_handle, |
898 | 14 | { "In Handle", "mdssvc.mdssvc_close.in_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, |
899 | 14 | { &hf_mdssvc_mdssvc_close_out_handle, |
900 | 14 | { "Out Handle", "mdssvc.mdssvc_close.out_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, |
901 | 14 | { &hf_mdssvc_mdssvc_close_status, |
902 | 14 | { "Status", "mdssvc.mdssvc_close.status", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, |
903 | 14 | { &hf_mdssvc_mdssvc_close_unkn1, |
904 | 14 | { "Unkn1", "mdssvc.mdssvc_close.unkn1", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, |
905 | 14 | { &hf_mdssvc_mdssvc_close_unkn2, |
906 | 14 | { "Unkn2", "mdssvc.mdssvc_close.unkn2", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, |
907 | 14 | { &hf_mdssvc_mdssvc_close_unkn3, |
908 | 14 | { "Unkn3", "mdssvc.mdssvc_close.unkn3", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, |
909 | 14 | { &hf_mdssvc_mdssvc_cmd_device_id, |
910 | 14 | { "Device Id", "mdssvc.mdssvc_cmd.device_id", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, |
911 | 14 | { &hf_mdssvc_mdssvc_cmd_flags, |
912 | 14 | { "Flags", "mdssvc.mdssvc_cmd.flags", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, |
913 | 14 | { &hf_mdssvc_mdssvc_cmd_fragment, |
914 | 14 | { "Fragment", "mdssvc.mdssvc_cmd.fragment", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, |
915 | 14 | { &hf_mdssvc_mdssvc_cmd_handle, |
916 | 14 | { "Handle", "mdssvc.mdssvc_cmd.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, |
917 | 14 | { &hf_mdssvc_mdssvc_cmd_max_fragment_size1, |
918 | 14 | { "Max Fragment Size1", "mdssvc.mdssvc_cmd.max_fragment_size1", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, |
919 | 14 | { &hf_mdssvc_mdssvc_cmd_max_fragment_size2, |
920 | 14 | { "Max Fragment Size2", "mdssvc.mdssvc_cmd.max_fragment_size2", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, |
921 | 14 | { &hf_mdssvc_mdssvc_cmd_request_blob, |
922 | 14 | { "Request Blob", "mdssvc.mdssvc_cmd.request_blob", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, |
923 | 14 | { &hf_mdssvc_mdssvc_cmd_response_blob, |
924 | 14 | { "Response Blob", "mdssvc.mdssvc_cmd.response_blob", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, |
925 | 14 | { &hf_mdssvc_mdssvc_cmd_unkn1, |
926 | 14 | { "Unkn1", "mdssvc.mdssvc_cmd.unkn1", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, |
927 | 14 | { &hf_mdssvc_mdssvc_cmd_unkn3, |
928 | 14 | { "Unkn3", "mdssvc.mdssvc_cmd.unkn3", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, |
929 | 14 | { &hf_mdssvc_mdssvc_cmd_unkn4, |
930 | 14 | { "Unkn4", "mdssvc.mdssvc_cmd.unkn4", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, |
931 | 14 | { &hf_mdssvc_mdssvc_cmd_unkn5, |
932 | 14 | { "Unkn5", "mdssvc.mdssvc_cmd.unkn5", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, |
933 | 14 | { &hf_mdssvc_mdssvc_cmd_unkn6, |
934 | 14 | { "Unkn6", "mdssvc.mdssvc_cmd.unkn6", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, |
935 | 14 | { &hf_mdssvc_mdssvc_cmd_unkn7, |
936 | 14 | { "Unkn7", "mdssvc.mdssvc_cmd.unkn7", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, |
937 | 14 | { &hf_mdssvc_mdssvc_cmd_unkn8, |
938 | 14 | { "Unkn8", "mdssvc.mdssvc_cmd.unkn8", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, |
939 | 14 | { &hf_mdssvc_mdssvc_cmd_unkn9, |
940 | 14 | { "Unkn9", "mdssvc.mdssvc_cmd.unkn9", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, |
941 | 14 | { &hf_mdssvc_mdssvc_open_device_id, |
942 | 14 | { "Device Id", "mdssvc.mdssvc_open.device_id", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, |
943 | 14 | { &hf_mdssvc_mdssvc_open_handle, |
944 | 14 | { "Handle", "mdssvc.mdssvc_open.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, |
945 | 14 | { &hf_mdssvc_mdssvc_open_share_mount_path, |
946 | 14 | { "Share Mount Path", "mdssvc.mdssvc_open.share_mount_path", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }}, |
947 | 14 | { &hf_mdssvc_mdssvc_open_share_name, |
948 | 14 | { "Share Name", "mdssvc.mdssvc_open.share_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }}, |
949 | 14 | { &hf_mdssvc_mdssvc_open_share_path, |
950 | 14 | { "Share Path", "mdssvc.mdssvc_open.share_path", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }}, |
951 | 14 | { &hf_mdssvc_mdssvc_open_unkn2, |
952 | 14 | { "Unkn2", "mdssvc.mdssvc_open.unkn2", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, |
953 | 14 | { &hf_mdssvc_mdssvc_open_unkn3, |
954 | 14 | { "Unkn3", "mdssvc.mdssvc_open.unkn3", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, |
955 | 14 | { &hf_mdssvc_mdssvc_unknown1_device_id, |
956 | 14 | { "Device Id", "mdssvc.mdssvc_unknown1.device_id", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, |
957 | 14 | { &hf_mdssvc_mdssvc_unknown1_flags, |
958 | 14 | { "Flags", "mdssvc.mdssvc_unknown1.flags", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, |
959 | 14 | { &hf_mdssvc_mdssvc_unknown1_gid, |
960 | 14 | { "Gid", "mdssvc.mdssvc_unknown1.gid", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, |
961 | 14 | { &hf_mdssvc_mdssvc_unknown1_handle, |
962 | 14 | { "Handle", "mdssvc.mdssvc_unknown1.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, |
963 | 14 | { &hf_mdssvc_mdssvc_unknown1_status, |
964 | 14 | { "Status", "mdssvc.mdssvc_unknown1.status", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, |
965 | 14 | { &hf_mdssvc_mdssvc_unknown1_uid, |
966 | 14 | { "Uid", "mdssvc.mdssvc_unknown1.uid", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, |
967 | 14 | { &hf_mdssvc_mdssvc_unknown1_unkn1, |
968 | 14 | { "Unkn1", "mdssvc.mdssvc_unknown1.unkn1", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, |
969 | 14 | { &hf_mdssvc_mdssvc_unknown1_unkn3, |
970 | 14 | { "Unkn3", "mdssvc.mdssvc_unknown1.unkn3", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, |
971 | 14 | { &hf_mdssvc_mdssvc_unknown1_unkn4, |
972 | 14 | { "Unkn4", "mdssvc.mdssvc_unknown1.unkn4", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, |
973 | 14 | { &hf_mdssvc_mdssvc_unknown1_unkn7, |
974 | 14 | { "Unkn7", "mdssvc.mdssvc_unknown1.unkn7", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, |
975 | 14 | { &hf_mdssvc_opnum, |
976 | 14 | { "Operation", "mdssvc.opnum", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }}, |
977 | 14 | }; |
978 | | |
979 | | |
980 | 14 | static int *ett[] = { |
981 | 14 | &ett_dcerpc_mdssvc, |
982 | 14 | &ett_mdssvc_mdssvc_blob, |
983 | 14 | }; |
984 | | |
985 | 14 | proto_dcerpc_mdssvc = proto_register_protocol("Spotlight metadata search service", "MDSSVC", "mdssvc"); |
986 | 14 | proto_register_field_array(proto_dcerpc_mdssvc, hf, array_length (hf)); |
987 | 14 | proto_register_subtree_array(ett, array_length(ett)); |
988 | 14 | } |
989 | | |
990 | | void proto_reg_handoff_dcerpc_mdssvc(void) |
991 | 14 | { |
992 | 14 | dcerpc_init_uuid(proto_dcerpc_mdssvc, ett_dcerpc_mdssvc, |
993 | 14 | &uuid_dcerpc_mdssvc, ver_dcerpc_mdssvc, |
994 | 14 | mdssvc_dissectors, hf_mdssvc_opnum); |
995 | 14 | } |