Revert "TODO epan/dissectors/asn1/kerberos/packet-kerberos-template.c new GSS flags"
[wireshark-sm.git] / epan / dissectors / packet-dcerpc-misc.c
blob574599f68dade28acd5b745d85aebc4dcd789ef8
1 /* DO NOT EDIT
2 This file was automatically generated by Pidl
3 from misc.idl and misc.cnf.
5 Pidl is a perl based IDL compiler for DCE/RPC idl files.
6 It is maintained by the Samba team, not the Wireshark team.
7 Instructions on how to download and install Pidl can be
8 found at https://wiki.wireshark.org/Pidl
9 */
12 #include "config.h"
13 #include <string.h>
14 #include <wsutil/array.h>
15 #include <epan/packet.h>
16 #include <epan/tfs.h>
18 #include "packet-dcerpc.h"
19 #include "packet-dcerpc-nt.h"
20 #include "packet-windows-common.h"
21 #include "packet-dcerpc-misc.h"
22 void proto_register_dcerpc_misc(void);
23 void proto_reg_handoff_dcerpc_misc(void);
25 /* Ett declarations */
26 static int ett_dcerpc_misc;
27 static int ett_misc_GUID;
28 static int ett_misc_ndr_syntax_id;
29 static int ett_misc_policy_handle;
30 static int ett_misc_KRB5_EDATA_NTSTATUS;
33 /* Header field declarations */
34 static int hf_misc_GUID_clock_seq;
35 static int hf_misc_GUID_node;
36 static int hf_misc_GUID_time_hi_and_version;
37 static int hf_misc_GUID_time_low;
38 static int hf_misc_GUID_time_mid;
39 static int hf_misc_KRB5_EDATA_NTSTATUS_ntstatus;
40 static int hf_misc_KRB5_EDATA_NTSTATUS_unknown1;
41 static int hf_misc_KRB5_EDATA_NTSTATUS_unknown2;
42 static int hf_misc_ndr_syntax_id_if_version;
43 static int hf_misc_ndr_syntax_id_uuid;
44 static int hf_misc_opnum;
45 static int hf_misc_policy_handle_handle_type;
46 static int hf_misc_policy_handle_uuid;
48 static int proto_dcerpc_misc;
49 /* Version information */
52 static e_guid_t uuid_dcerpc_misc = {
53 0x12345678, 0x1234, 0x1234,
54 { 0x12, 0x34, 0xab, 0xcd, 0xef, 0x12, 0x34, 0x56 }
56 static uint16_t ver_dcerpc_misc = 1;
58 static int misc_dissect_element_GUID_time_low(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
59 static int misc_dissect_element_GUID_time_mid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
60 static int misc_dissect_element_GUID_time_hi_and_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
61 static int misc_dissect_element_GUID_clock_seq(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
62 static int misc_dissect_element_GUID_clock_seq_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
63 static int misc_dissect_element_GUID_node(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
64 static int misc_dissect_element_GUID_node_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
65 static int misc_dissect_element_ndr_syntax_id_uuid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
66 static int misc_dissect_element_ndr_syntax_id_if_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
67 static int misc_dissect_element_policy_handle_handle_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
68 static int misc_dissect_element_policy_handle_uuid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
69 const value_string misc_netr_SchannelType_vals[] = {
70 { SEC_CHAN_NULL, "SEC_CHAN_NULL" },
71 { SEC_CHAN_LOCAL, "SEC_CHAN_LOCAL" },
72 { SEC_CHAN_WKSTA, "SEC_CHAN_WKSTA" },
73 { SEC_CHAN_DNS_DOMAIN, "SEC_CHAN_DNS_DOMAIN" },
74 { SEC_CHAN_DOMAIN, "SEC_CHAN_DOMAIN" },
75 { SEC_CHAN_LANMAN, "SEC_CHAN_LANMAN" },
76 { SEC_CHAN_BDC, "SEC_CHAN_BDC" },
77 { SEC_CHAN_RODC, "SEC_CHAN_RODC" },
78 { 0, NULL }
80 static int misc_dissect_element_KRB5_EDATA_NTSTATUS_ntstatus(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
81 static int misc_dissect_element_KRB5_EDATA_NTSTATUS_unknown1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
82 static int misc_dissect_element_KRB5_EDATA_NTSTATUS_unknown2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
83 const value_string misc_winreg_Type_vals[] = {
84 { REG_NONE, "REG_NONE" },
85 { REG_SZ, "REG_SZ" },
86 { REG_EXPAND_SZ, "REG_EXPAND_SZ" },
87 { REG_BINARY, "REG_BINARY" },
88 { REG_DWORD, "REG_DWORD" },
89 { REG_DWORD_BIG_ENDIAN, "REG_DWORD_BIG_ENDIAN" },
90 { REG_LINK, "REG_LINK" },
91 { REG_MULTI_SZ, "REG_MULTI_SZ" },
92 { REG_RESOURCE_LIST, "REG_RESOURCE_LIST" },
93 { REG_FULL_RESOURCE_DESCRIPTOR, "REG_FULL_RESOURCE_DESCRIPTOR" },
94 { REG_RESOURCE_REQUIREMENTS_LIST, "REG_RESOURCE_REQUIREMENTS_LIST" },
95 { REG_QWORD, "REG_QWORD" },
96 { 0, NULL }
100 /* IDL: struct { */
101 /* IDL: uint32 time_low; */
102 /* IDL: uint16 time_mid; */
103 /* IDL: uint16 time_hi_and_version; */
104 /* IDL: uint8 clock_seq[2]; */
105 /* IDL: uint8 node[6]; */
106 /* IDL: } */
108 static int
109 misc_dissect_element_GUID_time_low(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
111 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_misc_GUID_time_low, 0);
113 return offset;
116 static int
117 misc_dissect_element_GUID_time_mid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
119 offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_misc_GUID_time_mid, 0);
121 return offset;
124 static int
125 misc_dissect_element_GUID_time_hi_and_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
127 offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_misc_GUID_time_hi_and_version, 0);
129 return offset;
132 static int
133 misc_dissect_element_GUID_clock_seq(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
135 int i;
136 for (i = 0; i < 2; i++)
137 offset = misc_dissect_element_GUID_clock_seq_(tvb, offset, pinfo, tree, di, drep);
139 return offset;
142 static int
143 misc_dissect_element_GUID_clock_seq_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
145 offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_misc_GUID_clock_seq, 0);
147 return offset;
150 static int
151 misc_dissect_element_GUID_node(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
153 int i;
154 for (i = 0; i < 6; i++)
155 offset = misc_dissect_element_GUID_node_(tvb, offset, pinfo, tree, di, drep);
157 return offset;
160 static int
161 misc_dissect_element_GUID_node_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
163 offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_misc_GUID_node, 0);
165 return offset;
169 misc_dissect_struct_GUID(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
171 proto_item *item = NULL;
172 proto_tree *tree = NULL;
173 int old_offset;
175 ALIGN_TO_4_BYTES;
177 old_offset = offset;
179 if (parent_tree) {
180 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
181 tree = proto_item_add_subtree(item, ett_misc_GUID);
184 offset = misc_dissect_element_GUID_time_low(tvb, offset, pinfo, tree, di, drep);
186 offset = misc_dissect_element_GUID_time_mid(tvb, offset, pinfo, tree, di, drep);
188 offset = misc_dissect_element_GUID_time_hi_and_version(tvb, offset, pinfo, tree, di, drep);
190 offset = misc_dissect_element_GUID_clock_seq(tvb, offset, pinfo, tree, di, drep);
192 offset = misc_dissect_element_GUID_node(tvb, offset, pinfo, tree, di, drep);
195 proto_item_set_len(item, offset-old_offset);
198 if (di->call_data->flags & DCERPC_IS_NDR64) {
199 ALIGN_TO_4_BYTES;
202 return offset;
206 /* IDL: struct { */
207 /* IDL: GUID uuid; */
208 /* IDL: uint32 if_version; */
209 /* IDL: } */
211 static int
212 misc_dissect_element_ndr_syntax_id_uuid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
214 offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, di, drep, hf_misc_ndr_syntax_id_uuid, NULL);
216 return offset;
219 static int
220 misc_dissect_element_ndr_syntax_id_if_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
222 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_misc_ndr_syntax_id_if_version, 0);
224 return offset;
228 misc_dissect_struct_ndr_syntax_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
230 proto_item *item = NULL;
231 proto_tree *tree = NULL;
232 int old_offset;
234 ALIGN_TO_4_BYTES;
236 old_offset = offset;
238 if (parent_tree) {
239 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
240 tree = proto_item_add_subtree(item, ett_misc_ndr_syntax_id);
243 offset = misc_dissect_element_ndr_syntax_id_uuid(tvb, offset, pinfo, tree, di, drep);
245 offset = misc_dissect_element_ndr_syntax_id_if_version(tvb, offset, pinfo, tree, di, drep);
248 proto_item_set_len(item, offset-old_offset);
251 if (di->call_data->flags & DCERPC_IS_NDR64) {
252 ALIGN_TO_4_BYTES;
255 return offset;
259 /* IDL: struct { */
260 /* IDL: uint32 handle_type; */
261 /* IDL: GUID uuid; */
262 /* IDL: } */
264 static int
265 misc_dissect_element_policy_handle_handle_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
267 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_misc_policy_handle_handle_type, 0);
269 return offset;
272 static int
273 misc_dissect_element_policy_handle_uuid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
275 offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, di, drep, hf_misc_policy_handle_uuid, NULL);
277 return offset;
281 misc_dissect_struct_policy_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
283 proto_item *item = NULL;
284 proto_tree *tree = NULL;
285 int old_offset;
287 ALIGN_TO_4_BYTES;
289 old_offset = offset;
291 if (parent_tree) {
292 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
293 tree = proto_item_add_subtree(item, ett_misc_policy_handle);
296 offset = misc_dissect_element_policy_handle_handle_type(tvb, offset, pinfo, tree, di, drep);
298 offset = misc_dissect_element_policy_handle_uuid(tvb, offset, pinfo, tree, di, drep);
301 proto_item_set_len(item, offset-old_offset);
304 if (di->call_data->flags & DCERPC_IS_NDR64) {
305 ALIGN_TO_4_BYTES;
308 return offset;
312 /* IDL: enum { */
313 /* IDL: SEC_CHAN_NULL=0, */
314 /* IDL: SEC_CHAN_LOCAL=1, */
315 /* IDL: SEC_CHAN_WKSTA=2, */
316 /* IDL: SEC_CHAN_DNS_DOMAIN=3, */
317 /* IDL: SEC_CHAN_DOMAIN=4, */
318 /* IDL: SEC_CHAN_LANMAN=5, */
319 /* IDL: SEC_CHAN_BDC=6, */
320 /* IDL: SEC_CHAN_RODC=7, */
321 /* IDL: } */
324 misc_dissect_enum_netr_SchannelType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t *param _U_)
326 uint32_t parameter=0;
327 if (param) {
328 parameter = *param;
330 offset = dissect_ndr_uint1632(tvb, offset, pinfo, tree, di, drep, hf_index, &parameter);
331 if (param) {
332 *param = parameter;
334 return offset;
338 /* IDL: struct { */
339 /* IDL: NTSTATUS ntstatus; */
340 /* IDL: uint32 unknown1; */
341 /* IDL: uint32 unknown2; */
342 /* IDL: } */
344 static int
345 misc_dissect_element_KRB5_EDATA_NTSTATUS_ntstatus(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
347 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_misc_KRB5_EDATA_NTSTATUS_ntstatus, 0);
349 return offset;
352 static int
353 misc_dissect_element_KRB5_EDATA_NTSTATUS_unknown1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
355 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_misc_KRB5_EDATA_NTSTATUS_unknown1, 0);
357 return offset;
360 static int
361 misc_dissect_element_KRB5_EDATA_NTSTATUS_unknown2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
363 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_misc_KRB5_EDATA_NTSTATUS_unknown2, 0);
365 return offset;
369 misc_dissect_struct_KRB5_EDATA_NTSTATUS(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
371 proto_item *item = NULL;
372 proto_tree *tree = NULL;
373 int old_offset;
375 ALIGN_TO_4_BYTES;
377 old_offset = offset;
379 if (parent_tree) {
380 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
381 tree = proto_item_add_subtree(item, ett_misc_KRB5_EDATA_NTSTATUS);
384 offset = misc_dissect_element_KRB5_EDATA_NTSTATUS_ntstatus(tvb, offset, pinfo, tree, di, drep);
386 offset = misc_dissect_element_KRB5_EDATA_NTSTATUS_unknown1(tvb, offset, pinfo, tree, di, drep);
388 offset = misc_dissect_element_KRB5_EDATA_NTSTATUS_unknown2(tvb, offset, pinfo, tree, di, drep);
391 proto_item_set_len(item, offset-old_offset);
394 if (di->call_data->flags & DCERPC_IS_NDR64) {
395 ALIGN_TO_4_BYTES;
398 return offset;
402 /* IDL: enum { */
403 /* IDL: REG_NONE=0, */
404 /* IDL: REG_SZ=1, */
405 /* IDL: REG_EXPAND_SZ=2, */
406 /* IDL: REG_BINARY=3, */
407 /* IDL: REG_DWORD=4, */
408 /* IDL: REG_DWORD_BIG_ENDIAN=5, */
409 /* IDL: REG_LINK=6, */
410 /* IDL: REG_MULTI_SZ=7, */
411 /* IDL: REG_RESOURCE_LIST=8, */
412 /* IDL: REG_FULL_RESOURCE_DESCRIPTOR=9, */
413 /* IDL: REG_RESOURCE_REQUIREMENTS_LIST=10, */
414 /* IDL: REG_QWORD=11, */
415 /* IDL: } */
418 misc_dissect_enum_winreg_Type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t *param _U_)
420 uint32_t parameter=0;
421 if (param) {
422 parameter = *param;
424 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_index, &parameter);
425 if (param) {
426 *param = parameter;
428 return offset;
432 /* IDL: [flag(LIBNDR_FLAG_LITTLE_ENDIAN)] [nodiscriminant(1)] [public(1)] union { */
433 /* IDL: [case(REG_NONE)] [case(REG_NONE)] EMPTY ; */
434 /* IDL: [case(REG_SZ)] [case(REG_SZ)] [flag(LIBNDR_FLAG_STR_NULLTERM)] string string; */
435 /* IDL: [case(REG_EXPAND_SZ)] [case(REG_EXPAND_SZ)] [flag(LIBNDR_FLAG_STR_NULLTERM)] string string; */
436 /* IDL: [case(REG_BINARY)] [case(REG_BINARY)] [flag(LIBNDR_FLAG_REMAINING)] DATA_BLOB binary; */
437 /* IDL: [case(REG_DWORD)] [case(REG_DWORD)] uint32 value; */
438 /* IDL: [case(REG_DWORD_BIG_ENDIAN)] [case(REG_DWORD_BIG_ENDIAN)] [flag(LIBNDR_FLAG_BIGENDIAN)] uint32 value; */
439 /* IDL: [case(REG_MULTI_SZ)] [case(REG_MULTI_SZ)] [flag(LIBNDR_FLAG_STR_NULLTERM)] string_array string_array; */
440 /* IDL: [default] ; */
441 /* IDL: } */
444 static const dcerpc_sub_dissector misc_dissectors[] = {
445 { 0, NULL, NULL, NULL }
448 void proto_register_dcerpc_misc(void)
450 static hf_register_info hf[] = {
451 { &hf_misc_GUID_clock_seq,
452 { "Clock Seq", "misc.GUID.clock_seq", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
453 { &hf_misc_GUID_node,
454 { "Node", "misc.GUID.node", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
455 { &hf_misc_GUID_time_hi_and_version,
456 { "Time Hi And Version", "misc.GUID.time_hi_and_version", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
457 { &hf_misc_GUID_time_low,
458 { "Time Low", "misc.GUID.time_low", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
459 { &hf_misc_GUID_time_mid,
460 { "Time Mid", "misc.GUID.time_mid", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
461 { &hf_misc_KRB5_EDATA_NTSTATUS_ntstatus,
462 { "Ntstatus", "misc.KRB5_EDATA_NTSTATUS.ntstatus", FT_UINT32, BASE_HEX|BASE_EXT_STRING, &NT_errors_ext, 0, NULL, HFILL }},
463 { &hf_misc_KRB5_EDATA_NTSTATUS_unknown1,
464 { "Unknown1", "misc.KRB5_EDATA_NTSTATUS.unknown1", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
465 { &hf_misc_KRB5_EDATA_NTSTATUS_unknown2,
466 { "Unknown2", "misc.KRB5_EDATA_NTSTATUS.unknown2", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
467 { &hf_misc_ndr_syntax_id_if_version,
468 { "If Version", "misc.ndr_syntax_id.if_version", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
469 { &hf_misc_ndr_syntax_id_uuid,
470 { "Uuid", "misc.ndr_syntax_id.uuid", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
471 { &hf_misc_opnum,
472 { "Operation", "misc.opnum", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
473 { &hf_misc_policy_handle_handle_type,
474 { "Handle Type", "misc.policy_handle.handle_type", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
475 { &hf_misc_policy_handle_uuid,
476 { "Uuid", "misc.policy_handle.uuid", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
480 static int *ett[] = {
481 &ett_dcerpc_misc,
482 &ett_misc_GUID,
483 &ett_misc_ndr_syntax_id,
484 &ett_misc_policy_handle,
485 &ett_misc_KRB5_EDATA_NTSTATUS,
488 proto_dcerpc_misc = proto_register_protocol("MISC (pidl)", "MISC", "misc");
489 proto_register_field_array(proto_dcerpc_misc, hf, array_length (hf));
490 proto_register_subtree_array(ett, array_length(ett));
493 void proto_reg_handoff_dcerpc_misc(void)
495 dcerpc_init_uuid(proto_dcerpc_misc, ett_dcerpc_misc,
496 &uuid_dcerpc_misc, ver_dcerpc_misc,
497 misc_dissectors, hf_misc_opnum);