bf31af8cf04c290d071d0ad5f55e6c020a692c8b
[metze/samba/wip.git] / bin / default / librpc / gen_ndr / packet-dcerpc-orpc.c
1 /* DO NOT EDIT
2         This filter was automatically generated
3         from /home/metze/devel/samba/4.0/master4-franky/librpc/idl/orpc.idl and /home/metze/devel/samba/4.0/master4-franky/librpc/idl/orpc.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 http://wiki.wireshark.org/Pidl
9
10         $Id$
11 */
12
13
14 #include "config.h"
15 #ifdef _MSC_VER
16 #pragma warning(disable:4005)
17 #pragma warning(disable:4013)
18 #pragma warning(disable:4018)
19 #pragma warning(disable:4101)
20 #endif
21
22 #include <glib.h>
23 #include <string.h>
24 #include <epan/packet.h>
25
26 #include "packet-dcerpc.h"
27 #include "packet-dcerpc-nt.h"
28 #include "packet-windows-common.h"
29 #include "packet-dcerpc-orpc.h"
30
31 /* Ett declarations */
32 static gint ett_dcerpc_ObjectRpcBaseTypes = -1;
33 static gint ett_ObjectRpcBaseTypes_COMVERSION = -1;
34 static gint ett_ObjectRpcBaseTypes_ORPC_FLAGS = -1;
35 static gint ett_ObjectRpcBaseTypes_ORPC_EXTENT = -1;
36 static gint ett_ObjectRpcBaseTypes_ORPC_EXTENT_ARRAY = -1;
37 static gint ett_ObjectRpcBaseTypes_ORPCTHIS = -1;
38 static gint ett_ObjectRpcBaseTypes_ORPCTHAT = -1;
39 static gint ett_ObjectRpcBaseTypes_STRINGBINDING = -1;
40 static gint ett_ObjectRpcBaseTypes_STRINGARRAY = -1;
41 static gint ett_ObjectRpcBaseTypes_DUALSTRINGARRAY = -1;
42 static gint ett_ObjectRpcBaseTypes_SECURITYBINDING = -1;
43 static gint ett_ObjectRpcBaseTypes_STDOBJREF_FLAGS = -1;
44 static gint ett_ObjectRpcBaseTypes_STDOBJREF = -1;
45 static gint ett_ObjectRpcBaseTypes_u_standard = -1;
46 static gint ett_ObjectRpcBaseTypes_u_handler = -1;
47 static gint ett_ObjectRpcBaseTypes_u_custom = -1;
48 static gint ett_ObjectRpcBaseTypes_u_null = -1;
49 static gint ett_ObjectRpcBaseTypes_OBJREF_Types = -1;
50 static gint ett_ObjectRpcBaseTypes_OBJREF = -1;
51 static gint ett_ObjectRpcBaseTypes_MInterfacePointer = -1;
52
53
54 /* Header field declarations */
55 static gint hf_ObjectRpcBaseTypes_ORPC_FLAGS_ORPCF_RESERVED1 = -1;
56 static gint hf_ObjectRpcBaseTypes_COMVERSION_MajorVersion = -1;
57 static gint hf_ObjectRpcBaseTypes_ORPC_FLAGS_ORPCF_RESERVED3 = -1;
58 static gint hf_ObjectRpcBaseTypes_SECURITYBINDING_PrincName = -1;
59 static gint hf_ObjectRpcBaseTypes_ORPC_FLAGS_ORPCF_RESERVED2 = -1;
60 static gint hf_ObjectRpcBaseTypes_u_standard_saResAddr = -1;
61 static gint hf_ObjectRpcBaseTypes_STDOBJREF_ipid = -1;
62 static gint hf_ObjectRpcBaseTypes_STDOBJREF_FLAGS_SORF_OXRES5 = -1;
63 static gint hf_ObjectRpcBaseTypes_STDOBJREF_FLAGS_SORF_OXRES2 = -1;
64 static gint hf_ObjectRpcBaseTypes_ORPCTHAT_flags = -1;
65 static gint hf_ObjectRpcBaseTypes_MInterfacePointer_obj = -1;
66 static gint hf_ObjectRpcBaseTypes_STRINGBINDING_NetworkAddr = -1;
67 static gint hf_ObjectRpcBaseTypes_MInterfacePointer_obj_ = -1;
68 static gint hf_ObjectRpcBaseTypes_ORPCTHIS_reserved1 = -1;
69 static gint hf_ObjectRpcBaseTypes_OBJREF_u_objref = -1;
70 static gint hf_ObjectRpcBaseTypes_OBJREF_Types_u_standard = -1;
71 static gint hf_ObjectRpcBaseTypes_ORPC_FLAGS_ORPCF_LOCAL = -1;
72 static gint hf_ObjectRpcBaseTypes_STDOBJREF_FLAGS_SORF_NOPING = -1;
73 static gint hf_ObjectRpcBaseTypes_STDOBJREF_FLAGS_SORF_OXRES3 = -1;
74 static gint hf_ObjectRpcBaseTypes_ORPC_FLAGS_ORPCF_NULL = -1;
75 static gint hf_ObjectRpcBaseTypes_ORPCTHAT_extensions = -1;
76 static gint hf_ObjectRpcBaseTypes_STRINGBINDING_wTowerId = -1;
77 static gint hf_ObjectRpcBaseTypes_STRINGARRAY_stringbindings = -1;
78 static gint hf_ObjectRpcBaseTypes_STDOBJREF_FLAGS_SORF_OXRES8 = -1;
79 static gint hf_ObjectRpcBaseTypes_STDOBJREF_cPublicRefs = -1;
80 static gint hf_ObjectRpcBaseTypes_STDOBJREF_FLAGS_SORF_OXRES6 = -1;
81 static gint hf_ObjectRpcBaseTypes_OBJREF_Types_u_null = -1;
82 static gint hf_ObjectRpcBaseTypes_u_standard_std = -1;
83 static gint hf_ObjectRpcBaseTypes_ORPCTHIS_flags = -1;
84 static gint hf_ObjectRpcBaseTypes_SECURITYBINDING_wAuthzSvc = -1;
85 static gint hf_ObjectRpcBaseTypes_SECURITYBINDING_wAuthnSvc = -1;
86 static gint hf_ObjectRpcBaseTypes_ORPCTHIS_extensions = -1;
87 static gint hf_ObjectRpcBaseTypes_DUALSTRINGARRAY_securitybindings = -1;
88 static gint hf_ObjectRpcBaseTypes_ORPC_EXTENT_ARRAY_size = -1;
89 static gint hf_ObjectRpcBaseTypes_u_handler_std = -1;
90 static gint hf_ObjectRpcBaseTypes_STDOBJREF_oxid = -1;
91 static gint hf_ObjectRpcBaseTypes_OBJREF_flags = -1;
92 static gint hf_ObjectRpcBaseTypes_STDOBJREF_FLAGS_SORF_NULL = -1;
93 static gint hf_ObjectRpcBaseTypes_ORPC_FLAGS_ORPCF_RESERVED4 = -1;
94 static gint hf_ObjectRpcBaseTypes_ORPC_EXTENT_size = -1;
95 static gint hf_ObjectRpcBaseTypes_OBJREF_Types_u_handler = -1;
96 static gint hf_ObjectRpcBaseTypes_u_custom_cbExtension = -1;
97 static gint hf_ObjectRpcBaseTypes_opnum = -1;
98 static gint hf_ObjectRpcBaseTypes_u_handler_clsid = -1;
99 static gint hf_ObjectRpcBaseTypes_OBJREF_signature = -1;
100 static gint hf_ObjectRpcBaseTypes_OBJREF_Types_u_custom = -1;
101 static gint hf_ObjectRpcBaseTypes_ORPC_EXTENT_ARRAY_extent = -1;
102 static gint hf_ObjectRpcBaseTypes_ORPC_EXTENT_id = -1;
103 static gint hf_ObjectRpcBaseTypes_u_custom_size = -1;
104 static gint hf_ObjectRpcBaseTypes_OBJREF_iid = -1;
105 static gint hf_ObjectRpcBaseTypes_ORPCTHIS_version = -1;
106 static gint hf_ObjectRpcBaseTypes_STDOBJREF_FLAGS_SORF_OXRES4 = -1;
107 static gint hf_ObjectRpcBaseTypes_ORPC_EXTENT_ARRAY_reserved = -1;
108 static gint hf_ObjectRpcBaseTypes_COMVERSION_MinorVersion = -1;
109 static gint hf_ObjectRpcBaseTypes_MInterfacePointer_size = -1;
110 static gint hf_ObjectRpcBaseTypes_STDOBJREF_FLAGS_SORF_OXRES1 = -1;
111 static gint hf_ObjectRpcBaseTypes_u_custom_clsid = -1;
112 static gint hf_ObjectRpcBaseTypes_STDOBJREF_oid = -1;
113 static gint hf_ObjectRpcBaseTypes_u_handler_saResAddr = -1;
114 static gint hf_ObjectRpcBaseTypes_DUALSTRINGARRAY_stringbindings = -1;
115 static gint hf_ObjectRpcBaseTypes_STDOBJREF_FLAGS_SORF_OXRES7 = -1;
116 static gint hf_ObjectRpcBaseTypes_ORPCTHIS_cid = -1;
117 static gint hf_ObjectRpcBaseTypes_STDOBJREF_flags = -1;
118 static gint hf_ObjectRpcBaseTypes_u_custom_pData = -1;
119 static gint hf_ObjectRpcBaseTypes_ORPC_EXTENT_data = -1;
120
121 static gint proto_dcerpc_ObjectRpcBaseTypes = -1;
122 /* Version information */
123
124
125 static e_uuid_t uuid_dcerpc_ObjectRpcBaseTypes = {
126         0x, 0x, 0x,
127         { 0x, 0x, 0x, 0x, 0x, 0x, 0x, 0x }
128 };
129 static guint16 ver_dcerpc_ObjectRpcBaseTypes = 0;
130
131 static int ObjectRpcBaseTypes_dissect_element_COMVERSION_MajorVersion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
132 static int ObjectRpcBaseTypes_dissect_element_COMVERSION_MinorVersion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
133 static const true_false_string ORPC_FLAGS_ORPCF_NULL_tfs = {
134    "ORPCF_NULL is SET",
135    "ORPCF_NULL is NOT SET",
136 };
137 static const true_false_string ORPC_FLAGS_ORPCF_LOCAL_tfs = {
138    "ORPCF_LOCAL is SET",
139    "ORPCF_LOCAL is NOT SET",
140 };
141 static const true_false_string ORPC_FLAGS_ORPCF_RESERVED1_tfs = {
142    "ORPCF_RESERVED1 is SET",
143    "ORPCF_RESERVED1 is NOT SET",
144 };
145 static const true_false_string ORPC_FLAGS_ORPCF_RESERVED2_tfs = {
146    "ORPCF_RESERVED2 is SET",
147    "ORPCF_RESERVED2 is NOT SET",
148 };
149 static const true_false_string ORPC_FLAGS_ORPCF_RESERVED3_tfs = {
150    "ORPCF_RESERVED3 is SET",
151    "ORPCF_RESERVED3 is NOT SET",
152 };
153 static const true_false_string ORPC_FLAGS_ORPCF_RESERVED4_tfs = {
154    "ORPCF_RESERVED4 is SET",
155    "ORPCF_RESERVED4 is NOT SET",
156 };
157 static int ObjectRpcBaseTypes_dissect_element_ORPC_EXTENT_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
158 static int ObjectRpcBaseTypes_dissect_element_ORPC_EXTENT_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
159 static int ObjectRpcBaseTypes_dissect_element_ORPC_EXTENT_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
160 static int ObjectRpcBaseTypes_dissect_element_ORPC_EXTENT_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
161 static int ObjectRpcBaseTypes_dissect_element_ORPC_EXTENT_ARRAY_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
162 static int ObjectRpcBaseTypes_dissect_element_ORPC_EXTENT_ARRAY_reserved(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
163 static int ObjectRpcBaseTypes_dissect_element_ORPC_EXTENT_ARRAY_extent(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
164 static int ObjectRpcBaseTypes_dissect_element_ORPC_EXTENT_ARRAY_extent_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
165 static int ObjectRpcBaseTypes_dissect_element_ORPC_EXTENT_ARRAY_extent__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
166 static int ObjectRpcBaseTypes_dissect_element_ORPC_EXTENT_ARRAY_extent___(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
167 static int ObjectRpcBaseTypes_dissect_element_ORPCTHIS_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
168 static int ObjectRpcBaseTypes_dissect_element_ORPCTHIS_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
169 static int ObjectRpcBaseTypes_dissect_element_ORPCTHIS_reserved1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
170 static int ObjectRpcBaseTypes_dissect_element_ORPCTHIS_cid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
171 static int ObjectRpcBaseTypes_dissect_element_ORPCTHIS_extensions(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
172 static int ObjectRpcBaseTypes_dissect_element_ORPCTHIS_extensions_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
173 static int ObjectRpcBaseTypes_dissect_element_ORPCTHAT_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
174 static int ObjectRpcBaseTypes_dissect_element_ORPCTHAT_extensions(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
175 static int ObjectRpcBaseTypes_dissect_element_ORPCTHAT_extensions_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
176 static int ObjectRpcBaseTypes_dissect_element_STRINGBINDING_wTowerId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
177 static int ObjectRpcBaseTypes_dissect_element_STRINGBINDING_NetworkAddr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
178 static int ObjectRpcBaseTypes_dissect_element_STRINGARRAY_stringbindings(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
179 static int ObjectRpcBaseTypes_dissect_element_STRINGARRAY_stringbindings_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
180 static int ObjectRpcBaseTypes_dissect_element_STRINGARRAY_stringbindings__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
181 static int ObjectRpcBaseTypes_dissect_element_DUALSTRINGARRAY_stringbindings(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
182 static int ObjectRpcBaseTypes_dissect_element_DUALSTRINGARRAY_stringbindings_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
183 static int ObjectRpcBaseTypes_dissect_element_DUALSTRINGARRAY_stringbindings__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
184 static int ObjectRpcBaseTypes_dissect_element_DUALSTRINGARRAY_securitybindings(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
185 static int ObjectRpcBaseTypes_dissect_element_DUALSTRINGARRAY_securitybindings_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
186 static int ObjectRpcBaseTypes_dissect_element_DUALSTRINGARRAY_securitybindings__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
187 static int ObjectRpcBaseTypes_dissect_element_SECURITYBINDING_wAuthnSvc(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
188 static int ObjectRpcBaseTypes_dissect_element_SECURITYBINDING_wAuthzSvc(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
189 static int ObjectRpcBaseTypes_dissect_element_SECURITYBINDING_PrincName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
190 const value_string ObjectRpcBaseTypes_OBJREF_FLAGS_vals[] = {
191         { OBJREF_NULL, "OBJREF_NULL" },
192         { OBJREF_STANDARD, "OBJREF_STANDARD" },
193         { OBJREF_HANDLER, "OBJREF_HANDLER" },
194         { OBJREF_CUSTOM, "OBJREF_CUSTOM" },
195 { 0, NULL }
196 };
197 static const true_false_string STDOBJREF_FLAGS_SORF_NULL_tfs = {
198    "SORF_NULL is SET",
199    "SORF_NULL is NOT SET",
200 };
201 static const true_false_string STDOBJREF_FLAGS_SORF_OXRES1_tfs = {
202    "SORF_OXRES1 is SET",
203    "SORF_OXRES1 is NOT SET",
204 };
205 static const true_false_string STDOBJREF_FLAGS_SORF_OXRES2_tfs = {
206    "SORF_OXRES2 is SET",
207    "SORF_OXRES2 is NOT SET",
208 };
209 static const true_false_string STDOBJREF_FLAGS_SORF_OXRES3_tfs = {
210    "SORF_OXRES3 is SET",
211    "SORF_OXRES3 is NOT SET",
212 };
213 static const true_false_string STDOBJREF_FLAGS_SORF_OXRES4_tfs = {
214    "SORF_OXRES4 is SET",
215    "SORF_OXRES4 is NOT SET",
216 };
217 static const true_false_string STDOBJREF_FLAGS_SORF_OXRES5_tfs = {
218    "SORF_OXRES5 is SET",
219    "SORF_OXRES5 is NOT SET",
220 };
221 static const true_false_string STDOBJREF_FLAGS_SORF_OXRES6_tfs = {
222    "SORF_OXRES6 is SET",
223    "SORF_OXRES6 is NOT SET",
224 };
225 static const true_false_string STDOBJREF_FLAGS_SORF_OXRES7_tfs = {
226    "SORF_OXRES7 is SET",
227    "SORF_OXRES7 is NOT SET",
228 };
229 static const true_false_string STDOBJREF_FLAGS_SORF_OXRES8_tfs = {
230    "SORF_OXRES8 is SET",
231    "SORF_OXRES8 is NOT SET",
232 };
233 static const true_false_string STDOBJREF_FLAGS_SORF_NOPING_tfs = {
234    "SORF_NOPING is SET",
235    "SORF_NOPING is NOT SET",
236 };
237 static int ObjectRpcBaseTypes_dissect_element_STDOBJREF_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
238 static int ObjectRpcBaseTypes_dissect_element_STDOBJREF_cPublicRefs(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
239 static int ObjectRpcBaseTypes_dissect_element_STDOBJREF_oxid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
240 static int ObjectRpcBaseTypes_dissect_element_STDOBJREF_oid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
241 static int ObjectRpcBaseTypes_dissect_element_STDOBJREF_ipid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
242 static int ObjectRpcBaseTypes_dissect_element_u_standard_std(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
243 static int ObjectRpcBaseTypes_dissect_element_u_standard_saResAddr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
244 static int ObjectRpcBaseTypes_dissect_element_u_handler_std(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
245 static int ObjectRpcBaseTypes_dissect_element_u_handler_clsid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
246 static int ObjectRpcBaseTypes_dissect_element_u_handler_saResAddr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
247 static int ObjectRpcBaseTypes_dissect_element_u_custom_clsid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
248 static int ObjectRpcBaseTypes_dissect_element_u_custom_cbExtension(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
249 static int ObjectRpcBaseTypes_dissect_element_u_custom_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
250 static int ObjectRpcBaseTypes_dissect_element_u_custom_pData(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
251 static int ObjectRpcBaseTypes_dissect_element_u_custom_pData_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
252 static int ObjectRpcBaseTypes_dissect_element_OBJREF_Types_u_null(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
253 static int ObjectRpcBaseTypes_dissect_element_OBJREF_Types_u_standard(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
254 static int ObjectRpcBaseTypes_dissect_element_OBJREF_Types_u_handler(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
255 static int ObjectRpcBaseTypes_dissect_element_OBJREF_Types_u_custom(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
256 static int ObjectRpcBaseTypes_dissect_element_OBJREF_signature(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
257 static int ObjectRpcBaseTypes_dissect_element_OBJREF_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, guint32 *flags);
258 static int ObjectRpcBaseTypes_dissect_element_OBJREF_iid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
259 static int ObjectRpcBaseTypes_dissect_element_OBJREF_u_objref(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, guint32 *flags);
260 static int ObjectRpcBaseTypes_dissect_element_MInterfacePointer_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
261 static int ObjectRpcBaseTypes_dissect_element_MInterfacePointer_obj(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
262 static int ObjectRpcBaseTypes_dissect_element_MInterfacePointer_obj_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
263 const value_string ObjectRpcBaseTypes_COMRESULT_vals[] = {
264         { COM_OK, "COM_OK" },
265         { COM_OUTOFMEMORY, "COM_OUTOFMEMORY" },
266         { COM_INVALIDARG, "COM_INVALIDARG" },
267         { COM_NOINTERFACE, "COM_NOINTERFACE" },
268         { COM_ACCESSDENIED, "COM_ACCESSDENIED" },
269         { COM_INVALID_OXID, "COM_INVALID_OXID" },
270         { COM_INVALID_OID, "COM_INVALID_OID" },
271         { COM_INVALID_SET, "COM_INVALID_SET" },
272         { COM_UNEXPECTED, "COM_UNEXPECTED" },
273         { COM_CLSNOTFOUND, "COM_CLSNOTFOUND" },
274 { 0, NULL }
275 };
276
277
278 /* IDL: struct { */
279 /* IDL:         uint16 MajorVersion; */
280 /* IDL:         uint16 MinorVersion; */
281 /* IDL: } */
282
283 static int
284 ObjectRpcBaseTypes_dissect_element_COMVERSION_MajorVersion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
285 {
286         offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_ObjectRpcBaseTypes_COMVERSION_MajorVersion, 0);
287
288         return offset;
289 }
290
291 static int
292 ObjectRpcBaseTypes_dissect_element_COMVERSION_MinorVersion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
293 {
294         offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_ObjectRpcBaseTypes_COMVERSION_MinorVersion, 0);
295
296         return offset;
297 }
298
299 int
300 ObjectRpcBaseTypes_dissect_struct_COMVERSION(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
301 {
302         proto_item *item = NULL;
303         proto_tree *tree = NULL;
304         dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
305         int old_offset;
306
307         ALIGN_TO_2_BYTES;
308
309         old_offset = offset;
310
311         if (parent_tree) {
312                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
313                 tree = proto_item_add_subtree(item, ett_ObjectRpcBaseTypes_COMVERSION);
314         }
315         
316         offset = ObjectRpcBaseTypes_dissect_element_COMVERSION_MajorVersion(tvb, offset, pinfo, tree, drep);
317
318         offset = ObjectRpcBaseTypes_dissect_element_COMVERSION_MinorVersion(tvb, offset, pinfo, tree, drep);
319
320
321         proto_item_set_len(item, offset-old_offset);
322
323
324         if (di->call_data->flags & DCERPC_IS_NDR64) {
325                 ALIGN_TO_2_BYTES;
326         }
327
328         return offset;
329 }
330
331
332 /* IDL: bitmap { */
333 /* IDL:         ORPCF_NULL =  0x00 , */
334 /* IDL:         ORPCF_LOCAL =  0x01 , */
335 /* IDL:         ORPCF_RESERVED1 =  0x02 , */
336 /* IDL:         ORPCF_RESERVED2 =  0x04 , */
337 /* IDL:         ORPCF_RESERVED3 =  0x08 , */
338 /* IDL:         ORPCF_RESERVED4 =  0x10 , */
339 /* IDL: } */
340
341 int
342 ObjectRpcBaseTypes_dissect_bitmap_ORPC_FLAGS(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
343 {
344         proto_item *item = NULL;
345         proto_tree *tree = NULL;
346
347         guint32 flags;
348         ALIGN_TO_4_BYTES;
349
350         if (parent_tree) {
351                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, 4, DREP_ENC_INTEGER(drep));
352                 tree = proto_item_add_subtree(item,ett_ObjectRpcBaseTypes_ORPC_FLAGS);
353         }
354
355         offset = dissect_ndr_uint32(tvb, offset, pinfo, NULL, drep, -1, &flags);
356         proto_item_append_text(item, ": ");
357
358         if (!flags)
359                 proto_item_append_text(item, "(No values set)");
360
361         proto_tree_add_boolean(tree, hf_ObjectRpcBaseTypes_ORPC_FLAGS_ORPCF_NULL, tvb, offset-4, 4, flags);
362         if (flags&( 0x00 )){
363                 proto_item_append_text(item, "ORPCF_NULL");
364                 if (flags & (~( 0x00 )))
365                         proto_item_append_text(item, ", ");
366         }
367         flags&=(~( 0x00 ));
368
369         proto_tree_add_boolean(tree, hf_ObjectRpcBaseTypes_ORPC_FLAGS_ORPCF_LOCAL, tvb, offset-4, 4, flags);
370         if (flags&( 0x01 )){
371                 proto_item_append_text(item, "ORPCF_LOCAL");
372                 if (flags & (~( 0x01 )))
373                         proto_item_append_text(item, ", ");
374         }
375         flags&=(~( 0x01 ));
376
377         proto_tree_add_boolean(tree, hf_ObjectRpcBaseTypes_ORPC_FLAGS_ORPCF_RESERVED1, tvb, offset-4, 4, flags);
378         if (flags&( 0x02 )){
379                 proto_item_append_text(item, "ORPCF_RESERVED1");
380                 if (flags & (~( 0x02 )))
381                         proto_item_append_text(item, ", ");
382         }
383         flags&=(~( 0x02 ));
384
385         proto_tree_add_boolean(tree, hf_ObjectRpcBaseTypes_ORPC_FLAGS_ORPCF_RESERVED2, tvb, offset-4, 4, flags);
386         if (flags&( 0x04 )){
387                 proto_item_append_text(item, "ORPCF_RESERVED2");
388                 if (flags & (~( 0x04 )))
389                         proto_item_append_text(item, ", ");
390         }
391         flags&=(~( 0x04 ));
392
393         proto_tree_add_boolean(tree, hf_ObjectRpcBaseTypes_ORPC_FLAGS_ORPCF_RESERVED3, tvb, offset-4, 4, flags);
394         if (flags&( 0x08 )){
395                 proto_item_append_text(item, "ORPCF_RESERVED3");
396                 if (flags & (~( 0x08 )))
397                         proto_item_append_text(item, ", ");
398         }
399         flags&=(~( 0x08 ));
400
401         proto_tree_add_boolean(tree, hf_ObjectRpcBaseTypes_ORPC_FLAGS_ORPCF_RESERVED4, tvb, offset-4, 4, flags);
402         if (flags&( 0x10 )){
403                 proto_item_append_text(item, "ORPCF_RESERVED4");
404                 if (flags & (~( 0x10 )))
405                         proto_item_append_text(item, ", ");
406         }
407         flags&=(~( 0x10 ));
408
409         if (flags) {
410                 proto_item_append_text(item, "Unknown bitmap value 0x%x", flags);
411         }
412
413         return offset;
414 }
415
416
417 /* IDL: struct { */
418 /* IDL:         GUID id; */
419 /* IDL:         uint32 size; */
420 /* IDL:         [size_is(((size+7)&~7))] uint8 data[*]; */
421 /* IDL: } */
422
423 static int
424 ObjectRpcBaseTypes_dissect_element_ORPC_EXTENT_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
425 {
426         offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, drep, hf_ObjectRpcBaseTypes_ORPC_EXTENT_id, NULL);
427
428         return offset;
429 }
430
431 static int
432 ObjectRpcBaseTypes_dissect_element_ORPC_EXTENT_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
433 {
434         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_ObjectRpcBaseTypes_ORPC_EXTENT_size, 0);
435
436         return offset;
437 }
438
439 static int
440 ObjectRpcBaseTypes_dissect_element_ORPC_EXTENT_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
441 {
442         offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, ObjectRpcBaseTypes_dissect_element_ORPC_EXTENT_data_);
443
444         return offset;
445 }
446
447 static int
448 ObjectRpcBaseTypes_dissect_element_ORPC_EXTENT_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
449 {
450         offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_ObjectRpcBaseTypes_ORPC_EXTENT_data, 0);
451
452         return offset;
453 }
454
455 int
456 ObjectRpcBaseTypes_dissect_struct_ORPC_EXTENT(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
457 {
458         proto_item *item = NULL;
459         proto_tree *tree = NULL;
460         dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
461         int old_offset;
462
463         ALIGN_TO_4_BYTES;
464
465         old_offset = offset;
466
467         if (parent_tree) {
468                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
469                 tree = proto_item_add_subtree(item, ett_ObjectRpcBaseTypes_ORPC_EXTENT);
470         }
471         
472         offset = ObjectRpcBaseTypes_dissect_element_ORPC_EXTENT_id(tvb, offset, pinfo, tree, drep);
473
474         offset = ObjectRpcBaseTypes_dissect_element_ORPC_EXTENT_size(tvb, offset, pinfo, tree, drep);
475
476         offset = ObjectRpcBaseTypes_dissect_element_ORPC_EXTENT_data(tvb, offset, pinfo, tree, drep);
477
478
479         proto_item_set_len(item, offset-old_offset);
480
481
482         if (di->call_data->flags & DCERPC_IS_NDR64) {
483                 ALIGN_TO_4_BYTES;
484         }
485
486         return offset;
487 }
488
489
490 /* IDL: struct { */
491 /* IDL:         uint32 size; */
492 /* IDL:         uint32 reserved; */
493 /* IDL:         [unique(1)] [size_is(((size+1)&~1))] ORPC_EXTENT **extent; */
494 /* IDL: } */
495
496 static int
497 ObjectRpcBaseTypes_dissect_element_ORPC_EXTENT_ARRAY_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
498 {
499         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_ObjectRpcBaseTypes_ORPC_EXTENT_ARRAY_size, 0);
500
501         return offset;
502 }
503
504 static int
505 ObjectRpcBaseTypes_dissect_element_ORPC_EXTENT_ARRAY_reserved(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
506 {
507         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_ObjectRpcBaseTypes_ORPC_EXTENT_ARRAY_reserved, 0);
508
509         return offset;
510 }
511
512 static int
513 ObjectRpcBaseTypes_dissect_element_ORPC_EXTENT_ARRAY_extent(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
514 {
515         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, ObjectRpcBaseTypes_dissect_element_ORPC_EXTENT_ARRAY_extent_, NDR_POINTER_UNIQUE, "Pointer to Extent (ORPC_EXTENT)",hf_ObjectRpcBaseTypes_ORPC_EXTENT_ARRAY_extent);
516
517         return offset;
518 }
519
520 static int
521 ObjectRpcBaseTypes_dissect_element_ORPC_EXTENT_ARRAY_extent_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
522 {
523         offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, ObjectRpcBaseTypes_dissect_element_ORPC_EXTENT_ARRAY_extent__);
524
525         return offset;
526 }
527
528 static int
529 ObjectRpcBaseTypes_dissect_element_ORPC_EXTENT_ARRAY_extent__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
530 {
531         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, ObjectRpcBaseTypes_dissect_element_ORPC_EXTENT_ARRAY_extent___, NDR_POINTER_UNIQUE, "Pointer to Extent (ORPC_EXTENT)",hf_ObjectRpcBaseTypes_ORPC_EXTENT_ARRAY_extent);
532
533         return offset;
534 }
535
536 static int
537 ObjectRpcBaseTypes_dissect_element_ORPC_EXTENT_ARRAY_extent___(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
538 {
539         offset = ObjectRpcBaseTypes_dissect_struct_ORPC_EXTENT(tvb,offset,pinfo,tree,drep,hf_ObjectRpcBaseTypes_ORPC_EXTENT_ARRAY_extent,0);
540
541         return offset;
542 }
543
544 int
545 ObjectRpcBaseTypes_dissect_struct_ORPC_EXTENT_ARRAY(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
546 {
547         proto_item *item = NULL;
548         proto_tree *tree = NULL;
549         dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
550         int old_offset;
551
552         ALIGN_TO_5_BYTES;
553
554         old_offset = offset;
555
556         if (parent_tree) {
557                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
558                 tree = proto_item_add_subtree(item, ett_ObjectRpcBaseTypes_ORPC_EXTENT_ARRAY);
559         }
560         
561         offset = ObjectRpcBaseTypes_dissect_element_ORPC_EXTENT_ARRAY_size(tvb, offset, pinfo, tree, drep);
562
563         offset = ObjectRpcBaseTypes_dissect_element_ORPC_EXTENT_ARRAY_reserved(tvb, offset, pinfo, tree, drep);
564
565         offset = ObjectRpcBaseTypes_dissect_element_ORPC_EXTENT_ARRAY_extent(tvb, offset, pinfo, tree, drep);
566
567
568         proto_item_set_len(item, offset-old_offset);
569
570
571         if (di->call_data->flags & DCERPC_IS_NDR64) {
572                 ALIGN_TO_5_BYTES;
573         }
574
575         return offset;
576 }
577
578
579 /* IDL: struct { */
580 /* IDL:         COMVERSION version; */
581 /* IDL:         uint32 flags; */
582 /* IDL:         uint32 reserved1; */
583 /* IDL:         GUID cid; */
584 /* IDL:         [unique(1)] ORPC_EXTENT_ARRAY *extensions; */
585 /* IDL: } */
586
587 static int
588 ObjectRpcBaseTypes_dissect_element_ORPCTHIS_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
589 {
590         offset = ObjectRpcBaseTypes_dissect_struct_COMVERSION(tvb,offset,pinfo,tree,drep,hf_ObjectRpcBaseTypes_ORPCTHIS_version,0);
591
592         return offset;
593 }
594
595 static int
596 ObjectRpcBaseTypes_dissect_element_ORPCTHIS_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
597 {
598         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_ObjectRpcBaseTypes_ORPCTHIS_flags, 0);
599
600         return offset;
601 }
602
603 static int
604 ObjectRpcBaseTypes_dissect_element_ORPCTHIS_reserved1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
605 {
606         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_ObjectRpcBaseTypes_ORPCTHIS_reserved1, 0);
607
608         return offset;
609 }
610
611 static int
612 ObjectRpcBaseTypes_dissect_element_ORPCTHIS_cid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
613 {
614         offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, drep, hf_ObjectRpcBaseTypes_ORPCTHIS_cid, NULL);
615
616         return offset;
617 }
618
619 static int
620 ObjectRpcBaseTypes_dissect_element_ORPCTHIS_extensions(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
621 {
622         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, ObjectRpcBaseTypes_dissect_element_ORPCTHIS_extensions_, NDR_POINTER_UNIQUE, "Pointer to Extensions (ORPC_EXTENT_ARRAY)",hf_ObjectRpcBaseTypes_ORPCTHIS_extensions);
623
624         return offset;
625 }
626
627 static int
628 ObjectRpcBaseTypes_dissect_element_ORPCTHIS_extensions_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
629 {
630         offset = ObjectRpcBaseTypes_dissect_struct_ORPC_EXTENT_ARRAY(tvb,offset,pinfo,tree,drep,hf_ObjectRpcBaseTypes_ORPCTHIS_extensions,0);
631
632         return offset;
633 }
634
635 int
636 ObjectRpcBaseTypes_dissect_struct_ORPCTHIS(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
637 {
638         proto_item *item = NULL;
639         proto_tree *tree = NULL;
640         dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
641         int old_offset;
642
643         ALIGN_TO_5_BYTES;
644
645         old_offset = offset;
646
647         if (parent_tree) {
648                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
649                 tree = proto_item_add_subtree(item, ett_ObjectRpcBaseTypes_ORPCTHIS);
650         }
651         
652         offset = ObjectRpcBaseTypes_dissect_element_ORPCTHIS_version(tvb, offset, pinfo, tree, drep);
653
654         offset = ObjectRpcBaseTypes_dissect_element_ORPCTHIS_flags(tvb, offset, pinfo, tree, drep);
655
656         offset = ObjectRpcBaseTypes_dissect_element_ORPCTHIS_reserved1(tvb, offset, pinfo, tree, drep);
657
658         offset = ObjectRpcBaseTypes_dissect_element_ORPCTHIS_cid(tvb, offset, pinfo, tree, drep);
659
660         offset = ObjectRpcBaseTypes_dissect_element_ORPCTHIS_extensions(tvb, offset, pinfo, tree, drep);
661
662
663         proto_item_set_len(item, offset-old_offset);
664
665
666         if (di->call_data->flags & DCERPC_IS_NDR64) {
667                 ALIGN_TO_5_BYTES;
668         }
669
670         return offset;
671 }
672
673
674 /* IDL: struct { */
675 /* IDL:         uint32 flags; */
676 /* IDL:         [unique(1)] ORPC_EXTENT_ARRAY *extensions; */
677 /* IDL: } */
678
679 static int
680 ObjectRpcBaseTypes_dissect_element_ORPCTHAT_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
681 {
682         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_ObjectRpcBaseTypes_ORPCTHAT_flags, 0);
683
684         return offset;
685 }
686
687 static int
688 ObjectRpcBaseTypes_dissect_element_ORPCTHAT_extensions(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
689 {
690         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, ObjectRpcBaseTypes_dissect_element_ORPCTHAT_extensions_, NDR_POINTER_UNIQUE, "Pointer to Extensions (ORPC_EXTENT_ARRAY)",hf_ObjectRpcBaseTypes_ORPCTHAT_extensions);
691
692         return offset;
693 }
694
695 static int
696 ObjectRpcBaseTypes_dissect_element_ORPCTHAT_extensions_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
697 {
698         offset = ObjectRpcBaseTypes_dissect_struct_ORPC_EXTENT_ARRAY(tvb,offset,pinfo,tree,drep,hf_ObjectRpcBaseTypes_ORPCTHAT_extensions,0);
699
700         return offset;
701 }
702
703 int
704 ObjectRpcBaseTypes_dissect_struct_ORPCTHAT(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
705 {
706         proto_item *item = NULL;
707         proto_tree *tree = NULL;
708         dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
709         int old_offset;
710
711         ALIGN_TO_5_BYTES;
712
713         old_offset = offset;
714
715         if (parent_tree) {
716                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
717                 tree = proto_item_add_subtree(item, ett_ObjectRpcBaseTypes_ORPCTHAT);
718         }
719         
720         offset = ObjectRpcBaseTypes_dissect_element_ORPCTHAT_flags(tvb, offset, pinfo, tree, drep);
721
722         offset = ObjectRpcBaseTypes_dissect_element_ORPCTHAT_extensions(tvb, offset, pinfo, tree, drep);
723
724
725         proto_item_set_len(item, offset-old_offset);
726
727
728         if (di->call_data->flags & DCERPC_IS_NDR64) {
729                 ALIGN_TO_5_BYTES;
730         }
731
732         return offset;
733 }
734
735
736 /* IDL: struct { */
737 /* IDL:         uint16 wTowerId; */
738 /* IDL:         [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string NetworkAddr; */
739 /* IDL: } */
740
741 static int
742 ObjectRpcBaseTypes_dissect_element_STRINGBINDING_wTowerId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
743 {
744         offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_ObjectRpcBaseTypes_STRINGBINDING_wTowerId, 0);
745
746         return offset;
747 }
748
749 static int
750 ObjectRpcBaseTypes_dissect_element_STRINGBINDING_NetworkAddr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
751 {
752         offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_ObjectRpcBaseTypes_STRINGBINDING_NetworkAddr , 0);
753
754         return offset;
755 }
756
757 int
758 ObjectRpcBaseTypes_dissect_struct_STRINGBINDING(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
759 {
760         proto_item *item = NULL;
761         proto_tree *tree = NULL;
762         dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
763         int old_offset;
764
765
766         old_offset = offset;
767
768         if (parent_tree) {
769                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
770                 tree = proto_item_add_subtree(item, ett_ObjectRpcBaseTypes_STRINGBINDING);
771         }
772         
773         offset = ObjectRpcBaseTypes_dissect_element_STRINGBINDING_wTowerId(tvb, offset, pinfo, tree, drep);
774
775         offset = ObjectRpcBaseTypes_dissect_element_STRINGBINDING_NetworkAddr(tvb, offset, pinfo, tree, drep);
776
777
778         proto_item_set_len(item, offset-old_offset);
779
780
781         if (di->call_data->flags & DCERPC_IS_NDR64) {
782                 ALIGN_TO_4_BYTES;
783         }
784
785         return offset;
786 }
787
788
789 /* IDL: struct { */
790 /* IDL:         [unique(1)] STRINGBINDING **stringbindings; */
791 /* IDL: } */
792
793 static int
794 ObjectRpcBaseTypes_dissect_element_STRINGARRAY_stringbindings(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
795 {
796         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, ObjectRpcBaseTypes_dissect_element_STRINGARRAY_stringbindings_, NDR_POINTER_UNIQUE, "Pointer to Stringbindings (STRINGBINDING)",hf_ObjectRpcBaseTypes_STRINGARRAY_stringbindings);
797
798         return offset;
799 }
800
801 static int
802 ObjectRpcBaseTypes_dissect_element_STRINGARRAY_stringbindings_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
803 {
804         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, ObjectRpcBaseTypes_dissect_element_STRINGARRAY_stringbindings__, NDR_POINTER_UNIQUE, "Pointer to Stringbindings (STRINGBINDING)",hf_ObjectRpcBaseTypes_STRINGARRAY_stringbindings);
805
806         return offset;
807 }
808
809 static int
810 ObjectRpcBaseTypes_dissect_element_STRINGARRAY_stringbindings__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
811 {
812         offset = ObjectRpcBaseTypes_dissect_struct_STRINGBINDING(tvb,offset,pinfo,tree,drep,hf_ObjectRpcBaseTypes_STRINGARRAY_stringbindings,0);
813
814         return offset;
815 }
816
817 int
818 ObjectRpcBaseTypes_dissect_struct_STRINGARRAY(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
819 {
820         proto_item *item = NULL;
821         proto_tree *tree = NULL;
822         dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
823         int old_offset;
824
825         ALIGN_TO_5_BYTES;
826
827         old_offset = offset;
828
829         if (parent_tree) {
830                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
831                 tree = proto_item_add_subtree(item, ett_ObjectRpcBaseTypes_STRINGARRAY);
832         }
833         
834         offset = ObjectRpcBaseTypes_dissect_element_STRINGARRAY_stringbindings(tvb, offset, pinfo, tree, drep);
835
836
837         proto_item_set_len(item, offset-old_offset);
838
839
840         if (di->call_data->flags & DCERPC_IS_NDR64) {
841                 ALIGN_TO_5_BYTES;
842         }
843
844         return offset;
845 }
846
847
848 /* IDL: struct { */
849 /* IDL:         [unique(1)] STRINGBINDING **stringbindings; */
850 /* IDL:         [unique(1)] SECURITYBINDING **securitybindings; */
851 /* IDL: } */
852
853 static int
854 ObjectRpcBaseTypes_dissect_element_DUALSTRINGARRAY_stringbindings(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
855 {
856         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, ObjectRpcBaseTypes_dissect_element_DUALSTRINGARRAY_stringbindings_, NDR_POINTER_UNIQUE, "Pointer to Stringbindings (STRINGBINDING)",hf_ObjectRpcBaseTypes_DUALSTRINGARRAY_stringbindings);
857
858         return offset;
859 }
860
861 static int
862 ObjectRpcBaseTypes_dissect_element_DUALSTRINGARRAY_stringbindings_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
863 {
864         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, ObjectRpcBaseTypes_dissect_element_DUALSTRINGARRAY_stringbindings__, NDR_POINTER_UNIQUE, "Pointer to Stringbindings (STRINGBINDING)",hf_ObjectRpcBaseTypes_DUALSTRINGARRAY_stringbindings);
865
866         return offset;
867 }
868
869 static int
870 ObjectRpcBaseTypes_dissect_element_DUALSTRINGARRAY_stringbindings__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
871 {
872         offset = ObjectRpcBaseTypes_dissect_struct_STRINGBINDING(tvb,offset,pinfo,tree,drep,hf_ObjectRpcBaseTypes_DUALSTRINGARRAY_stringbindings,0);
873
874         return offset;
875 }
876
877 static int
878 ObjectRpcBaseTypes_dissect_element_DUALSTRINGARRAY_securitybindings(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
879 {
880         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, ObjectRpcBaseTypes_dissect_element_DUALSTRINGARRAY_securitybindings_, NDR_POINTER_UNIQUE, "Pointer to Securitybindings (SECURITYBINDING)",hf_ObjectRpcBaseTypes_DUALSTRINGARRAY_securitybindings);
881
882         return offset;
883 }
884
885 static int
886 ObjectRpcBaseTypes_dissect_element_DUALSTRINGARRAY_securitybindings_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
887 {
888         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, ObjectRpcBaseTypes_dissect_element_DUALSTRINGARRAY_securitybindings__, NDR_POINTER_UNIQUE, "Pointer to Securitybindings (SECURITYBINDING)",hf_ObjectRpcBaseTypes_DUALSTRINGARRAY_securitybindings);
889
890         return offset;
891 }
892
893 static int
894 ObjectRpcBaseTypes_dissect_element_DUALSTRINGARRAY_securitybindings__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
895 {
896         offset = ObjectRpcBaseTypes_dissect_struct_SECURITYBINDING(tvb,offset,pinfo,tree,drep,hf_ObjectRpcBaseTypes_DUALSTRINGARRAY_securitybindings,0);
897
898         return offset;
899 }
900
901 int
902 ObjectRpcBaseTypes_dissect_struct_DUALSTRINGARRAY(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
903 {
904         proto_item *item = NULL;
905         proto_tree *tree = NULL;
906         dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
907         int old_offset;
908
909         ALIGN_TO_5_BYTES;
910
911         old_offset = offset;
912
913         if (parent_tree) {
914                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
915                 tree = proto_item_add_subtree(item, ett_ObjectRpcBaseTypes_DUALSTRINGARRAY);
916         }
917         
918         offset = ObjectRpcBaseTypes_dissect_element_DUALSTRINGARRAY_stringbindings(tvb, offset, pinfo, tree, drep);
919
920         offset = ObjectRpcBaseTypes_dissect_element_DUALSTRINGARRAY_securitybindings(tvb, offset, pinfo, tree, drep);
921
922
923         proto_item_set_len(item, offset-old_offset);
924
925
926         if (di->call_data->flags & DCERPC_IS_NDR64) {
927                 ALIGN_TO_5_BYTES;
928         }
929
930         return offset;
931 }
932
933
934 /* IDL: struct { */
935 /* IDL:         uint16 wAuthnSvc; */
936 /* IDL:         uint16 wAuthzSvc; */
937 /* IDL:         [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string PrincName; */
938 /* IDL: } */
939
940 static int
941 ObjectRpcBaseTypes_dissect_element_SECURITYBINDING_wAuthnSvc(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
942 {
943         offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_ObjectRpcBaseTypes_SECURITYBINDING_wAuthnSvc, 0);
944
945         return offset;
946 }
947
948 static int
949 ObjectRpcBaseTypes_dissect_element_SECURITYBINDING_wAuthzSvc(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
950 {
951         offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_ObjectRpcBaseTypes_SECURITYBINDING_wAuthzSvc, 0);
952
953         return offset;
954 }
955
956 static int
957 ObjectRpcBaseTypes_dissect_element_SECURITYBINDING_PrincName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
958 {
959         offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_ObjectRpcBaseTypes_SECURITYBINDING_PrincName , 0);
960
961         return offset;
962 }
963
964 int
965 ObjectRpcBaseTypes_dissect_struct_SECURITYBINDING(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
966 {
967         proto_item *item = NULL;
968         proto_tree *tree = NULL;
969         dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
970         int old_offset;
971
972
973         old_offset = offset;
974
975         if (parent_tree) {
976                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
977                 tree = proto_item_add_subtree(item, ett_ObjectRpcBaseTypes_SECURITYBINDING);
978         }
979         
980         offset = ObjectRpcBaseTypes_dissect_element_SECURITYBINDING_wAuthnSvc(tvb, offset, pinfo, tree, drep);
981
982         offset = ObjectRpcBaseTypes_dissect_element_SECURITYBINDING_wAuthzSvc(tvb, offset, pinfo, tree, drep);
983
984         offset = ObjectRpcBaseTypes_dissect_element_SECURITYBINDING_PrincName(tvb, offset, pinfo, tree, drep);
985
986
987         proto_item_set_len(item, offset-old_offset);
988
989
990         if (di->call_data->flags & DCERPC_IS_NDR64) {
991                 ALIGN_TO_4_BYTES;
992         }
993
994         return offset;
995 }
996
997
998 /* IDL: enum { */
999 /* IDL:         OBJREF_NULL=0x0, */
1000 /* IDL:         OBJREF_STANDARD=0x1, */
1001 /* IDL:         OBJREF_HANDLER=0x2, */
1002 /* IDL:         OBJREF_CUSTOM=0x4, */
1003 /* IDL: } */
1004
1005 int
1006 ObjectRpcBaseTypes_dissect_enum_OBJREF_FLAGS(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
1007 {
1008         guint1632 parameter=0;
1009         if(param){
1010                 parameter=(guint1632)*param;
1011         }
1012         offset = dissect_ndr_uint1632(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
1013         if(param){
1014                 *param=(guint32)parameter;
1015         }
1016         return offset;
1017 }
1018
1019
1020 /* IDL: bitmap { */
1021 /* IDL:         SORF_NULL =  0x0000 , */
1022 /* IDL:         SORF_OXRES1 =  0x0001 , */
1023 /* IDL:         SORF_OXRES2 =  0x0020 , */
1024 /* IDL:         SORF_OXRES3 =  0x0040 , */
1025 /* IDL:         SORF_OXRES4 =  0x0080 , */
1026 /* IDL:         SORF_OXRES5 =  0x0100 , */
1027 /* IDL:         SORF_OXRES6 =  0x0200 , */
1028 /* IDL:         SORF_OXRES7 =  0x0400 , */
1029 /* IDL:         SORF_OXRES8 =  0x0800 , */
1030 /* IDL:         SORF_NOPING =  0x1000 , */
1031 /* IDL: } */
1032
1033 int
1034 ObjectRpcBaseTypes_dissect_bitmap_STDOBJREF_FLAGS(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
1035 {
1036         proto_item *item = NULL;
1037         proto_tree *tree = NULL;
1038
1039         guint32 flags;
1040         ALIGN_TO_4_BYTES;
1041
1042         if (parent_tree) {
1043                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, 4, DREP_ENC_INTEGER(drep));
1044                 tree = proto_item_add_subtree(item,ett_ObjectRpcBaseTypes_STDOBJREF_FLAGS);
1045         }
1046
1047         offset = dissect_ndr_uint32(tvb, offset, pinfo, NULL, drep, -1, &flags);
1048         proto_item_append_text(item, ": ");
1049
1050         if (!flags)
1051                 proto_item_append_text(item, "(No values set)");
1052
1053         proto_tree_add_boolean(tree, hf_ObjectRpcBaseTypes_STDOBJREF_FLAGS_SORF_NULL, tvb, offset-4, 4, flags);
1054         if (flags&( 0x0000 )){
1055                 proto_item_append_text(item, "SORF_NULL");
1056                 if (flags & (~( 0x0000 )))
1057                         proto_item_append_text(item, ", ");
1058         }
1059         flags&=(~( 0x0000 ));
1060
1061         proto_tree_add_boolean(tree, hf_ObjectRpcBaseTypes_STDOBJREF_FLAGS_SORF_OXRES1, tvb, offset-4, 4, flags);
1062         if (flags&( 0x0001 )){
1063                 proto_item_append_text(item, "SORF_OXRES1");
1064                 if (flags & (~( 0x0001 )))
1065                         proto_item_append_text(item, ", ");
1066         }
1067         flags&=(~( 0x0001 ));
1068
1069         proto_tree_add_boolean(tree, hf_ObjectRpcBaseTypes_STDOBJREF_FLAGS_SORF_OXRES2, tvb, offset-4, 4, flags);
1070         if (flags&( 0x0020 )){
1071                 proto_item_append_text(item, "SORF_OXRES2");
1072                 if (flags & (~( 0x0020 )))
1073                         proto_item_append_text(item, ", ");
1074         }
1075         flags&=(~( 0x0020 ));
1076
1077         proto_tree_add_boolean(tree, hf_ObjectRpcBaseTypes_STDOBJREF_FLAGS_SORF_OXRES3, tvb, offset-4, 4, flags);
1078         if (flags&( 0x0040 )){
1079                 proto_item_append_text(item, "SORF_OXRES3");
1080                 if (flags & (~( 0x0040 )))
1081                         proto_item_append_text(item, ", ");
1082         }
1083         flags&=(~( 0x0040 ));
1084
1085         proto_tree_add_boolean(tree, hf_ObjectRpcBaseTypes_STDOBJREF_FLAGS_SORF_OXRES4, tvb, offset-4, 4, flags);
1086         if (flags&( 0x0080 )){
1087                 proto_item_append_text(item, "SORF_OXRES4");
1088                 if (flags & (~( 0x0080 )))
1089                         proto_item_append_text(item, ", ");
1090         }
1091         flags&=(~( 0x0080 ));
1092
1093         proto_tree_add_boolean(tree, hf_ObjectRpcBaseTypes_STDOBJREF_FLAGS_SORF_OXRES5, tvb, offset-4, 4, flags);
1094         if (flags&( 0x0100 )){
1095                 proto_item_append_text(item, "SORF_OXRES5");
1096                 if (flags & (~( 0x0100 )))
1097                         proto_item_append_text(item, ", ");
1098         }
1099         flags&=(~( 0x0100 ));
1100
1101         proto_tree_add_boolean(tree, hf_ObjectRpcBaseTypes_STDOBJREF_FLAGS_SORF_OXRES6, tvb, offset-4, 4, flags);
1102         if (flags&( 0x0200 )){
1103                 proto_item_append_text(item, "SORF_OXRES6");
1104                 if (flags & (~( 0x0200 )))
1105                         proto_item_append_text(item, ", ");
1106         }
1107         flags&=(~( 0x0200 ));
1108
1109         proto_tree_add_boolean(tree, hf_ObjectRpcBaseTypes_STDOBJREF_FLAGS_SORF_OXRES7, tvb, offset-4, 4, flags);
1110         if (flags&( 0x0400 )){
1111                 proto_item_append_text(item, "SORF_OXRES7");
1112                 if (flags & (~( 0x0400 )))
1113                         proto_item_append_text(item, ", ");
1114         }
1115         flags&=(~( 0x0400 ));
1116
1117         proto_tree_add_boolean(tree, hf_ObjectRpcBaseTypes_STDOBJREF_FLAGS_SORF_OXRES8, tvb, offset-4, 4, flags);
1118         if (flags&( 0x0800 )){
1119                 proto_item_append_text(item, "SORF_OXRES8");
1120                 if (flags & (~( 0x0800 )))
1121                         proto_item_append_text(item, ", ");
1122         }
1123         flags&=(~( 0x0800 ));
1124
1125         proto_tree_add_boolean(tree, hf_ObjectRpcBaseTypes_STDOBJREF_FLAGS_SORF_NOPING, tvb, offset-4, 4, flags);
1126         if (flags&( 0x1000 )){
1127                 proto_item_append_text(item, "SORF_NOPING");
1128                 if (flags & (~( 0x1000 )))
1129                         proto_item_append_text(item, ", ");
1130         }
1131         flags&=(~( 0x1000 ));
1132
1133         if (flags) {
1134                 proto_item_append_text(item, "Unknown bitmap value 0x%x", flags);
1135         }
1136
1137         return offset;
1138 }
1139
1140
1141 /* IDL: struct { */
1142 /* IDL:         uint32 flags; */
1143 /* IDL:         uint32 cPublicRefs; */
1144 /* IDL:         hyper oxid; */
1145 /* IDL:         hyper oid; */
1146 /* IDL:         GUID ipid; */
1147 /* IDL: } */
1148
1149 static int
1150 ObjectRpcBaseTypes_dissect_element_STDOBJREF_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
1151 {
1152         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_ObjectRpcBaseTypes_STDOBJREF_flags, 0);
1153
1154         return offset;
1155 }
1156
1157 static int
1158 ObjectRpcBaseTypes_dissect_element_STDOBJREF_cPublicRefs(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
1159 {
1160         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_ObjectRpcBaseTypes_STDOBJREF_cPublicRefs, 0);
1161
1162         return offset;
1163 }
1164
1165 static int
1166 ObjectRpcBaseTypes_dissect_element_STDOBJREF_oxid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
1167 {
1168         offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, drep, hf_ObjectRpcBaseTypes_STDOBJREF_oxid, NULL);
1169
1170         return offset;
1171 }
1172
1173 static int
1174 ObjectRpcBaseTypes_dissect_element_STDOBJREF_oid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
1175 {
1176         offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, drep, hf_ObjectRpcBaseTypes_STDOBJREF_oid, NULL);
1177
1178         return offset;
1179 }
1180
1181 static int
1182 ObjectRpcBaseTypes_dissect_element_STDOBJREF_ipid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
1183 {
1184         offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, drep, hf_ObjectRpcBaseTypes_STDOBJREF_ipid, NULL);
1185
1186         return offset;
1187 }
1188
1189 int
1190 ObjectRpcBaseTypes_dissect_struct_STDOBJREF(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
1191 {
1192         proto_item *item = NULL;
1193         proto_tree *tree = NULL;
1194         dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
1195         int old_offset;
1196
1197         ALIGN_TO_8_BYTES;
1198
1199         old_offset = offset;
1200
1201         if (parent_tree) {
1202                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
1203                 tree = proto_item_add_subtree(item, ett_ObjectRpcBaseTypes_STDOBJREF);
1204         }
1205         
1206         offset = ObjectRpcBaseTypes_dissect_element_STDOBJREF_flags(tvb, offset, pinfo, tree, drep);
1207
1208         offset = ObjectRpcBaseTypes_dissect_element_STDOBJREF_cPublicRefs(tvb, offset, pinfo, tree, drep);
1209
1210         offset = ObjectRpcBaseTypes_dissect_element_STDOBJREF_oxid(tvb, offset, pinfo, tree, drep);
1211
1212         offset = ObjectRpcBaseTypes_dissect_element_STDOBJREF_oid(tvb, offset, pinfo, tree, drep);
1213
1214         offset = ObjectRpcBaseTypes_dissect_element_STDOBJREF_ipid(tvb, offset, pinfo, tree, drep);
1215
1216
1217         proto_item_set_len(item, offset-old_offset);
1218
1219
1220         if (di->call_data->flags & DCERPC_IS_NDR64) {
1221                 ALIGN_TO_8_BYTES;
1222         }
1223
1224         return offset;
1225 }
1226
1227
1228 /* IDL: struct { */
1229 /* IDL:         STDOBJREF std; */
1230 /* IDL:         STRINGARRAY saResAddr; */
1231 /* IDL: } */
1232
1233 static int
1234 ObjectRpcBaseTypes_dissect_element_u_standard_std(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
1235 {
1236         offset = ObjectRpcBaseTypes_dissect_struct_STDOBJREF(tvb,offset,pinfo,tree,drep,hf_ObjectRpcBaseTypes_u_standard_std,0);
1237
1238         return offset;
1239 }
1240
1241 static int
1242 ObjectRpcBaseTypes_dissect_element_u_standard_saResAddr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
1243 {
1244         offset = ObjectRpcBaseTypes_dissect_struct_STRINGARRAY(tvb,offset,pinfo,tree,drep,hf_ObjectRpcBaseTypes_u_standard_saResAddr,0);
1245
1246         return offset;
1247 }
1248
1249 int
1250 ObjectRpcBaseTypes_dissect_struct_u_standard(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
1251 {
1252         proto_item *item = NULL;
1253         proto_tree *tree = NULL;
1254         dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
1255         int old_offset;
1256
1257         ALIGN_TO_8_BYTES;
1258
1259         old_offset = offset;
1260
1261         if (parent_tree) {
1262                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
1263                 tree = proto_item_add_subtree(item, ett_ObjectRpcBaseTypes_u_standard);
1264         }
1265         
1266         offset = ObjectRpcBaseTypes_dissect_element_u_standard_std(tvb, offset, pinfo, tree, drep);
1267
1268         offset = ObjectRpcBaseTypes_dissect_element_u_standard_saResAddr(tvb, offset, pinfo, tree, drep);
1269
1270
1271         proto_item_set_len(item, offset-old_offset);
1272
1273
1274         if (di->call_data->flags & DCERPC_IS_NDR64) {
1275                 ALIGN_TO_8_BYTES;
1276         }
1277
1278         return offset;
1279 }
1280
1281
1282 /* IDL: struct { */
1283 /* IDL:         STDOBJREF std; */
1284 /* IDL:         GUID clsid; */
1285 /* IDL:         STRINGARRAY saResAddr; */
1286 /* IDL: } */
1287
1288 static int
1289 ObjectRpcBaseTypes_dissect_element_u_handler_std(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
1290 {
1291         offset = ObjectRpcBaseTypes_dissect_struct_STDOBJREF(tvb,offset,pinfo,tree,drep,hf_ObjectRpcBaseTypes_u_handler_std,0);
1292
1293         return offset;
1294 }
1295
1296 static int
1297 ObjectRpcBaseTypes_dissect_element_u_handler_clsid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
1298 {
1299         offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, drep, hf_ObjectRpcBaseTypes_u_handler_clsid, NULL);
1300
1301         return offset;
1302 }
1303
1304 static int
1305 ObjectRpcBaseTypes_dissect_element_u_handler_saResAddr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
1306 {
1307         offset = ObjectRpcBaseTypes_dissect_struct_STRINGARRAY(tvb,offset,pinfo,tree,drep,hf_ObjectRpcBaseTypes_u_handler_saResAddr,0);
1308
1309         return offset;
1310 }
1311
1312 int
1313 ObjectRpcBaseTypes_dissect_struct_u_handler(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
1314 {
1315         proto_item *item = NULL;
1316         proto_tree *tree = NULL;
1317         dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
1318         int old_offset;
1319
1320         ALIGN_TO_8_BYTES;
1321
1322         old_offset = offset;
1323
1324         if (parent_tree) {
1325                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
1326                 tree = proto_item_add_subtree(item, ett_ObjectRpcBaseTypes_u_handler);
1327         }
1328         
1329         offset = ObjectRpcBaseTypes_dissect_element_u_handler_std(tvb, offset, pinfo, tree, drep);
1330
1331         offset = ObjectRpcBaseTypes_dissect_element_u_handler_clsid(tvb, offset, pinfo, tree, drep);
1332
1333         offset = ObjectRpcBaseTypes_dissect_element_u_handler_saResAddr(tvb, offset, pinfo, tree, drep);
1334
1335
1336         proto_item_set_len(item, offset-old_offset);
1337
1338
1339         if (di->call_data->flags & DCERPC_IS_NDR64) {
1340                 ALIGN_TO_8_BYTES;
1341         }
1342
1343         return offset;
1344 }
1345
1346
1347 /* IDL: struct { */
1348 /* IDL:         GUID clsid; */
1349 /* IDL:         uint32 cbExtension; */
1350 /* IDL:         uint32 size; */
1351 /* IDL:         uint8 pData[size]; */
1352 /* IDL: } */
1353
1354 static int
1355 ObjectRpcBaseTypes_dissect_element_u_custom_clsid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
1356 {
1357         offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, drep, hf_ObjectRpcBaseTypes_u_custom_clsid, NULL);
1358
1359         return offset;
1360 }
1361
1362 static int
1363 ObjectRpcBaseTypes_dissect_element_u_custom_cbExtension(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
1364 {
1365         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_ObjectRpcBaseTypes_u_custom_cbExtension, 0);
1366
1367         return offset;
1368 }
1369
1370 static int
1371 ObjectRpcBaseTypes_dissect_element_u_custom_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
1372 {
1373         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_ObjectRpcBaseTypes_u_custom_size, 0);
1374
1375         return offset;
1376 }
1377
1378 static int
1379 ObjectRpcBaseTypes_dissect_element_u_custom_pData(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
1380 {
1381
1382         return offset;
1383 }
1384
1385 static int
1386 ObjectRpcBaseTypes_dissect_element_u_custom_pData_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
1387 {
1388         offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_ObjectRpcBaseTypes_u_custom_pData, 0);
1389
1390         return offset;
1391 }
1392
1393 int
1394 ObjectRpcBaseTypes_dissect_struct_u_custom(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
1395 {
1396         proto_item *item = NULL;
1397         proto_tree *tree = NULL;
1398         dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
1399         int old_offset;
1400
1401         ALIGN_TO_4_BYTES;
1402
1403         old_offset = offset;
1404
1405         if (parent_tree) {
1406                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
1407                 tree = proto_item_add_subtree(item, ett_ObjectRpcBaseTypes_u_custom);
1408         }
1409         
1410         offset = ObjectRpcBaseTypes_dissect_element_u_custom_clsid(tvb, offset, pinfo, tree, drep);
1411
1412         offset = ObjectRpcBaseTypes_dissect_element_u_custom_cbExtension(tvb, offset, pinfo, tree, drep);
1413
1414         offset = ObjectRpcBaseTypes_dissect_element_u_custom_size(tvb, offset, pinfo, tree, drep);
1415
1416         offset = ObjectRpcBaseTypes_dissect_element_u_custom_pData(tvb, offset, pinfo, tree, drep);
1417
1418
1419         proto_item_set_len(item, offset-old_offset);
1420
1421
1422         if (di->call_data->flags & DCERPC_IS_NDR64) {
1423                 ALIGN_TO_4_BYTES;
1424         }
1425
1426         return offset;
1427 }
1428
1429
1430 /* IDL: struct { */
1431 /* IDL: } */
1432
1433 int
1434 ObjectRpcBaseTypes_dissect_struct_u_null(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
1435 {
1436         proto_item *item = NULL;
1437         proto_tree *tree = NULL;
1438         int old_offset;
1439
1440
1441         old_offset = offset;
1442
1443         if (parent_tree) {
1444                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
1445                 tree = proto_item_add_subtree(item, ett_ObjectRpcBaseTypes_u_null);
1446         }
1447         
1448
1449         proto_item_set_len(item, offset-old_offset);
1450
1451
1452         return offset;
1453 }
1454
1455
1456 /* IDL: [nodiscriminant(1)] union { */
1457 /* IDL: [case(OBJREF_NULL)] [case(OBJREF_NULL)] u_null u_null; */
1458 /* IDL: [case(OBJREF_STANDARD)] [case(OBJREF_STANDARD)] u_standard u_standard; */
1459 /* IDL: [case(OBJREF_HANDLER)] [case(OBJREF_HANDLER)] u_handler u_handler; */
1460 /* IDL: [case(OBJREF_CUSTOM)] [case(OBJREF_CUSTOM)] u_custom u_custom; */
1461 /* IDL: } */
1462
1463 static int
1464 ObjectRpcBaseTypes_dissect_element_OBJREF_Types_u_null(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
1465 {
1466         offset = ObjectRpcBaseTypes_dissect_struct_u_null(tvb,offset,pinfo,tree,drep,hf_ObjectRpcBaseTypes_OBJREF_Types_u_null,0);
1467
1468         return offset;
1469 }
1470
1471 static int
1472 ObjectRpcBaseTypes_dissect_element_OBJREF_Types_u_standard(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
1473 {
1474         offset = ObjectRpcBaseTypes_dissect_struct_u_standard(tvb,offset,pinfo,tree,drep,hf_ObjectRpcBaseTypes_OBJREF_Types_u_standard,0);
1475
1476         return offset;
1477 }
1478
1479 static int
1480 ObjectRpcBaseTypes_dissect_element_OBJREF_Types_u_handler(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
1481 {
1482         offset = ObjectRpcBaseTypes_dissect_struct_u_handler(tvb,offset,pinfo,tree,drep,hf_ObjectRpcBaseTypes_OBJREF_Types_u_handler,0);
1483
1484         return offset;
1485 }
1486
1487 static int
1488 ObjectRpcBaseTypes_dissect_element_OBJREF_Types_u_custom(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
1489 {
1490         offset = ObjectRpcBaseTypes_dissect_struct_u_custom(tvb,offset,pinfo,tree,drep,hf_ObjectRpcBaseTypes_OBJREF_Types_u_custom,0);
1491
1492         return offset;
1493 }
1494
1495 static int
1496 ObjectRpcBaseTypes_dissect_OBJREF_Types(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
1497 {
1498         proto_item *item = NULL;
1499         proto_tree *tree = NULL;
1500         int old_offset;
1501         guint32 level = param;
1502
1503         old_offset = offset;
1504         if (parent_tree) {
1505                 item = proto_tree_add_text(parent_tree, tvb, offset, -1, "OBJREF_Types");
1506                 tree = proto_item_add_subtree(item, ett_ObjectRpcBaseTypes_OBJREF_Types);
1507         }
1508
1509         switch(level) {
1510                 case OBJREF_NULL:
1511                         offset = ObjectRpcBaseTypes_dissect_element_OBJREF_Types_u_null(tvb, offset, pinfo, tree, drep);
1512                 break;
1513
1514                 case OBJREF_STANDARD:
1515                         offset = ObjectRpcBaseTypes_dissect_element_OBJREF_Types_u_standard(tvb, offset, pinfo, tree, drep);
1516                 break;
1517
1518                 case OBJREF_HANDLER:
1519                         offset = ObjectRpcBaseTypes_dissect_element_OBJREF_Types_u_handler(tvb, offset, pinfo, tree, drep);
1520                 break;
1521
1522                 case OBJREF_CUSTOM:
1523                         offset = ObjectRpcBaseTypes_dissect_element_OBJREF_Types_u_custom(tvb, offset, pinfo, tree, drep);
1524                 break;
1525         }
1526         proto_item_set_len(item, offset-old_offset);
1527
1528
1529         return offset;
1530 }
1531
1532 /* IDL: struct { */
1533 /* IDL:         uint32 signature; */
1534 /* IDL:         uint32 flags; */
1535 /* IDL:         GUID iid; */
1536 /* IDL:         [switch_is(flags)] [switch_type(uint32)] OBJREF_Types u_objref; */
1537 /* IDL: } */
1538
1539 static int
1540 ObjectRpcBaseTypes_dissect_element_OBJREF_signature(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
1541 {
1542         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_ObjectRpcBaseTypes_OBJREF_signature, 0);
1543
1544         return offset;
1545 }
1546
1547 static int
1548 ObjectRpcBaseTypes_dissect_element_OBJREF_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, guint32 *flags)
1549 {
1550         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_ObjectRpcBaseTypes_OBJREF_flags, flags);
1551
1552         return offset;
1553 }
1554
1555 static int
1556 ObjectRpcBaseTypes_dissect_element_OBJREF_iid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
1557 {
1558         offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, drep, hf_ObjectRpcBaseTypes_OBJREF_iid, NULL);
1559
1560         return offset;
1561 }
1562
1563 static int
1564 ObjectRpcBaseTypes_dissect_element_OBJREF_u_objref(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, guint32 *flags)
1565 {
1566         offset = ObjectRpcBaseTypes_dissect_OBJREF_Types(tvb, offset, pinfo, tree, drep, hf_ObjectRpcBaseTypes_OBJREF_u_objref, *flags);
1567
1568         return offset;
1569 }
1570
1571 int
1572 ObjectRpcBaseTypes_dissect_struct_OBJREF(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
1573 {
1574         guint32 flags;
1575         proto_item *item = NULL;
1576         proto_tree *tree = NULL;
1577         dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
1578         int old_offset;
1579
1580         ALIGN_TO_8_BYTES;
1581
1582         old_offset = offset;
1583
1584         if (parent_tree) {
1585                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
1586                 tree = proto_item_add_subtree(item, ett_ObjectRpcBaseTypes_OBJREF);
1587         }
1588         
1589         offset = ObjectRpcBaseTypes_dissect_element_OBJREF_signature(tvb, offset, pinfo, tree, drep);
1590
1591         offset = ObjectRpcBaseTypes_dissect_element_OBJREF_flags(tvb, offset, pinfo, tree, drep, &flags);
1592
1593         offset = ObjectRpcBaseTypes_dissect_element_OBJREF_iid(tvb, offset, pinfo, tree, drep);
1594
1595         offset = ObjectRpcBaseTypes_dissect_element_OBJREF_u_objref(tvb, offset, pinfo, tree, drep, &flags);
1596
1597
1598         proto_item_set_len(item, offset-old_offset);
1599
1600
1601         if (di->call_data->flags & DCERPC_IS_NDR64) {
1602                 ALIGN_TO_8_BYTES;
1603         }
1604
1605         return offset;
1606 }
1607
1608
1609 /* IDL: struct { */
1610 /* IDL:         uint32 size; */
1611 /* IDL:         [subcontext(4)] OBJREF obj; */
1612 /* IDL: } */
1613
1614 static int
1615 ObjectRpcBaseTypes_dissect_element_MInterfacePointer_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
1616 {
1617         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_ObjectRpcBaseTypes_MInterfacePointer_size, 0);
1618
1619         return offset;
1620 }
1621
1622 static int
1623 ObjectRpcBaseTypes_dissect_element_MInterfacePointer_obj(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
1624 {
1625         dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
1626         guint3264 size;
1627         int conformant = di->conformant_run;
1628         tvbuff_t *subtvb;
1629
1630         if (!conformant) {
1631                 guint32 saved_flags = di->call_data->flags;
1632                 offset = dissect_ndr_uint3264(tvb, offset, pinfo, tree, drep, hf_ObjectRpcBaseTypes_MInterfacePointer_obj_, &size);
1633                 di->call_data->flags &= ~DCERPC_IS_NDR64;
1634                 subtvb = tvb_new_subset(tvb, offset, size, -1);
1635                 ObjectRpcBaseTypes_dissect_element_MInterfacePointer_obj_(subtvb, 0, pinfo, tree, drep);
1636                 offset += size;
1637                 di->call_data->flags = saved_flags;
1638         }
1639
1640         return offset;
1641 }
1642
1643 static int
1644 ObjectRpcBaseTypes_dissect_element_MInterfacePointer_obj_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
1645 {
1646         offset = ObjectRpcBaseTypes_dissect_struct_OBJREF(tvb,offset,pinfo,tree,drep,hf_ObjectRpcBaseTypes_MInterfacePointer_obj,0);
1647
1648         return offset;
1649 }
1650
1651 int
1652 ObjectRpcBaseTypes_dissect_struct_MInterfacePointer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
1653 {
1654         proto_item *item = NULL;
1655         proto_tree *tree = NULL;
1656         dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
1657         int old_offset;
1658
1659         ALIGN_TO_4_BYTES;
1660
1661         old_offset = offset;
1662
1663         if (parent_tree) {
1664                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
1665                 tree = proto_item_add_subtree(item, ett_ObjectRpcBaseTypes_MInterfacePointer);
1666         }
1667         
1668         offset = ObjectRpcBaseTypes_dissect_element_MInterfacePointer_size(tvb, offset, pinfo, tree, drep);
1669
1670         offset = ObjectRpcBaseTypes_dissect_element_MInterfacePointer_obj(tvb, offset, pinfo, tree, drep);
1671
1672
1673         proto_item_set_len(item, offset-old_offset);
1674
1675
1676         if (di->call_data->flags & DCERPC_IS_NDR64) {
1677                 ALIGN_TO_4_BYTES;
1678         }
1679
1680         return offset;
1681 }
1682
1683
1684 /* IDL: enum { */
1685 /* IDL:         COM_OK=0x00000000, */
1686 /* IDL:         COM_OUTOFMEMORY=0x80000002, */
1687 /* IDL:         COM_INVALIDARG=0x80000003, */
1688 /* IDL:         COM_NOINTERFACE=0x80000004, */
1689 /* IDL:         COM_ACCESSDENIED=0x80070005, */
1690 /* IDL:         COM_INVALID_OXID=0x80070776, */
1691 /* IDL:         COM_INVALID_OID=0x80070777, */
1692 /* IDL:         COM_INVALID_SET=0x80070778, */
1693 /* IDL:         COM_UNEXPECTED=0x8000FFFF, */
1694 /* IDL:         COM_CLSNOTFOUND=0x80040154, */
1695 /* IDL: } */
1696
1697 int
1698 ObjectRpcBaseTypes_dissect_enum_COMRESULT(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
1699 {
1700         guint32 parameter=0;
1701         if(param){
1702                 parameter=(guint32)*param;
1703         }
1704         offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
1705         if(param){
1706                 *param=(guint32)parameter;
1707         }
1708         return offset;
1709 }
1710
1711
1712 static dcerpc_sub_dissector ObjectRpcBaseTypes_dissectors[] = {
1713         { 0, NULL, NULL, NULL }
1714 };
1715
1716 void proto_register_dcerpc_ObjectRpcBaseTypes(void)
1717 {
1718         static hf_register_info hf[] = {
1719         { &hf_ObjectRpcBaseTypes_ORPC_FLAGS_ORPCF_RESERVED1,
1720           { "Orpcf Reserved1", "ObjectRpcBaseTypes.ORPC_FLAGS.ORPCF_RESERVED1", FT_BOOLEAN, 32, TFS(&ORPC_FLAGS_ORPCF_RESERVED1_tfs), ( 0x02 ), NULL, HFILL }},
1721         { &hf_ObjectRpcBaseTypes_COMVERSION_MajorVersion,
1722           { "Majorversion", "ObjectRpcBaseTypes.COMVERSION.MajorVersion", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
1723         { &hf_ObjectRpcBaseTypes_ORPC_FLAGS_ORPCF_RESERVED3,
1724           { "Orpcf Reserved3", "ObjectRpcBaseTypes.ORPC_FLAGS.ORPCF_RESERVED3", FT_BOOLEAN, 32, TFS(&ORPC_FLAGS_ORPCF_RESERVED3_tfs), ( 0x08 ), NULL, HFILL }},
1725         { &hf_ObjectRpcBaseTypes_SECURITYBINDING_PrincName,
1726           { "Princname", "ObjectRpcBaseTypes.SECURITYBINDING.PrincName", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
1727         { &hf_ObjectRpcBaseTypes_ORPC_FLAGS_ORPCF_RESERVED2,
1728           { "Orpcf Reserved2", "ObjectRpcBaseTypes.ORPC_FLAGS.ORPCF_RESERVED2", FT_BOOLEAN, 32, TFS(&ORPC_FLAGS_ORPCF_RESERVED2_tfs), ( 0x04 ), NULL, HFILL }},
1729         { &hf_ObjectRpcBaseTypes_u_standard_saResAddr,
1730           { "Saresaddr", "ObjectRpcBaseTypes.u_standard.saResAddr", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
1731         { &hf_ObjectRpcBaseTypes_STDOBJREF_ipid,
1732           { "Ipid", "ObjectRpcBaseTypes.STDOBJREF.ipid", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
1733         { &hf_ObjectRpcBaseTypes_STDOBJREF_FLAGS_SORF_OXRES5,
1734           { "Sorf Oxres5", "ObjectRpcBaseTypes.STDOBJREF_FLAGS.SORF_OXRES5", FT_BOOLEAN, 32, TFS(&STDOBJREF_FLAGS_SORF_OXRES5_tfs), ( 0x0100 ), NULL, HFILL }},
1735         { &hf_ObjectRpcBaseTypes_STDOBJREF_FLAGS_SORF_OXRES2,
1736           { "Sorf Oxres2", "ObjectRpcBaseTypes.STDOBJREF_FLAGS.SORF_OXRES2", FT_BOOLEAN, 32, TFS(&STDOBJREF_FLAGS_SORF_OXRES2_tfs), ( 0x0020 ), NULL, HFILL }},
1737         { &hf_ObjectRpcBaseTypes_ORPCTHAT_flags,
1738           { "Flags", "ObjectRpcBaseTypes.ORPCTHAT.flags", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
1739         { &hf_ObjectRpcBaseTypes_MInterfacePointer_obj,
1740           { "Obj", "ObjectRpcBaseTypes.MInterfacePointer.obj", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
1741         { &hf_ObjectRpcBaseTypes_STRINGBINDING_NetworkAddr,
1742           { "Networkaddr", "ObjectRpcBaseTypes.STRINGBINDING.NetworkAddr", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
1743         { &hf_ObjectRpcBaseTypes_MInterfacePointer_obj_,
1744           { "Subcontext length", "ObjectRpcBaseTypes.MInterfacePointer.subcontext", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
1745         { &hf_ObjectRpcBaseTypes_ORPCTHIS_reserved1,
1746           { "Reserved1", "ObjectRpcBaseTypes.ORPCTHIS.reserved1", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
1747         { &hf_ObjectRpcBaseTypes_OBJREF_u_objref,
1748           { "U Objref", "ObjectRpcBaseTypes.OBJREF.u_objref", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
1749         { &hf_ObjectRpcBaseTypes_OBJREF_Types_u_standard,
1750           { "U Standard", "ObjectRpcBaseTypes.OBJREF_Types.u_standard", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
1751         { &hf_ObjectRpcBaseTypes_ORPC_FLAGS_ORPCF_LOCAL,
1752           { "Orpcf Local", "ObjectRpcBaseTypes.ORPC_FLAGS.ORPCF_LOCAL", FT_BOOLEAN, 32, TFS(&ORPC_FLAGS_ORPCF_LOCAL_tfs), ( 0x01 ), NULL, HFILL }},
1753         { &hf_ObjectRpcBaseTypes_STDOBJREF_FLAGS_SORF_NOPING,
1754           { "Sorf Noping", "ObjectRpcBaseTypes.STDOBJREF_FLAGS.SORF_NOPING", FT_BOOLEAN, 32, TFS(&STDOBJREF_FLAGS_SORF_NOPING_tfs), ( 0x1000 ), NULL, HFILL }},
1755         { &hf_ObjectRpcBaseTypes_STDOBJREF_FLAGS_SORF_OXRES3,
1756           { "Sorf Oxres3", "ObjectRpcBaseTypes.STDOBJREF_FLAGS.SORF_OXRES3", FT_BOOLEAN, 32, TFS(&STDOBJREF_FLAGS_SORF_OXRES3_tfs), ( 0x0040 ), NULL, HFILL }},
1757         { &hf_ObjectRpcBaseTypes_ORPC_FLAGS_ORPCF_NULL,
1758           { "Orpcf Null", "ObjectRpcBaseTypes.ORPC_FLAGS.ORPCF_NULL", FT_BOOLEAN, 32, TFS(&ORPC_FLAGS_ORPCF_NULL_tfs), ( 0x00 ), NULL, HFILL }},
1759         { &hf_ObjectRpcBaseTypes_ORPCTHAT_extensions,
1760           { "Extensions", "ObjectRpcBaseTypes.ORPCTHAT.extensions", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
1761         { &hf_ObjectRpcBaseTypes_STRINGBINDING_wTowerId,
1762           { "Wtowerid", "ObjectRpcBaseTypes.STRINGBINDING.wTowerId", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
1763         { &hf_ObjectRpcBaseTypes_STRINGARRAY_stringbindings,
1764           { "Stringbindings", "ObjectRpcBaseTypes.STRINGARRAY.stringbindings", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
1765         { &hf_ObjectRpcBaseTypes_STDOBJREF_FLAGS_SORF_OXRES8,
1766           { "Sorf Oxres8", "ObjectRpcBaseTypes.STDOBJREF_FLAGS.SORF_OXRES8", FT_BOOLEAN, 32, TFS(&STDOBJREF_FLAGS_SORF_OXRES8_tfs), ( 0x0800 ), NULL, HFILL }},
1767         { &hf_ObjectRpcBaseTypes_STDOBJREF_cPublicRefs,
1768           { "Cpublicrefs", "ObjectRpcBaseTypes.STDOBJREF.cPublicRefs", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
1769         { &hf_ObjectRpcBaseTypes_STDOBJREF_FLAGS_SORF_OXRES6,
1770           { "Sorf Oxres6", "ObjectRpcBaseTypes.STDOBJREF_FLAGS.SORF_OXRES6", FT_BOOLEAN, 32, TFS(&STDOBJREF_FLAGS_SORF_OXRES6_tfs), ( 0x0200 ), NULL, HFILL }},
1771         { &hf_ObjectRpcBaseTypes_OBJREF_Types_u_null,
1772           { "U Null", "ObjectRpcBaseTypes.OBJREF_Types.u_null", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
1773         { &hf_ObjectRpcBaseTypes_u_standard_std,
1774           { "Std", "ObjectRpcBaseTypes.u_standard.std", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
1775         { &hf_ObjectRpcBaseTypes_ORPCTHIS_flags,
1776           { "Flags", "ObjectRpcBaseTypes.ORPCTHIS.flags", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
1777         { &hf_ObjectRpcBaseTypes_SECURITYBINDING_wAuthzSvc,
1778           { "Wauthzsvc", "ObjectRpcBaseTypes.SECURITYBINDING.wAuthzSvc", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
1779         { &hf_ObjectRpcBaseTypes_SECURITYBINDING_wAuthnSvc,
1780           { "Wauthnsvc", "ObjectRpcBaseTypes.SECURITYBINDING.wAuthnSvc", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
1781         { &hf_ObjectRpcBaseTypes_ORPCTHIS_extensions,
1782           { "Extensions", "ObjectRpcBaseTypes.ORPCTHIS.extensions", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
1783         { &hf_ObjectRpcBaseTypes_DUALSTRINGARRAY_securitybindings,
1784           { "Securitybindings", "ObjectRpcBaseTypes.DUALSTRINGARRAY.securitybindings", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
1785         { &hf_ObjectRpcBaseTypes_ORPC_EXTENT_ARRAY_size,
1786           { "Size", "ObjectRpcBaseTypes.ORPC_EXTENT_ARRAY.size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
1787         { &hf_ObjectRpcBaseTypes_u_handler_std,
1788           { "Std", "ObjectRpcBaseTypes.u_handler.std", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
1789         { &hf_ObjectRpcBaseTypes_STDOBJREF_oxid,
1790           { "Oxid", "ObjectRpcBaseTypes.STDOBJREF.oxid", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
1791         { &hf_ObjectRpcBaseTypes_OBJREF_flags,
1792           { "Flags", "ObjectRpcBaseTypes.OBJREF.flags", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
1793         { &hf_ObjectRpcBaseTypes_STDOBJREF_FLAGS_SORF_NULL,
1794           { "Sorf Null", "ObjectRpcBaseTypes.STDOBJREF_FLAGS.SORF_NULL", FT_BOOLEAN, 32, TFS(&STDOBJREF_FLAGS_SORF_NULL_tfs), ( 0x0000 ), NULL, HFILL }},
1795         { &hf_ObjectRpcBaseTypes_ORPC_FLAGS_ORPCF_RESERVED4,
1796           { "Orpcf Reserved4", "ObjectRpcBaseTypes.ORPC_FLAGS.ORPCF_RESERVED4", FT_BOOLEAN, 32, TFS(&ORPC_FLAGS_ORPCF_RESERVED4_tfs), ( 0x10 ), NULL, HFILL }},
1797         { &hf_ObjectRpcBaseTypes_ORPC_EXTENT_size,
1798           { "Size", "ObjectRpcBaseTypes.ORPC_EXTENT.size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
1799         { &hf_ObjectRpcBaseTypes_OBJREF_Types_u_handler,
1800           { "U Handler", "ObjectRpcBaseTypes.OBJREF_Types.u_handler", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
1801         { &hf_ObjectRpcBaseTypes_u_custom_cbExtension,
1802           { "Cbextension", "ObjectRpcBaseTypes.u_custom.cbExtension", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
1803         { &hf_ObjectRpcBaseTypes_opnum,
1804           { "Operation", "ObjectRpcBaseTypes.opnum", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
1805         { &hf_ObjectRpcBaseTypes_u_handler_clsid,
1806           { "Clsid", "ObjectRpcBaseTypes.u_handler.clsid", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
1807         { &hf_ObjectRpcBaseTypes_OBJREF_signature,
1808           { "Signature", "ObjectRpcBaseTypes.OBJREF.signature", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
1809         { &hf_ObjectRpcBaseTypes_OBJREF_Types_u_custom,
1810           { "U Custom", "ObjectRpcBaseTypes.OBJREF_Types.u_custom", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
1811         { &hf_ObjectRpcBaseTypes_ORPC_EXTENT_ARRAY_extent,
1812           { "Extent", "ObjectRpcBaseTypes.ORPC_EXTENT_ARRAY.extent", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
1813         { &hf_ObjectRpcBaseTypes_ORPC_EXTENT_id,
1814           { "Id", "ObjectRpcBaseTypes.ORPC_EXTENT.id", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
1815         { &hf_ObjectRpcBaseTypes_u_custom_size,
1816           { "Size", "ObjectRpcBaseTypes.u_custom.size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
1817         { &hf_ObjectRpcBaseTypes_OBJREF_iid,
1818           { "Iid", "ObjectRpcBaseTypes.OBJREF.iid", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
1819         { &hf_ObjectRpcBaseTypes_ORPCTHIS_version,
1820           { "Version", "ObjectRpcBaseTypes.ORPCTHIS.version", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
1821         { &hf_ObjectRpcBaseTypes_STDOBJREF_FLAGS_SORF_OXRES4,
1822           { "Sorf Oxres4", "ObjectRpcBaseTypes.STDOBJREF_FLAGS.SORF_OXRES4", FT_BOOLEAN, 32, TFS(&STDOBJREF_FLAGS_SORF_OXRES4_tfs), ( 0x0080 ), NULL, HFILL }},
1823         { &hf_ObjectRpcBaseTypes_ORPC_EXTENT_ARRAY_reserved,
1824           { "Reserved", "ObjectRpcBaseTypes.ORPC_EXTENT_ARRAY.reserved", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
1825         { &hf_ObjectRpcBaseTypes_COMVERSION_MinorVersion,
1826           { "Minorversion", "ObjectRpcBaseTypes.COMVERSION.MinorVersion", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
1827         { &hf_ObjectRpcBaseTypes_MInterfacePointer_size,
1828           { "Size", "ObjectRpcBaseTypes.MInterfacePointer.size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
1829         { &hf_ObjectRpcBaseTypes_STDOBJREF_FLAGS_SORF_OXRES1,
1830           { "Sorf Oxres1", "ObjectRpcBaseTypes.STDOBJREF_FLAGS.SORF_OXRES1", FT_BOOLEAN, 32, TFS(&STDOBJREF_FLAGS_SORF_OXRES1_tfs), ( 0x0001 ), NULL, HFILL }},
1831         { &hf_ObjectRpcBaseTypes_u_custom_clsid,
1832           { "Clsid", "ObjectRpcBaseTypes.u_custom.clsid", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
1833         { &hf_ObjectRpcBaseTypes_STDOBJREF_oid,
1834           { "Oid", "ObjectRpcBaseTypes.STDOBJREF.oid", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
1835         { &hf_ObjectRpcBaseTypes_u_handler_saResAddr,
1836           { "Saresaddr", "ObjectRpcBaseTypes.u_handler.saResAddr", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
1837         { &hf_ObjectRpcBaseTypes_DUALSTRINGARRAY_stringbindings,
1838           { "Stringbindings", "ObjectRpcBaseTypes.DUALSTRINGARRAY.stringbindings", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
1839         { &hf_ObjectRpcBaseTypes_STDOBJREF_FLAGS_SORF_OXRES7,
1840           { "Sorf Oxres7", "ObjectRpcBaseTypes.STDOBJREF_FLAGS.SORF_OXRES7", FT_BOOLEAN, 32, TFS(&STDOBJREF_FLAGS_SORF_OXRES7_tfs), ( 0x0400 ), NULL, HFILL }},
1841         { &hf_ObjectRpcBaseTypes_ORPCTHIS_cid,
1842           { "Cid", "ObjectRpcBaseTypes.ORPCTHIS.cid", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
1843         { &hf_ObjectRpcBaseTypes_STDOBJREF_flags,
1844           { "Flags", "ObjectRpcBaseTypes.STDOBJREF.flags", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
1845         { &hf_ObjectRpcBaseTypes_u_custom_pData,
1846           { "Pdata", "ObjectRpcBaseTypes.u_custom.pData", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
1847         { &hf_ObjectRpcBaseTypes_ORPC_EXTENT_data,
1848           { "Data", "ObjectRpcBaseTypes.ORPC_EXTENT.data", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
1849         };
1850
1851
1852         static gint *ett[] = {
1853                 &ett_dcerpc_ObjectRpcBaseTypes,
1854                 &ett_ObjectRpcBaseTypes_COMVERSION,
1855                 &ett_ObjectRpcBaseTypes_ORPC_FLAGS,
1856                 &ett_ObjectRpcBaseTypes_ORPC_EXTENT,
1857                 &ett_ObjectRpcBaseTypes_ORPC_EXTENT_ARRAY,
1858                 &ett_ObjectRpcBaseTypes_ORPCTHIS,
1859                 &ett_ObjectRpcBaseTypes_ORPCTHAT,
1860                 &ett_ObjectRpcBaseTypes_STRINGBINDING,
1861                 &ett_ObjectRpcBaseTypes_STRINGARRAY,
1862                 &ett_ObjectRpcBaseTypes_DUALSTRINGARRAY,
1863                 &ett_ObjectRpcBaseTypes_SECURITYBINDING,
1864                 &ett_ObjectRpcBaseTypes_STDOBJREF_FLAGS,
1865                 &ett_ObjectRpcBaseTypes_STDOBJREF,
1866                 &ett_ObjectRpcBaseTypes_u_standard,
1867                 &ett_ObjectRpcBaseTypes_u_handler,
1868                 &ett_ObjectRpcBaseTypes_u_custom,
1869                 &ett_ObjectRpcBaseTypes_u_null,
1870                 &ett_ObjectRpcBaseTypes_OBJREF_Types,
1871                 &ett_ObjectRpcBaseTypes_OBJREF,
1872                 &ett_ObjectRpcBaseTypes_MInterfacePointer,
1873         };
1874
1875         proto_dcerpc_ObjectRpcBaseTypes = proto_register_protocol("OBJECTRPCBASETYPES (pidl)", "OBJECTRPCBASETYPES", "ObjectRpcBaseTypes");
1876         proto_register_field_array(proto_dcerpc_ObjectRpcBaseTypes, hf, array_length (hf));
1877         proto_register_subtree_array(ett, array_length(ett));
1878 }
1879
1880 void proto_reg_handoff_dcerpc_ObjectRpcBaseTypes(void)
1881 {
1882         dcerpc_init_uuid(proto_dcerpc_ObjectRpcBaseTypes, ett_dcerpc_ObjectRpcBaseTypes,
1883                 &uuid_dcerpc_ObjectRpcBaseTypes, ver_dcerpc_ObjectRpcBaseTypes,
1884                 ObjectRpcBaseTypes_dissectors, hf_ObjectRpcBaseTypes_opnum);
1885 }