Coverage Report

Created: 2026-06-30 07:22

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/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
}