2 This file was automatically generated by Pidl
3 from mdssvc.idl and mdssvc.cnf.
5 Pidl is a perl based IDL compiler for DCE/RPC idl files.
6 It is maintained by the Samba team, not the Wireshark team.
7 Instructions on how to download and install Pidl can be
8 found at https://wiki.wireshark.org/Pidl
14 #include <wsutil/array.h>
15 #include <epan/packet.h>
18 #include "packet-dcerpc.h"
19 #include "packet-dcerpc-nt.h"
20 #include "packet-windows-common.h"
21 #include "packet-dcerpc-mdssvc.h"
22 void proto_register_dcerpc_mdssvc(void);
23 void proto_reg_handoff_dcerpc_mdssvc(void);
25 /* Ett declarations */
26 static int ett_dcerpc_mdssvc
;
27 static int ett_mdssvc_mdssvc_blob
;
30 /* Header field declarations */
31 static int hf_mdssvc_mdssvc_blob_length
;
32 static int hf_mdssvc_mdssvc_blob_size
;
33 static int hf_mdssvc_mdssvc_blob_spotlight_blob
;
34 static int hf_mdssvc_mdssvc_close_device_id
;
35 static int hf_mdssvc_mdssvc_close_in_handle
;
36 static int hf_mdssvc_mdssvc_close_out_handle
;
37 static int hf_mdssvc_mdssvc_close_status
;
38 static int hf_mdssvc_mdssvc_close_unkn1
;
39 static int hf_mdssvc_mdssvc_close_unkn2
;
40 static int hf_mdssvc_mdssvc_close_unkn3
;
41 static int hf_mdssvc_mdssvc_cmd_device_id
;
42 static int hf_mdssvc_mdssvc_cmd_flags
;
43 static int hf_mdssvc_mdssvc_cmd_fragment
;
44 static int hf_mdssvc_mdssvc_cmd_handle
;
45 static int hf_mdssvc_mdssvc_cmd_max_fragment_size1
;
46 static int hf_mdssvc_mdssvc_cmd_max_fragment_size2
;
47 static int hf_mdssvc_mdssvc_cmd_request_blob
;
48 static int hf_mdssvc_mdssvc_cmd_response_blob
;
49 static int hf_mdssvc_mdssvc_cmd_unkn1
;
50 static int hf_mdssvc_mdssvc_cmd_unkn3
;
51 static int hf_mdssvc_mdssvc_cmd_unkn4
;
52 static int hf_mdssvc_mdssvc_cmd_unkn5
;
53 static int hf_mdssvc_mdssvc_cmd_unkn6
;
54 static int hf_mdssvc_mdssvc_cmd_unkn7
;
55 static int hf_mdssvc_mdssvc_cmd_unkn8
;
56 static int hf_mdssvc_mdssvc_cmd_unkn9
;
57 static int hf_mdssvc_mdssvc_open_device_id
;
58 static int hf_mdssvc_mdssvc_open_handle
;
59 static int hf_mdssvc_mdssvc_open_share_mount_path
;
60 static int hf_mdssvc_mdssvc_open_share_name
;
61 static int hf_mdssvc_mdssvc_open_share_path
;
62 static int hf_mdssvc_mdssvc_open_unkn2
;
63 static int hf_mdssvc_mdssvc_open_unkn3
;
64 static int hf_mdssvc_mdssvc_unknown1_device_id
;
65 static int hf_mdssvc_mdssvc_unknown1_flags
;
66 static int hf_mdssvc_mdssvc_unknown1_gid
;
67 static int hf_mdssvc_mdssvc_unknown1_handle
;
68 static int hf_mdssvc_mdssvc_unknown1_status
;
69 static int hf_mdssvc_mdssvc_unknown1_uid
;
70 static int hf_mdssvc_mdssvc_unknown1_unkn1
;
71 static int hf_mdssvc_mdssvc_unknown1_unkn3
;
72 static int hf_mdssvc_mdssvc_unknown1_unkn4
;
73 static int hf_mdssvc_mdssvc_unknown1_unkn7
;
74 static int hf_mdssvc_opnum
;
76 static int proto_dcerpc_mdssvc
;
77 /* Version information */
80 static e_guid_t uuid_dcerpc_mdssvc
= {
81 0x885d85fb, 0xc754, 0x4062,
82 { 0xa0, 0xe7, 0x68, 0x72, 0xce, 0x00, 0x64, 0xf4 }
84 static uint16_t ver_dcerpc_mdssvc
= 2;
86 static int mdssvc_dissect_element_blob_length(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
);
87 static int mdssvc_dissect_element_blob_size(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
);
88 static int mdssvc_dissect_element_blob_spotlight_blob(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
);
89 static int mdssvc_dissect_element_open_device_id(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
);
90 static int mdssvc_dissect_element_open_device_id_(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
);
91 static int mdssvc_dissect_element_open_unkn2(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
);
92 static int mdssvc_dissect_element_open_unkn2_(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
);
93 static int mdssvc_dissect_element_open_unkn3(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
);
94 static int mdssvc_dissect_element_open_unkn3_(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
);
95 static int mdssvc_dissect_element_open_share_mount_path(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
);
96 static int mdssvc_dissect_element_open_share_name(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
);
97 static int mdssvc_dissect_element_open_share_path(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
);
98 static int mdssvc_dissect_element_open_handle(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
);
99 static int mdssvc_dissect_element_open_handle_(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
);
100 static int mdssvc_dissect_element_unknown1_handle(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
);
101 static int mdssvc_dissect_element_unknown1_handle_(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
);
102 static int mdssvc_dissect_element_unknown1_unkn1(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
);
103 static int mdssvc_dissect_element_unknown1_device_id(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
);
104 static int mdssvc_dissect_element_unknown1_unkn3(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
);
105 static int mdssvc_dissect_element_unknown1_unkn4(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
);
106 static int mdssvc_dissect_element_unknown1_uid(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
);
107 static int mdssvc_dissect_element_unknown1_gid(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
);
108 static int mdssvc_dissect_element_unknown1_status(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
);
109 static int mdssvc_dissect_element_unknown1_status_(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
);
110 static int mdssvc_dissect_element_unknown1_flags(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
);
111 static int mdssvc_dissect_element_unknown1_flags_(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
);
112 static int mdssvc_dissect_element_unknown1_unkn7(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
);
113 static int mdssvc_dissect_element_unknown1_unkn7_(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
);
114 static int mdssvc_dissect_element_cmd_handle(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
);
115 static int mdssvc_dissect_element_cmd_handle_(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
);
116 static int mdssvc_dissect_element_cmd_unkn1(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
);
117 static int mdssvc_dissect_element_cmd_device_id(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
);
118 static int mdssvc_dissect_element_cmd_unkn3(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
);
119 static int mdssvc_dissect_element_cmd_unkn4(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
);
120 static int mdssvc_dissect_element_cmd_flags(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
);
121 static int mdssvc_dissect_element_cmd_request_blob(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
);
122 static int mdssvc_dissect_element_cmd_unkn5(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
);
123 static int mdssvc_dissect_element_cmd_max_fragment_size1(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
);
124 static int mdssvc_dissect_element_cmd_unkn6(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
);
125 static int mdssvc_dissect_element_cmd_max_fragment_size2(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
);
126 static int mdssvc_dissect_element_cmd_unkn7(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
);
127 static int mdssvc_dissect_element_cmd_unkn8(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
);
128 static int mdssvc_dissect_element_cmd_fragment(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
);
129 static int mdssvc_dissect_element_cmd_fragment_(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
);
130 static int mdssvc_dissect_element_cmd_response_blob(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
);
131 static int mdssvc_dissect_element_cmd_response_blob_(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
);
132 static int mdssvc_dissect_element_cmd_unkn9(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
);
133 static int mdssvc_dissect_element_cmd_unkn9_(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
);
134 static int mdssvc_dissect_element_close_in_handle(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
);
135 static int mdssvc_dissect_element_close_in_handle_(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
);
136 static int mdssvc_dissect_element_close_unkn1(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
);
137 static int mdssvc_dissect_element_close_device_id(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
);
138 static int mdssvc_dissect_element_close_unkn2(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
);
139 static int mdssvc_dissect_element_close_unkn3(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
);
140 static int mdssvc_dissect_element_close_out_handle(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
);
141 static int mdssvc_dissect_element_close_out_handle_(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
);
142 static int mdssvc_dissect_element_close_status(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
);
143 static int mdssvc_dissect_element_close_status_(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
);
145 mdssvc_dissect_element_blob_spotlight_blob(tvbuff_t
*tvb
, int offset
, packet_info
*pinfo
, proto_tree
*tree
, dcerpc_info
* di
, uint8_t *drep _U_
)
147 tvbuff_t
*spotlight_tvb
;
148 dissector_handle_t spotlight_handle
;
149 if (di
->conformant_run
) {
152 spotlight_handle
= find_dissector("afp_spotlight");
153 if (spotlight_handle
)
155 spotlight_tvb
= tvb_new_subset_remaining(tvb
, offset
+ 16);
156 return (offset
+ 16 + call_dissector(spotlight_handle
, spotlight_tvb
, pinfo
, tree
));
163 /* IDL: uint32 length; */
164 /* IDL: uint32 size; */
165 /* IDL: [length_is(length)] [size_is(size)] [unique(1)] uint8 *spotlight_blob; */
169 mdssvc_dissect_element_blob_length(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
)
171 offset
= PIDL_dissect_uint32(tvb
, offset
, pinfo
, tree
, di
, drep
, hf_mdssvc_mdssvc_blob_length
, 0);
177 mdssvc_dissect_element_blob_size(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
)
179 offset
= PIDL_dissect_uint32(tvb
, offset
, pinfo
, tree
, di
, drep
, hf_mdssvc_mdssvc_blob_size
, 0);
185 mdssvc_dissect_struct_blob(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*parent_tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
, int hf_index _U_
, uint32_t param _U_
)
187 proto_item
*item
= NULL
;
188 proto_tree
*tree
= NULL
;
196 item
= proto_tree_add_item(parent_tree
, hf_index
, tvb
, offset
, -1, ENC_NA
);
197 tree
= proto_item_add_subtree(item
, ett_mdssvc_mdssvc_blob
);
200 offset
= mdssvc_dissect_element_blob_length(tvb
, offset
, pinfo
, tree
, di
, drep
);
202 offset
= mdssvc_dissect_element_blob_size(tvb
, offset
, pinfo
, tree
, di
, drep
);
204 offset
= mdssvc_dissect_element_blob_spotlight_blob(tvb
, offset
, pinfo
, tree
, di
, drep
);
207 proto_item_set_len(item
, offset
-old_offset
);
210 if (di
->call_data
->flags
& DCERPC_IS_NDR64
) {
218 mdssvc_dissect_element_open_device_id(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
)
220 offset
= dissect_ndr_toplevel_pointer(tvb
, offset
, pinfo
, tree
, di
, drep
, mdssvc_dissect_element_open_device_id_
, NDR_POINTER_REF
, "Pointer to Device Id (uint32)",hf_mdssvc_mdssvc_open_device_id
);
226 mdssvc_dissect_element_open_device_id_(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
)
228 offset
= PIDL_dissect_uint32(tvb
, offset
, pinfo
, tree
, di
, drep
, hf_mdssvc_mdssvc_open_device_id
, 0);
234 mdssvc_dissect_element_open_unkn2(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
)
236 offset
= dissect_ndr_toplevel_pointer(tvb
, offset
, pinfo
, tree
, di
, drep
, mdssvc_dissect_element_open_unkn2_
, NDR_POINTER_REF
, "Pointer to Unkn2 (uint32)",hf_mdssvc_mdssvc_open_unkn2
);
242 mdssvc_dissect_element_open_unkn2_(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
)
244 offset
= PIDL_dissect_uint32(tvb
, offset
, pinfo
, tree
, di
, drep
, hf_mdssvc_mdssvc_open_unkn2
, 0);
250 mdssvc_dissect_element_open_unkn3(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
)
252 offset
= dissect_ndr_toplevel_pointer(tvb
, offset
, pinfo
, tree
, di
, drep
, mdssvc_dissect_element_open_unkn3_
, NDR_POINTER_REF
, "Pointer to Unkn3 (uint32)",hf_mdssvc_mdssvc_open_unkn3
);
258 mdssvc_dissect_element_open_unkn3_(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
)
260 offset
= PIDL_dissect_uint32(tvb
, offset
, pinfo
, tree
, di
, drep
, hf_mdssvc_mdssvc_open_unkn3
, 0);
266 mdssvc_dissect_element_open_share_mount_path(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
)
269 struct ndr_generic_array nga
= { .is_conformant
= false, };
271 offset
= dissect_ndr_conformant_array_hdr(tvb
, offset
, pinfo
, tree
, di
, drep
, &nga
);
273 offset
= dissect_ndr_varying_array_hdr(tvb
, offset
, pinfo
, tree
, di
, drep
, &nga
);
274 offset
= dissect_ndr_generic_array_string(tvb
, offset
, pinfo
, tree
, di
, drep
, sizeof(uint8_t), hf_mdssvc_mdssvc_open_share_mount_path
, false, &nga
, &data
);
275 proto_item_append_text(tree
, ": %s", data
);
281 mdssvc_dissect_element_open_share_name(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
)
284 struct ndr_generic_array nga
= { .is_conformant
= false, };
286 offset
= dissect_ndr_conformant_array_hdr(tvb
, offset
, pinfo
, tree
, di
, drep
, &nga
);
288 offset
= dissect_ndr_varying_array_hdr(tvb
, offset
, pinfo
, tree
, di
, drep
, &nga
);
289 offset
= dissect_ndr_generic_array_string(tvb
, offset
, pinfo
, tree
, di
, drep
, sizeof(uint8_t), hf_mdssvc_mdssvc_open_share_name
, false, &nga
, &data
);
290 proto_item_append_text(tree
, ": %s", data
);
296 mdssvc_dissect_element_open_share_path(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
)
299 struct ndr_generic_array nga
= { .is_conformant
= false, };
301 offset
= dissect_ndr_conformant_array_hdr(tvb
, offset
, pinfo
, tree
, di
, drep
, &nga
);
303 offset
= dissect_ndr_varying_array_hdr(tvb
, offset
, pinfo
, tree
, di
, drep
, &nga
);
304 offset
= dissect_ndr_generic_array_string(tvb
, offset
, pinfo
, tree
, di
, drep
, sizeof(uint8_t), hf_mdssvc_mdssvc_open_share_path
, false, &nga
, &data
);
305 proto_item_append_text(tree
, ": %s", data
);
311 mdssvc_dissect_element_open_handle(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
)
313 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
);
319 mdssvc_dissect_element_open_handle_(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
)
321 offset
= PIDL_dissect_policy_hnd(tvb
, offset
, pinfo
, tree
, di
, drep
, hf_mdssvc_mdssvc_open_handle
, 0);
326 /* IDL: void mdssvc_open( */
327 /* IDL: [in] [out] [ref] uint32 *device_id, */
328 /* IDL: [in] [out] [ref] uint32 *unkn2, */
329 /* IDL: [in] [out] [ref] uint32 *unkn3, */
330 /* IDL: [charset(UTF8)] [in] [size_is(1025)] uint8 share_mount_path[*], */
331 /* IDL: [charset(UTF8)] [in] [size_is(1025)] uint8 share_name[*], */
332 /* IDL: [charset(UTF8)] [out] [size_is(1025)] uint8 share_path[*], */
333 /* IDL: [out] [ref] policy_handle *handle */
337 mdssvc_dissect_open_response(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
)
339 di
->dcerpc_procedure_name
="open";
340 offset
= mdssvc_dissect_element_open_device_id(tvb
, offset
, pinfo
, tree
, di
, drep
);
341 offset
= dissect_deferred_pointers(pinfo
, tvb
, offset
, di
, drep
);
343 offset
= mdssvc_dissect_element_open_unkn2(tvb
, offset
, pinfo
, tree
, di
, drep
);
344 offset
= dissect_deferred_pointers(pinfo
, tvb
, offset
, di
, drep
);
346 offset
= mdssvc_dissect_element_open_unkn3(tvb
, offset
, pinfo
, tree
, di
, drep
);
347 offset
= dissect_deferred_pointers(pinfo
, tvb
, offset
, di
, drep
);
349 offset
= mdssvc_dissect_element_open_share_path(tvb
, offset
, pinfo
, tree
, di
, drep
);
350 offset
= dissect_deferred_pointers(pinfo
, tvb
, offset
, di
, drep
);
352 offset
= mdssvc_dissect_element_open_handle(tvb
, offset
, pinfo
, tree
, di
, drep
);
353 offset
= dissect_deferred_pointers(pinfo
, tvb
, offset
, di
, drep
);
359 mdssvc_dissect_open_request(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
)
361 di
->dcerpc_procedure_name
="open";
362 offset
= mdssvc_dissect_element_open_device_id(tvb
, offset
, pinfo
, tree
, di
, drep
);
363 offset
= dissect_deferred_pointers(pinfo
, tvb
, offset
, di
, drep
);
364 offset
= mdssvc_dissect_element_open_unkn2(tvb
, offset
, pinfo
, tree
, di
, drep
);
365 offset
= dissect_deferred_pointers(pinfo
, tvb
, offset
, di
, drep
);
366 offset
= mdssvc_dissect_element_open_unkn3(tvb
, offset
, pinfo
, tree
, di
, drep
);
367 offset
= dissect_deferred_pointers(pinfo
, tvb
, offset
, di
, drep
);
368 offset
= mdssvc_dissect_element_open_share_mount_path(tvb
, offset
, pinfo
, tree
, di
, drep
);
369 offset
= dissect_deferred_pointers(pinfo
, tvb
, offset
, di
, drep
);
370 offset
= mdssvc_dissect_element_open_share_name(tvb
, offset
, pinfo
, tree
, di
, drep
);
371 offset
= dissect_deferred_pointers(pinfo
, tvb
, offset
, di
, drep
);
376 mdssvc_dissect_element_unknown1_handle(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
)
378 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
);
384 mdssvc_dissect_element_unknown1_handle_(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
)
386 offset
= PIDL_dissect_policy_hnd(tvb
, offset
, pinfo
, tree
, di
, drep
, hf_mdssvc_mdssvc_unknown1_handle
, 0);
392 mdssvc_dissect_element_unknown1_unkn1(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
)
394 offset
= PIDL_dissect_uint32(tvb
, offset
, pinfo
, tree
, di
, drep
, hf_mdssvc_mdssvc_unknown1_unkn1
, 0);
400 mdssvc_dissect_element_unknown1_device_id(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
)
402 offset
= PIDL_dissect_uint32(tvb
, offset
, pinfo
, tree
, di
, drep
, hf_mdssvc_mdssvc_unknown1_device_id
, 0);
408 mdssvc_dissect_element_unknown1_unkn3(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
)
410 offset
= PIDL_dissect_uint32(tvb
, offset
, pinfo
, tree
, di
, drep
, hf_mdssvc_mdssvc_unknown1_unkn3
, 0);
416 mdssvc_dissect_element_unknown1_unkn4(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
)
418 offset
= PIDL_dissect_uint32(tvb
, offset
, pinfo
, tree
, di
, drep
, hf_mdssvc_mdssvc_unknown1_unkn4
, 0);
424 mdssvc_dissect_element_unknown1_uid(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
)
426 offset
= PIDL_dissect_uint32(tvb
, offset
, pinfo
, tree
, di
, drep
, hf_mdssvc_mdssvc_unknown1_uid
, 0);
432 mdssvc_dissect_element_unknown1_gid(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
)
434 offset
= PIDL_dissect_uint32(tvb
, offset
, pinfo
, tree
, di
, drep
, hf_mdssvc_mdssvc_unknown1_gid
, 0);
440 mdssvc_dissect_element_unknown1_status(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
)
442 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
);
448 mdssvc_dissect_element_unknown1_status_(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
)
450 offset
= PIDL_dissect_uint32(tvb
, offset
, pinfo
, tree
, di
, drep
, hf_mdssvc_mdssvc_unknown1_status
, 0);
456 mdssvc_dissect_element_unknown1_flags(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
)
458 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
);
464 mdssvc_dissect_element_unknown1_flags_(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
)
466 offset
= PIDL_dissect_uint32(tvb
, offset
, pinfo
, tree
, di
, drep
, hf_mdssvc_mdssvc_unknown1_flags
, 0);
472 mdssvc_dissect_element_unknown1_unkn7(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
)
474 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
);
480 mdssvc_dissect_element_unknown1_unkn7_(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
)
482 offset
= PIDL_dissect_uint32(tvb
, offset
, pinfo
, tree
, di
, drep
, hf_mdssvc_mdssvc_unknown1_unkn7
, 0);
487 /* IDL: void mdssvc_unknown1( */
488 /* IDL: [in] [ref] policy_handle *handle, */
489 /* IDL: [in] uint32 unkn1, */
490 /* IDL: [in] uint32 device_id, */
491 /* IDL: [in] uint32 unkn3, */
492 /* IDL: [in] uint32 unkn4, */
493 /* IDL: [in] uint32 uid, */
494 /* IDL: [in] uint32 gid, */
495 /* IDL: [out] [ref] uint32 *status, */
496 /* IDL: [out] [ref] uint32 *flags, */
497 /* IDL: [out] [ref] uint32 *unkn7 */
501 mdssvc_dissect_unknown1_response(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
)
503 di
->dcerpc_procedure_name
="unknown1";
504 offset
= mdssvc_dissect_element_unknown1_status(tvb
, offset
, pinfo
, tree
, di
, drep
);
505 offset
= dissect_deferred_pointers(pinfo
, tvb
, offset
, di
, drep
);
507 offset
= mdssvc_dissect_element_unknown1_flags(tvb
, offset
, pinfo
, tree
, di
, drep
);
508 offset
= dissect_deferred_pointers(pinfo
, tvb
, offset
, di
, drep
);
510 offset
= mdssvc_dissect_element_unknown1_unkn7(tvb
, offset
, pinfo
, tree
, di
, drep
);
511 offset
= dissect_deferred_pointers(pinfo
, tvb
, offset
, di
, drep
);
517 mdssvc_dissect_unknown1_request(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
)
519 di
->dcerpc_procedure_name
="unknown1";
520 offset
= mdssvc_dissect_element_unknown1_handle(tvb
, offset
, pinfo
, tree
, di
, drep
);
521 offset
= dissect_deferred_pointers(pinfo
, tvb
, offset
, di
, drep
);
522 offset
= mdssvc_dissect_element_unknown1_unkn1(tvb
, offset
, pinfo
, tree
, di
, drep
);
523 offset
= dissect_deferred_pointers(pinfo
, tvb
, offset
, di
, drep
);
524 offset
= mdssvc_dissect_element_unknown1_device_id(tvb
, offset
, pinfo
, tree
, di
, drep
);
525 offset
= dissect_deferred_pointers(pinfo
, tvb
, offset
, di
, drep
);
526 offset
= mdssvc_dissect_element_unknown1_unkn3(tvb
, offset
, pinfo
, tree
, di
, drep
);
527 offset
= dissect_deferred_pointers(pinfo
, tvb
, offset
, di
, drep
);
528 offset
= mdssvc_dissect_element_unknown1_unkn4(tvb
, offset
, pinfo
, tree
, di
, drep
);
529 offset
= dissect_deferred_pointers(pinfo
, tvb
, offset
, di
, drep
);
530 offset
= mdssvc_dissect_element_unknown1_uid(tvb
, offset
, pinfo
, tree
, di
, drep
);
531 offset
= dissect_deferred_pointers(pinfo
, tvb
, offset
, di
, drep
);
532 offset
= mdssvc_dissect_element_unknown1_gid(tvb
, offset
, pinfo
, tree
, di
, drep
);
533 offset
= dissect_deferred_pointers(pinfo
, tvb
, offset
, di
, drep
);
538 mdssvc_dissect_element_cmd_handle(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
)
540 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
);
546 mdssvc_dissect_element_cmd_handle_(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
)
548 offset
= PIDL_dissect_policy_hnd(tvb
, offset
, pinfo
, tree
, di
, drep
, hf_mdssvc_mdssvc_cmd_handle
, 0);
554 mdssvc_dissect_element_cmd_unkn1(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
)
556 offset
= PIDL_dissect_uint32(tvb
, offset
, pinfo
, tree
, di
, drep
, hf_mdssvc_mdssvc_cmd_unkn1
, 0);
562 mdssvc_dissect_element_cmd_device_id(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
)
564 offset
= PIDL_dissect_uint32(tvb
, offset
, pinfo
, tree
, di
, drep
, hf_mdssvc_mdssvc_cmd_device_id
, 0);
570 mdssvc_dissect_element_cmd_unkn3(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
)
572 offset
= PIDL_dissect_uint32(tvb
, offset
, pinfo
, tree
, di
, drep
, hf_mdssvc_mdssvc_cmd_unkn3
, 0);
578 mdssvc_dissect_element_cmd_unkn4(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
)
580 offset
= PIDL_dissect_uint32(tvb
, offset
, pinfo
, tree
, di
, drep
, hf_mdssvc_mdssvc_cmd_unkn4
, 0);
586 mdssvc_dissect_element_cmd_flags(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
)
588 offset
= PIDL_dissect_uint32(tvb
, offset
, pinfo
, tree
, di
, drep
, hf_mdssvc_mdssvc_cmd_flags
, 0);
594 mdssvc_dissect_element_cmd_request_blob(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
)
596 offset
= mdssvc_dissect_struct_blob(tvb
,offset
,pinfo
,tree
,di
,drep
,hf_mdssvc_mdssvc_cmd_request_blob
,0);
602 mdssvc_dissect_element_cmd_unkn5(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
)
604 offset
= PIDL_dissect_uint32(tvb
, offset
, pinfo
, tree
, di
, drep
, hf_mdssvc_mdssvc_cmd_unkn5
, 0);
610 mdssvc_dissect_element_cmd_max_fragment_size1(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
)
612 offset
= PIDL_dissect_uint32(tvb
, offset
, pinfo
, tree
, di
, drep
, hf_mdssvc_mdssvc_cmd_max_fragment_size1
, 0);
618 mdssvc_dissect_element_cmd_unkn6(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
)
620 offset
= PIDL_dissect_uint32(tvb
, offset
, pinfo
, tree
, di
, drep
, hf_mdssvc_mdssvc_cmd_unkn6
, 0);
626 mdssvc_dissect_element_cmd_max_fragment_size2(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
)
628 offset
= PIDL_dissect_uint32(tvb
, offset
, pinfo
, tree
, di
, drep
, hf_mdssvc_mdssvc_cmd_max_fragment_size2
, 0);
634 mdssvc_dissect_element_cmd_unkn7(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
)
636 offset
= PIDL_dissect_uint32(tvb
, offset
, pinfo
, tree
, di
, drep
, hf_mdssvc_mdssvc_cmd_unkn7
, 0);
642 mdssvc_dissect_element_cmd_unkn8(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
)
644 offset
= PIDL_dissect_uint32(tvb
, offset
, pinfo
, tree
, di
, drep
, hf_mdssvc_mdssvc_cmd_unkn8
, 0);
650 mdssvc_dissect_element_cmd_fragment(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
)
652 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
);
658 mdssvc_dissect_element_cmd_fragment_(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
)
660 offset
= PIDL_dissect_uint32(tvb
, offset
, pinfo
, tree
, di
, drep
, hf_mdssvc_mdssvc_cmd_fragment
, 0);
666 mdssvc_dissect_element_cmd_response_blob(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
)
668 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
);
674 mdssvc_dissect_element_cmd_response_blob_(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
)
676 offset
= mdssvc_dissect_struct_blob(tvb
,offset
,pinfo
,tree
,di
,drep
,hf_mdssvc_mdssvc_cmd_response_blob
,0);
682 mdssvc_dissect_element_cmd_unkn9(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
)
684 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
);
690 mdssvc_dissect_element_cmd_unkn9_(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
)
692 offset
= PIDL_dissect_uint32(tvb
, offset
, pinfo
, tree
, di
, drep
, hf_mdssvc_mdssvc_cmd_unkn9
, 0);
697 /* IDL: void mdssvc_cmd( */
698 /* IDL: [in] [ref] policy_handle *handle, */
699 /* IDL: [in] uint32 unkn1, */
700 /* IDL: [in] uint32 device_id, */
701 /* IDL: [in] uint32 unkn3, */
702 /* IDL: [in] uint32 unkn4, */
703 /* IDL: [in] uint32 flags, */
704 /* IDL: [in] mdssvc_blob request_blob, */
705 /* IDL: [in] uint32 unkn5, */
706 /* IDL: [in] uint32 max_fragment_size1, */
707 /* IDL: [in] uint32 unkn6, */
708 /* IDL: [in] uint32 max_fragment_size2, */
709 /* IDL: [in] uint32 unkn7, */
710 /* IDL: [in] uint32 unkn8, */
711 /* IDL: [out] [ref] uint32 *fragment, */
712 /* IDL: [out] [ref] mdssvc_blob *response_blob, */
713 /* IDL: [out] [ref] uint32 *unkn9 */
717 mdssvc_dissect_cmd_response(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
)
719 di
->dcerpc_procedure_name
="cmd";
720 offset
= mdssvc_dissect_element_cmd_fragment(tvb
, offset
, pinfo
, tree
, di
, drep
);
721 offset
= dissect_deferred_pointers(pinfo
, tvb
, offset
, di
, drep
);
723 offset
= mdssvc_dissect_element_cmd_response_blob(tvb
, offset
, pinfo
, tree
, di
, drep
);
724 offset
= dissect_deferred_pointers(pinfo
, tvb
, offset
, di
, drep
);
726 offset
= mdssvc_dissect_element_cmd_unkn9(tvb
, offset
, pinfo
, tree
, di
, drep
);
727 offset
= dissect_deferred_pointers(pinfo
, tvb
, offset
, di
, drep
);
733 mdssvc_dissect_cmd_request(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
)
735 di
->dcerpc_procedure_name
="cmd";
736 offset
= mdssvc_dissect_element_cmd_handle(tvb
, offset
, pinfo
, tree
, di
, drep
);
737 offset
= dissect_deferred_pointers(pinfo
, tvb
, offset
, di
, drep
);
738 offset
= mdssvc_dissect_element_cmd_unkn1(tvb
, offset
, pinfo
, tree
, di
, drep
);
739 offset
= dissect_deferred_pointers(pinfo
, tvb
, offset
, di
, drep
);
740 offset
= mdssvc_dissect_element_cmd_device_id(tvb
, offset
, pinfo
, tree
, di
, drep
);
741 offset
= dissect_deferred_pointers(pinfo
, tvb
, offset
, di
, drep
);
742 offset
= mdssvc_dissect_element_cmd_unkn3(tvb
, offset
, pinfo
, tree
, di
, drep
);
743 offset
= dissect_deferred_pointers(pinfo
, tvb
, offset
, di
, drep
);
744 offset
= mdssvc_dissect_element_cmd_unkn4(tvb
, offset
, pinfo
, tree
, di
, drep
);
745 offset
= dissect_deferred_pointers(pinfo
, tvb
, offset
, di
, drep
);
746 offset
= mdssvc_dissect_element_cmd_flags(tvb
, offset
, pinfo
, tree
, di
, drep
);
747 offset
= dissect_deferred_pointers(pinfo
, tvb
, offset
, di
, drep
);
748 offset
= mdssvc_dissect_element_cmd_request_blob(tvb
, offset
, pinfo
, tree
, di
, drep
);
749 offset
= dissect_deferred_pointers(pinfo
, tvb
, offset
, di
, drep
);
750 offset
= mdssvc_dissect_element_cmd_unkn5(tvb
, offset
, pinfo
, tree
, di
, drep
);
751 offset
= dissect_deferred_pointers(pinfo
, tvb
, offset
, di
, drep
);
752 offset
= mdssvc_dissect_element_cmd_max_fragment_size1(tvb
, offset
, pinfo
, tree
, di
, drep
);
753 offset
= dissect_deferred_pointers(pinfo
, tvb
, offset
, di
, drep
);
754 offset
= mdssvc_dissect_element_cmd_unkn6(tvb
, offset
, pinfo
, tree
, di
, drep
);
755 offset
= dissect_deferred_pointers(pinfo
, tvb
, offset
, di
, drep
);
756 offset
= mdssvc_dissect_element_cmd_max_fragment_size2(tvb
, offset
, pinfo
, tree
, di
, drep
);
757 offset
= dissect_deferred_pointers(pinfo
, tvb
, offset
, di
, drep
);
758 offset
= mdssvc_dissect_element_cmd_unkn7(tvb
, offset
, pinfo
, tree
, di
, drep
);
759 offset
= dissect_deferred_pointers(pinfo
, tvb
, offset
, di
, drep
);
760 offset
= mdssvc_dissect_element_cmd_unkn8(tvb
, offset
, pinfo
, tree
, di
, drep
);
761 offset
= dissect_deferred_pointers(pinfo
, tvb
, offset
, di
, drep
);
766 mdssvc_dissect_element_close_in_handle(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
)
768 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
);
774 mdssvc_dissect_element_close_in_handle_(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
)
776 offset
= PIDL_dissect_policy_hnd(tvb
, offset
, pinfo
, tree
, di
, drep
, hf_mdssvc_mdssvc_close_in_handle
, 0);
782 mdssvc_dissect_element_close_unkn1(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
)
784 offset
= PIDL_dissect_uint32(tvb
, offset
, pinfo
, tree
, di
, drep
, hf_mdssvc_mdssvc_close_unkn1
, 0);
790 mdssvc_dissect_element_close_device_id(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
)
792 offset
= PIDL_dissect_uint32(tvb
, offset
, pinfo
, tree
, di
, drep
, hf_mdssvc_mdssvc_close_device_id
, 0);
798 mdssvc_dissect_element_close_unkn2(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
)
800 offset
= PIDL_dissect_uint32(tvb
, offset
, pinfo
, tree
, di
, drep
, hf_mdssvc_mdssvc_close_unkn2
, 0);
806 mdssvc_dissect_element_close_unkn3(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
)
808 offset
= PIDL_dissect_uint32(tvb
, offset
, pinfo
, tree
, di
, drep
, hf_mdssvc_mdssvc_close_unkn3
, 0);
814 mdssvc_dissect_element_close_out_handle(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
)
816 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
);
822 mdssvc_dissect_element_close_out_handle_(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
)
824 offset
= PIDL_dissect_policy_hnd(tvb
, offset
, pinfo
, tree
, di
, drep
, hf_mdssvc_mdssvc_close_out_handle
, 0);
830 mdssvc_dissect_element_close_status(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
)
832 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
);
838 mdssvc_dissect_element_close_status_(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
)
840 offset
= PIDL_dissect_uint32(tvb
, offset
, pinfo
, tree
, di
, drep
, hf_mdssvc_mdssvc_close_status
, 0);
845 /* IDL: void mdssvc_close( */
846 /* IDL: [in] [ref] policy_handle *in_handle, */
847 /* IDL: [in] uint32 unkn1, */
848 /* IDL: [in] uint32 device_id, */
849 /* IDL: [in] uint32 unkn2, */
850 /* IDL: [in] uint32 unkn3, */
851 /* IDL: [out] [ref] policy_handle *out_handle, */
852 /* IDL: [out] [ref] uint32 *status */
856 mdssvc_dissect_close_response(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
)
858 di
->dcerpc_procedure_name
="close";
859 offset
= mdssvc_dissect_element_close_out_handle(tvb
, offset
, pinfo
, tree
, di
, drep
);
860 offset
= dissect_deferred_pointers(pinfo
, tvb
, offset
, di
, drep
);
862 offset
= mdssvc_dissect_element_close_status(tvb
, offset
, pinfo
, tree
, di
, drep
);
863 offset
= dissect_deferred_pointers(pinfo
, tvb
, offset
, di
, drep
);
869 mdssvc_dissect_close_request(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
)
871 di
->dcerpc_procedure_name
="close";
872 offset
= mdssvc_dissect_element_close_in_handle(tvb
, offset
, pinfo
, tree
, di
, drep
);
873 offset
= dissect_deferred_pointers(pinfo
, tvb
, offset
, di
, drep
);
874 offset
= mdssvc_dissect_element_close_unkn1(tvb
, offset
, pinfo
, tree
, di
, drep
);
875 offset
= dissect_deferred_pointers(pinfo
, tvb
, offset
, di
, drep
);
876 offset
= mdssvc_dissect_element_close_device_id(tvb
, offset
, pinfo
, tree
, di
, drep
);
877 offset
= dissect_deferred_pointers(pinfo
, tvb
, offset
, di
, drep
);
878 offset
= mdssvc_dissect_element_close_unkn2(tvb
, offset
, pinfo
, tree
, di
, drep
);
879 offset
= dissect_deferred_pointers(pinfo
, tvb
, offset
, di
, drep
);
880 offset
= mdssvc_dissect_element_close_unkn3(tvb
, offset
, pinfo
, tree
, di
, drep
);
881 offset
= dissect_deferred_pointers(pinfo
, tvb
, offset
, di
, drep
);
886 static const dcerpc_sub_dissector mdssvc_dissectors
[] = {
888 mdssvc_dissect_open_request
, mdssvc_dissect_open_response
},
890 mdssvc_dissect_unknown1_request
, mdssvc_dissect_unknown1_response
},
892 mdssvc_dissect_cmd_request
, mdssvc_dissect_cmd_response
},
894 mdssvc_dissect_close_request
, mdssvc_dissect_close_response
},
895 { 0, NULL
, NULL
, NULL
}
898 void proto_register_dcerpc_mdssvc(void)
900 static hf_register_info hf
[] = {
901 { &hf_mdssvc_mdssvc_blob_length
,
902 { "Length", "mdssvc.mdssvc_blob.length", FT_UINT32
, BASE_DEC
, NULL
, 0, NULL
, HFILL
}},
903 { &hf_mdssvc_mdssvc_blob_size
,
904 { "Size", "mdssvc.mdssvc_blob.size", FT_UINT32
, BASE_DEC
, NULL
, 0, NULL
, HFILL
}},
905 { &hf_mdssvc_mdssvc_blob_spotlight_blob
,
906 { "Spotlight Blob", "mdssvc.mdssvc_blob.spotlight_blob", FT_UINT8
, BASE_DEC
, NULL
, 0, NULL
, HFILL
}},
907 { &hf_mdssvc_mdssvc_close_device_id
,
908 { "Device Id", "mdssvc.mdssvc_close.device_id", FT_UINT32
, BASE_DEC
, NULL
, 0, NULL
, HFILL
}},
909 { &hf_mdssvc_mdssvc_close_in_handle
,
910 { "In Handle", "mdssvc.mdssvc_close.in_handle", FT_BYTES
, BASE_NONE
, NULL
, 0, NULL
, HFILL
}},
911 { &hf_mdssvc_mdssvc_close_out_handle
,
912 { "Out Handle", "mdssvc.mdssvc_close.out_handle", FT_BYTES
, BASE_NONE
, NULL
, 0, NULL
, HFILL
}},
913 { &hf_mdssvc_mdssvc_close_status
,
914 { "Status", "mdssvc.mdssvc_close.status", FT_UINT32
, BASE_DEC
, NULL
, 0, NULL
, HFILL
}},
915 { &hf_mdssvc_mdssvc_close_unkn1
,
916 { "Unkn1", "mdssvc.mdssvc_close.unkn1", FT_UINT32
, BASE_DEC
, NULL
, 0, NULL
, HFILL
}},
917 { &hf_mdssvc_mdssvc_close_unkn2
,
918 { "Unkn2", "mdssvc.mdssvc_close.unkn2", FT_UINT32
, BASE_DEC
, NULL
, 0, NULL
, HFILL
}},
919 { &hf_mdssvc_mdssvc_close_unkn3
,
920 { "Unkn3", "mdssvc.mdssvc_close.unkn3", FT_UINT32
, BASE_DEC
, NULL
, 0, NULL
, HFILL
}},
921 { &hf_mdssvc_mdssvc_cmd_device_id
,
922 { "Device Id", "mdssvc.mdssvc_cmd.device_id", FT_UINT32
, BASE_DEC
, NULL
, 0, NULL
, HFILL
}},
923 { &hf_mdssvc_mdssvc_cmd_flags
,
924 { "Flags", "mdssvc.mdssvc_cmd.flags", FT_UINT32
, BASE_DEC
, NULL
, 0, NULL
, HFILL
}},
925 { &hf_mdssvc_mdssvc_cmd_fragment
,
926 { "Fragment", "mdssvc.mdssvc_cmd.fragment", FT_UINT32
, BASE_DEC
, NULL
, 0, NULL
, HFILL
}},
927 { &hf_mdssvc_mdssvc_cmd_handle
,
928 { "Handle", "mdssvc.mdssvc_cmd.handle", FT_BYTES
, BASE_NONE
, NULL
, 0, NULL
, HFILL
}},
929 { &hf_mdssvc_mdssvc_cmd_max_fragment_size1
,
930 { "Max Fragment Size1", "mdssvc.mdssvc_cmd.max_fragment_size1", FT_UINT32
, BASE_DEC
, NULL
, 0, NULL
, HFILL
}},
931 { &hf_mdssvc_mdssvc_cmd_max_fragment_size2
,
932 { "Max Fragment Size2", "mdssvc.mdssvc_cmd.max_fragment_size2", FT_UINT32
, BASE_DEC
, NULL
, 0, NULL
, HFILL
}},
933 { &hf_mdssvc_mdssvc_cmd_request_blob
,
934 { "Request Blob", "mdssvc.mdssvc_cmd.request_blob", FT_NONE
, BASE_NONE
, NULL
, 0, NULL
, HFILL
}},
935 { &hf_mdssvc_mdssvc_cmd_response_blob
,
936 { "Response Blob", "mdssvc.mdssvc_cmd.response_blob", FT_NONE
, BASE_NONE
, NULL
, 0, NULL
, HFILL
}},
937 { &hf_mdssvc_mdssvc_cmd_unkn1
,
938 { "Unkn1", "mdssvc.mdssvc_cmd.unkn1", FT_UINT32
, BASE_DEC
, NULL
, 0, NULL
, HFILL
}},
939 { &hf_mdssvc_mdssvc_cmd_unkn3
,
940 { "Unkn3", "mdssvc.mdssvc_cmd.unkn3", FT_UINT32
, BASE_DEC
, NULL
, 0, NULL
, HFILL
}},
941 { &hf_mdssvc_mdssvc_cmd_unkn4
,
942 { "Unkn4", "mdssvc.mdssvc_cmd.unkn4", FT_UINT32
, BASE_DEC
, NULL
, 0, NULL
, HFILL
}},
943 { &hf_mdssvc_mdssvc_cmd_unkn5
,
944 { "Unkn5", "mdssvc.mdssvc_cmd.unkn5", FT_UINT32
, BASE_DEC
, NULL
, 0, NULL
, HFILL
}},
945 { &hf_mdssvc_mdssvc_cmd_unkn6
,
946 { "Unkn6", "mdssvc.mdssvc_cmd.unkn6", FT_UINT32
, BASE_DEC
, NULL
, 0, NULL
, HFILL
}},
947 { &hf_mdssvc_mdssvc_cmd_unkn7
,
948 { "Unkn7", "mdssvc.mdssvc_cmd.unkn7", FT_UINT32
, BASE_DEC
, NULL
, 0, NULL
, HFILL
}},
949 { &hf_mdssvc_mdssvc_cmd_unkn8
,
950 { "Unkn8", "mdssvc.mdssvc_cmd.unkn8", FT_UINT32
, BASE_DEC
, NULL
, 0, NULL
, HFILL
}},
951 { &hf_mdssvc_mdssvc_cmd_unkn9
,
952 { "Unkn9", "mdssvc.mdssvc_cmd.unkn9", FT_UINT32
, BASE_DEC
, NULL
, 0, NULL
, HFILL
}},
953 { &hf_mdssvc_mdssvc_open_device_id
,
954 { "Device Id", "mdssvc.mdssvc_open.device_id", FT_UINT32
, BASE_DEC
, NULL
, 0, NULL
, HFILL
}},
955 { &hf_mdssvc_mdssvc_open_handle
,
956 { "Handle", "mdssvc.mdssvc_open.handle", FT_BYTES
, BASE_NONE
, NULL
, 0, NULL
, HFILL
}},
957 { &hf_mdssvc_mdssvc_open_share_mount_path
,
958 { "Share Mount Path", "mdssvc.mdssvc_open.share_mount_path", FT_STRING
, BASE_NONE
, NULL
, 0, NULL
, HFILL
}},
959 { &hf_mdssvc_mdssvc_open_share_name
,
960 { "Share Name", "mdssvc.mdssvc_open.share_name", FT_STRING
, BASE_NONE
, NULL
, 0, NULL
, HFILL
}},
961 { &hf_mdssvc_mdssvc_open_share_path
,
962 { "Share Path", "mdssvc.mdssvc_open.share_path", FT_STRING
, BASE_NONE
, NULL
, 0, NULL
, HFILL
}},
963 { &hf_mdssvc_mdssvc_open_unkn2
,
964 { "Unkn2", "mdssvc.mdssvc_open.unkn2", FT_UINT32
, BASE_DEC
, NULL
, 0, NULL
, HFILL
}},
965 { &hf_mdssvc_mdssvc_open_unkn3
,
966 { "Unkn3", "mdssvc.mdssvc_open.unkn3", FT_UINT32
, BASE_DEC
, NULL
, 0, NULL
, HFILL
}},
967 { &hf_mdssvc_mdssvc_unknown1_device_id
,
968 { "Device Id", "mdssvc.mdssvc_unknown1.device_id", FT_UINT32
, BASE_DEC
, NULL
, 0, NULL
, HFILL
}},
969 { &hf_mdssvc_mdssvc_unknown1_flags
,
970 { "Flags", "mdssvc.mdssvc_unknown1.flags", FT_UINT32
, BASE_DEC
, NULL
, 0, NULL
, HFILL
}},
971 { &hf_mdssvc_mdssvc_unknown1_gid
,
972 { "Gid", "mdssvc.mdssvc_unknown1.gid", FT_UINT32
, BASE_DEC
, NULL
, 0, NULL
, HFILL
}},
973 { &hf_mdssvc_mdssvc_unknown1_handle
,
974 { "Handle", "mdssvc.mdssvc_unknown1.handle", FT_BYTES
, BASE_NONE
, NULL
, 0, NULL
, HFILL
}},
975 { &hf_mdssvc_mdssvc_unknown1_status
,
976 { "Status", "mdssvc.mdssvc_unknown1.status", FT_UINT32
, BASE_DEC
, NULL
, 0, NULL
, HFILL
}},
977 { &hf_mdssvc_mdssvc_unknown1_uid
,
978 { "Uid", "mdssvc.mdssvc_unknown1.uid", FT_UINT32
, BASE_DEC
, NULL
, 0, NULL
, HFILL
}},
979 { &hf_mdssvc_mdssvc_unknown1_unkn1
,
980 { "Unkn1", "mdssvc.mdssvc_unknown1.unkn1", FT_UINT32
, BASE_DEC
, NULL
, 0, NULL
, HFILL
}},
981 { &hf_mdssvc_mdssvc_unknown1_unkn3
,
982 { "Unkn3", "mdssvc.mdssvc_unknown1.unkn3", FT_UINT32
, BASE_DEC
, NULL
, 0, NULL
, HFILL
}},
983 { &hf_mdssvc_mdssvc_unknown1_unkn4
,
984 { "Unkn4", "mdssvc.mdssvc_unknown1.unkn4", FT_UINT32
, BASE_DEC
, NULL
, 0, NULL
, HFILL
}},
985 { &hf_mdssvc_mdssvc_unknown1_unkn7
,
986 { "Unkn7", "mdssvc.mdssvc_unknown1.unkn7", FT_UINT32
, BASE_DEC
, NULL
, 0, NULL
, HFILL
}},
988 { "Operation", "mdssvc.opnum", FT_UINT16
, BASE_DEC
, NULL
, 0, NULL
, HFILL
}},
992 static int *ett
[] = {
994 &ett_mdssvc_mdssvc_blob
,
997 proto_dcerpc_mdssvc
= proto_register_protocol("Spotlight metadata search service", "MDSSVC", "mdssvc");
998 proto_register_field_array(proto_dcerpc_mdssvc
, hf
, array_length (hf
));
999 proto_register_subtree_array(ett
, array_length(ett
));
1002 void proto_reg_handoff_dcerpc_mdssvc(void)
1004 dcerpc_init_uuid(proto_dcerpc_mdssvc
, ett_dcerpc_mdssvc
,
1005 &uuid_dcerpc_mdssvc
, ver_dcerpc_mdssvc
,
1006 mdssvc_dissectors
, hf_mdssvc_opnum
);