2 * Routines for Network Monitor capture dissection
4 * Wireshark - Network traffic analyzer
5 * By Gerald Combs <gerald@wireshark.org>
6 * Copyright 1998 Gerald Combs
8 * SPDX-License-Identifier: GPL-2.0-or-later
10 * Network Event Tracing event taken from:
12 * https://docs.microsoft.com/en-us/windows/win32/api/evntcons/ns-evntcons-event_header
17 #include <epan/packet.h>
18 #include <epan/to_str.h>
19 #include <epan/expert.h>
21 #include <wsutil/array.h>
22 #include <wiretap/wtap.h>
23 #include "packet-netmon.h"
25 void proto_register_netmon(void);
26 void proto_reg_handoff_netmon(void);
28 #define EVENT_HEADER_PROPERTY_XML 0x0001
29 #define EVENT_HEADER_PROPERTY_FORWARDED_XML 0x0002
30 #define EVENT_HEADER_PROPERTY_LEGACY_EVENTLOG 0x0004
32 static const value_string event_level_vals
[] = {
52 static const value_string opcode_vals
[] = {
66 static const range_string filter_types
[] = {
67 { 0, 0, "Display Filter" },
68 { 1, 1, "Capture Filter" },
69 { 2, 0xFFFFFFFF, "Display Filter" },
73 static dissector_table_t provider_id_table
;
75 /* Initialize the protocol and registered fields */
76 static int proto_netmon_header
;
77 static int proto_netmon_event
;
78 static int proto_netmon_filter
;
79 static int proto_netmon_network_info
;
80 static int proto_netmon_system_trace
;
81 static int proto_netmon_system_config
;
82 static int proto_netmon_process
;
84 static int hf_netmon_header_title_comment
;
85 static int hf_netmon_header_description_comment
;
87 static int hf_netmon_event_size
;
88 static int hf_netmon_event_header_type
;
89 static int hf_netmon_event_flags
;
90 static int hf_netmon_event_flags_extended_info
;
91 static int hf_netmon_event_flags_private_session
;
92 static int hf_netmon_event_flags_string_only
;
93 static int hf_netmon_event_flags_trace_message
;
94 static int hf_netmon_event_flags_no_cputime
;
95 static int hf_netmon_event_flags_32bit_header
;
96 static int hf_netmon_event_flags_64bit_header
;
97 static int hf_netmon_event_flags_classic_header
;
98 static int hf_netmon_event_event_property
;
99 static int hf_netmon_event_event_property_xml
;
100 static int hf_netmon_event_event_property_forwarded_xml
;
101 static int hf_netmon_event_event_property_legacy_eventlog
;
102 static int hf_netmon_event_thread_id
;
103 static int hf_netmon_event_process_id
;
104 static int hf_netmon_event_timestamp
;
105 static int hf_netmon_event_provider_id
;
106 static int hf_netmon_event_event_desc_id
;
107 static int hf_netmon_event_event_desc_version
;
108 static int hf_netmon_event_event_desc_channel
;
109 static int hf_netmon_event_event_desc_level
;
110 static int hf_netmon_event_event_desc_opcode
;
111 static int hf_netmon_event_event_desc_task
;
112 static int hf_netmon_event_event_desc_keyword
;
113 static int hf_netmon_event_kernel_time
;
114 static int hf_netmon_event_user_time
;
115 static int hf_netmon_event_processor_time
;
116 static int hf_netmon_event_activity_id
;
117 static int hf_netmon_event_processor_number
;
118 static int hf_netmon_event_alignment
;
119 static int hf_netmon_event_logger_id
;
120 static int hf_netmon_event_extended_data_count
;
121 static int hf_netmon_event_user_data_length
;
122 static int hf_netmon_event_reassembled
;
123 static int hf_netmon_event_extended_data_reserved
;
124 static int hf_netmon_event_extended_data_type
;
125 static int hf_netmon_event_extended_data_linkage
;
126 static int hf_netmon_event_extended_data_reserved2
;
127 static int hf_netmon_event_extended_data_size
;
128 static int hf_netmon_event_extended_data
;
129 static int hf_netmon_event_user_data
;
131 static int hf_netmon_filter_version
;
132 static int hf_netmon_filter_type
;
133 static int hf_netmon_filter_app_major_version
;
134 static int hf_netmon_filter_app_minor_version
;
135 static int hf_netmon_filter_app_name
;
136 static int hf_netmon_filter_filter
;
138 static int hf_netmon_network_info_version
;
139 static int hf_netmon_network_info_adapter_count
;
140 static int hf_netmon_network_info_computer_name
;
141 static int hf_netmon_network_info_friendly_name
;
142 static int hf_netmon_network_info_description
;
143 static int hf_netmon_network_info_miniport_guid
;
144 static int hf_netmon_network_info_media_type
;
145 static int hf_netmon_network_info_mtu
;
146 static int hf_netmon_network_info_link_speed
;
147 static int hf_netmon_network_info_mac_address
;
148 static int hf_netmon_network_info_ipv4_count
;
149 static int hf_netmon_network_info_ipv6_count
;
150 static int hf_netmon_network_info_gateway_count
;
151 static int hf_netmon_network_info_dhcp_server_count
;
152 static int hf_netmon_network_info_dns_ipv4_count
;
153 static int hf_netmon_network_info_dns_ipv6_count
;
154 static int hf_netmon_network_info_ipv4
;
155 static int hf_netmon_network_info_subnet
;
156 static int hf_netmon_network_info_ipv6
;
157 static int hf_netmon_network_info_gateway
;
158 static int hf_netmon_network_info_dhcp_server
;
159 static int hf_netmon_network_info_dns_ipv4
;
160 static int hf_netmon_network_info_dns_ipv6
;
162 static int hf_netmon_system_trace_buffer_size
;
163 static int hf_netmon_system_trace_version
;
164 static int hf_netmon_system_trace_provider_version
;
165 static int hf_netmon_system_trace_num_processors
;
166 static int hf_netmon_system_trace_end_time
;
167 static int hf_netmon_system_trace_timer_resolution
;
168 static int hf_netmon_system_trace_max_file_size
;
169 static int hf_netmon_system_trace_log_file_mode
;
170 static int hf_netmon_system_trace_buffers_written
;
171 static int hf_netmon_system_trace_start_buffers
;
172 static int hf_netmon_system_trace_pointers_size
;
173 static int hf_netmon_system_trace_events_lost
;
174 static int hf_netmon_system_trace_cpu_speed
;
175 static int hf_netmon_system_trace_logger_name
;
176 static int hf_netmon_system_trace_log_file_name_ptr
;
177 static int hf_netmon_system_trace_time_zone_info
;
178 static int hf_netmon_system_trace_boot_time
;
179 static int hf_netmon_system_trace_perf_freq
;
180 static int hf_netmon_system_trace_start_time
;
181 static int hf_netmon_system_trace_reserved_flags
;
182 static int hf_netmon_system_trace_buffers_lost
;
183 static int hf_netmon_system_trace_session_name
;
184 static int hf_netmon_system_trace_log_file_name
;
185 static int hf_netmon_system_trace_group_mask1
;
186 static int hf_netmon_system_trace_group_mask2
;
187 static int hf_netmon_system_trace_group_mask3
;
188 static int hf_netmon_system_trace_group_mask4
;
189 static int hf_netmon_system_trace_group_mask5
;
190 static int hf_netmon_system_trace_group_mask6
;
191 static int hf_netmon_system_trace_group_mask7
;
192 static int hf_netmon_system_trace_group_mask8
;
193 static int hf_netmon_system_trace_kernel_event_version
;
195 static int hf_netmon_system_config_mhz
;
196 static int hf_netmon_system_config_num_processors
;
197 static int hf_netmon_system_config_mem_size
;
198 static int hf_netmon_system_config_page_size
;
199 static int hf_netmon_system_config_allocation_granularity
;
200 static int hf_netmon_system_config_computer_name
;
201 static int hf_netmon_system_config_domain_name
;
202 static int hf_netmon_system_config_hyper_threading_flag
;
203 static int hf_netmon_system_config_disk_number
;
204 static int hf_netmon_system_config_bytes_per_sector
;
205 static int hf_netmon_system_config_sectors_per_track
;
206 static int hf_netmon_system_config_tracks_per_cylinder
;
207 static int hf_netmon_system_config_cylinders
;
208 static int hf_netmon_system_config_scsi_port
;
209 static int hf_netmon_system_config_scsi_path
;
210 static int hf_netmon_system_config_scsi_target
;
211 static int hf_netmon_system_config_scsi_lun
;
212 static int hf_netmon_system_config_manufacturer
;
213 static int hf_netmon_system_config_partition_count
;
214 static int hf_netmon_system_config_write_cache_enabled
;
215 static int hf_netmon_system_config_pad
;
216 static int hf_netmon_system_config_boot_drive_letter
;
217 static int hf_netmon_system_config_spare
;
218 static int hf_netmon_system_config_start_offset
;
219 static int hf_netmon_system_config_partition_size
;
220 static int hf_netmon_system_config_size
;
221 static int hf_netmon_system_config_drive_type
;
222 static int hf_netmon_system_config_drive_letter
;
223 static int hf_netmon_system_config_partition_number
;
224 static int hf_netmon_system_config_sectors_per_cluster
;
225 static int hf_netmon_system_config_num_free_clusters
;
226 static int hf_netmon_system_config_total_num_clusters
;
227 static int hf_netmon_system_config_file_system
;
228 static int hf_netmon_system_config_volume_ext
;
229 static int hf_netmon_system_config_physical_addr
;
230 static int hf_netmon_system_config_physical_addr_len
;
231 static int hf_netmon_system_config_ipv4_index
;
232 static int hf_netmon_system_config_ipv6_index
;
233 static int hf_netmon_system_config_nic_description
;
234 static int hf_netmon_system_config_ipaddresses
;
235 static int hf_netmon_system_config_dns_server_addresses
;
236 static int hf_netmon_system_config_memory_size
;
237 static int hf_netmon_system_config_x_resolution
;
238 static int hf_netmon_system_config_y_resolution
;
239 static int hf_netmon_system_config_bits_per_pixel
;
240 static int hf_netmon_system_config_vrefresh
;
241 static int hf_netmon_system_config_chip_type
;
242 static int hf_netmon_system_config_dac_type
;
243 static int hf_netmon_system_config_adapter_string
;
244 static int hf_netmon_system_config_bios_string
;
245 static int hf_netmon_system_config_device_id
;
246 static int hf_netmon_system_config_state_flags
;
247 static int hf_netmon_system_config_process_id
;
248 static int hf_netmon_system_config_service_state
;
249 static int hf_netmon_system_config_sub_process_tag
;
250 static int hf_netmon_system_config_service_name
;
251 static int hf_netmon_system_config_display_name
;
252 static int hf_netmon_system_config_process_name
;
253 static int hf_netmon_system_config_s1
;
254 static int hf_netmon_system_config_s2
;
255 static int hf_netmon_system_config_s3
;
256 static int hf_netmon_system_config_s4
;
257 static int hf_netmon_system_config_s5
;
258 static int hf_netmon_system_config_tcb_table_partitions
;
259 static int hf_netmon_system_config_max_hash_table_size
;
260 static int hf_netmon_system_config_max_user_port
;
261 static int hf_netmon_system_config_tcp_timed_wait_delay
;
262 static int hf_netmon_system_config_irq_affinity
;
263 static int hf_netmon_system_config_irq_num
;
264 static int hf_netmon_system_config_device_desc_len
;
265 static int hf_netmon_system_config_device_desc
;
266 static int hf_netmon_system_config_device_id_len
;
267 static int hf_netmon_system_config_friendly_name_len
;
268 static int hf_netmon_system_config_friendly_name
;
269 static int hf_netmon_system_config_target_id
;
270 static int hf_netmon_system_config_device_type
;
271 static int hf_netmon_system_config_device_timing_mode
;
272 static int hf_netmon_system_config_location_information_len
;
273 static int hf_netmon_system_config_location_information
;
274 static int hf_netmon_system_config_system_manufacturer
;
275 static int hf_netmon_system_config_system_product_name
;
276 static int hf_netmon_system_config_bios_date
;
277 static int hf_netmon_system_config_bios_version
;
278 static int hf_netmon_system_config_load_order_group
;
279 static int hf_netmon_system_config_svc_host_group
;
280 static int hf_netmon_system_config_irq_group
;
281 static int hf_netmon_system_config_pdo_name
;
282 static int hf_netmon_system_config_nic_name
;
283 static int hf_netmon_system_config_index
;
284 static int hf_netmon_system_config_physical_addr_str
;
285 static int hf_netmon_system_config_ip_address
;
286 static int hf_netmon_system_config_subnet_mask
;
287 static int hf_netmon_system_config_dhcp_server
;
288 static int hf_netmon_system_config_gateway
;
289 static int hf_netmon_system_config_primary_wins_server
;
290 static int hf_netmon_system_config_secondary_wins_server
;
291 static int hf_netmon_system_config_dns_server1
;
292 static int hf_netmon_system_config_dns_server2
;
293 static int hf_netmon_system_config_dns_server3
;
294 static int hf_netmon_system_config_dns_server4
;
295 static int hf_netmon_system_config_data
;
299 static int hf_netmon_process_unique_process_key
;
300 static int hf_netmon_process_process_id
;
301 static int hf_netmon_process_parent_id
;
302 static int hf_netmon_process_session_id
;
303 static int hf_netmon_process_exit_status
;
304 static int hf_netmon_process_directory_table_base
;
305 static int hf_netmon_process_unknown
;
306 static int hf_netmon_process_user_sid_revision
;
307 static int hf_netmon_process_user_sid_subauth_count
;
308 static int hf_netmon_process_user_sid_id
;
309 static int hf_netmon_process_user_sid_authority
;
310 static int hf_netmon_process_image_file_name
;
311 static int hf_netmon_process_command_line
;
312 static int hf_netmon_process_page_directory_base
;
313 static int hf_netmon_process_page_fault_count
;
314 static int hf_netmon_process_handle_count
;
315 static int hf_netmon_process_reserved
;
316 static int hf_netmon_process_peak_virtual_size
;
317 static int hf_netmon_process_peak_working_set_size
;
318 static int hf_netmon_process_peak_page_file_usage
;
319 static int hf_netmon_process_quota_peak_paged_pool_usage
;
320 static int hf_netmon_process_quota_peak_non_paged_pool_usage
;
321 static int hf_netmon_process_virtual_size
;
322 static int hf_netmon_process_workingset_size
;
323 static int hf_netmon_process_pagefile_usage
;
324 static int hf_netmon_process_quota_paged_pool_usage
;
325 static int hf_netmon_process_quota_non_paged_pool_usage
;
326 static int hf_netmon_process_private_page_count
;
327 static int hf_netmon_process_directory_table_base32
;
330 static int ett_netmon_header
;
331 static int ett_netmon_event
;
332 static int ett_netmon_event_desc
;
333 static int ett_netmon_event_flags
;
334 static int ett_netmon_event_property
;
335 static int ett_netmon_event_extended_data
;
336 static int ett_netmon_filter
;
337 static int ett_netmon_network_info
;
338 static int ett_netmon_network_info_list
;
339 static int ett_netmon_network_info_adapter
;
340 static int ett_netmon_system_trace
;
341 static int ett_netmon_event_buffer_context
;
342 static int ett_netmon_process
;
343 static int ett_netmon_sid
;
344 static int ett_netmon_system_config
;
346 static expert_field ei_netmon_process_user_sid
;
348 static dissector_table_t wtap_encap_table
;
351 netmon_etl_field(proto_tree
*tree
, tvbuff_t
*tvb
, int* offset
, int hf
, uint16_t flags
)
353 if (flags
& EVENT_HEADER_FLAG_64_BIT_HEADER
) {
354 /* XXX - This seems to be how values are displayed in Network Monitor */
355 uint64_t value
= tvb_get_letoh64(tvb
, *offset
) & 0xFFFFFFFF;
356 proto_tree_add_uint64(tree
, hf
, tvb
, *offset
, 8, value
);
359 proto_tree_add_item(tree
, hf
, tvb
, *offset
, 4, ENC_LITTLE_ENDIAN
);
365 netmon_sid_field(proto_tree
*tree
, tvbuff_t
*tvb
, int* offset
, packet_info
*pinfo
,
366 int hf_revision
, int hf_subauthority_count
, int hf_sid_id
, int hf_sid_authority
, expert_field
* invalid_sid
, bool conformant _U_
)
368 proto_item
*ti
, *sid_item
;
369 proto_tree
*sid_tree
;
370 int start_offset
= *offset
;
371 uint32_t i
, revision
, count
;
373 sid_tree
= proto_tree_add_subtree(tree
, tvb
, *offset
, 2, ett_netmon_sid
, &sid_item
, "SID");
375 ti
= proto_tree_add_item_ret_uint(sid_tree
, hf_revision
, tvb
, *offset
, 1, ENC_LITTLE_ENDIAN
, &revision
);
379 expert_add_info(pinfo
, ti
, invalid_sid
);
381 proto_tree_add_item_ret_uint(sid_tree
, hf_subauthority_count
, tvb
, *offset
, 1, ENC_LITTLE_ENDIAN
, &count
);
385 expert_add_info(pinfo
, ti
, invalid_sid
);
388 proto_tree_add_item(sid_tree
, hf_sid_id
, tvb
, *offset
, 6, ENC_NA
);
391 for (i
= 0; i
< count
; i
++)
393 proto_tree_add_item(sid_tree
, hf_sid_authority
, tvb
, *offset
, 4, ENC_LITTLE_ENDIAN
);
397 proto_item_set_len(sid_item
, (*offset
)-start_offset
);
400 /* Code to actually dissect the packets */
402 dissect_netmon_header(tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*tree
, void* data _U_
)
405 proto_tree
*header_tree
;
406 union wtap_pseudo_header temp_header
;
409 ti
= proto_tree_add_item(tree
, proto_netmon_header
, tvb
, 0, 0, ENC_NA
);
410 header_tree
= proto_item_add_subtree(ti
, ett_netmon_header
);
412 if (pinfo
->pseudo_header
->netmon
.title
!= NULL
) {
413 ti
= proto_tree_add_string(header_tree
, hf_netmon_header_title_comment
, tvb
, 0, 0, pinfo
->pseudo_header
->netmon
.title
);
414 proto_item_set_generated(ti
);
417 if (pinfo
->pseudo_header
->netmon
.description
!= NULL
) {
418 /* Description comment is only ASCII. However, it's
422 /* Ensure string termination */
423 comment
= wmem_strndup(pinfo
->pool
, pinfo
->pseudo_header
->netmon
.description
, pinfo
->pseudo_header
->netmon
.descLength
);
425 ti
= proto_tree_add_string(header_tree
, hf_netmon_header_description_comment
, tvb
, 0, 0, comment
);
426 proto_item_set_generated(ti
);
429 /* Save the pseudo header data to a temp variable before it's copied to
432 switch (pinfo
->pseudo_header
->netmon
.sub_encap
)
434 case WTAP_ENCAP_ATM_PDUS
:
435 memcpy(&temp_header
.atm
, &pinfo
->pseudo_header
->netmon
.subheader
.atm
, sizeof(temp_header
.atm
));
436 memcpy(&pinfo
->pseudo_header
->atm
, &temp_header
.atm
, sizeof(temp_header
.atm
));
438 case WTAP_ENCAP_ETHERNET
:
439 memcpy(&temp_header
.eth
, &pinfo
->pseudo_header
->netmon
.subheader
.eth
, sizeof(temp_header
.eth
));
440 memcpy(&pinfo
->pseudo_header
->eth
, &temp_header
.eth
, sizeof(temp_header
.eth
));
442 case WTAP_ENCAP_IEEE_802_11_NETMON
:
443 memcpy(&temp_header
.ieee_802_11
, &pinfo
->pseudo_header
->netmon
.subheader
.ieee_802_11
, sizeof(temp_header
.ieee_802_11
));
444 memcpy(&pinfo
->pseudo_header
->ieee_802_11
, &temp_header
.ieee_802_11
, sizeof(temp_header
.ieee_802_11
));
448 if (!dissector_try_uint_with_data(wtap_encap_table
,
449 pinfo
->pseudo_header
->netmon
.sub_encap
, tvb
, pinfo
, tree
, true,
450 (void *)pinfo
->pseudo_header
)) {
451 call_data_dissector(tvb
, pinfo
, tree
);
454 return tvb_captured_length(tvb
);
458 dissect_netmon_event(tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*tree
, void* data _U_
)
460 proto_item
*ti
, *extended_data_item
;
461 proto_tree
*event_tree
, *event_desc_tree
, *extended_data_tree
, *buffer_context_tree
;
462 int offset
= 0, extended_data_count_offset
;
463 uint32_t i
, thread_id
, process_id
, extended_data_count
, extended_data_size
, user_data_size
;
465 tvbuff_t
*provider_id_tvb
;
466 guid_key provider_guid
;
469 struct netmon_provider_id_data provider_id_data
;
470 static int * const event_flags
[] = {
471 &hf_netmon_event_flags_extended_info
,
472 &hf_netmon_event_flags_private_session
,
473 &hf_netmon_event_flags_string_only
,
474 &hf_netmon_event_flags_trace_message
,
475 &hf_netmon_event_flags_no_cputime
,
476 &hf_netmon_event_flags_32bit_header
,
477 &hf_netmon_event_flags_64bit_header
,
478 &hf_netmon_event_flags_classic_header
,
481 static int * const event_property
[] = {
482 &hf_netmon_event_event_property_xml
,
483 &hf_netmon_event_event_property_forwarded_xml
,
484 &hf_netmon_event_event_property_legacy_eventlog
,
488 col_set_str(pinfo
->cinfo
, COL_PROTOCOL
, "NetMon Event");
489 /* Clear out stuff in the info column */
490 col_clear(pinfo
->cinfo
, COL_INFO
);
492 memset(&provider_id_data
, 0, sizeof(provider_id_data
));
494 is_etl
= pinfo
->rec
->rec_header
.packet_header
.pkt_encap
== WTAP_ENCAP_ETL
;
495 ti
= proto_tree_add_item(tree
, proto_netmon_event
, tvb
, offset
, -1, ENC_NA
);
496 event_tree
= proto_item_add_subtree(ti
, ett_netmon_event
);
499 proto_tree_add_item_ret_uint(event_tree
, hf_netmon_event_size
, tvb
, offset
, 2, ENC_LITTLE_ENDIAN
, &event_size
);
501 proto_tree_add_item(event_tree
, hf_netmon_event_header_type
, tvb
, offset
, 2, ENC_LITTLE_ENDIAN
);
503 provider_id_data
.event_flags
= tvb_get_letohs(tvb
, offset
);
504 proto_tree_add_bitmask(event_tree
, tvb
, offset
, hf_netmon_event_flags
, ett_netmon_event_flags
, event_flags
, ENC_LITTLE_ENDIAN
);
506 proto_tree_add_bitmask(event_tree
, tvb
, offset
, hf_netmon_event_event_property
, ett_netmon_event_property
, event_property
, ENC_LITTLE_ENDIAN
);
508 proto_tree_add_item_ret_uint(event_tree
, hf_netmon_event_thread_id
, tvb
, offset
, 4, ENC_LITTLE_ENDIAN
, &thread_id
);
510 proto_tree_add_item_ret_uint(event_tree
, hf_netmon_event_process_id
, tvb
, offset
, 4, ENC_LITTLE_ENDIAN
, &process_id
);
515 filetime_to_nstime(×tamp
, tvb_get_letoh64(tvb
, offset
));
516 proto_tree_add_time(event_tree
, hf_netmon_event_timestamp
, tvb
, offset
, 8, ×tamp
);
519 proto_tree_add_item(event_tree
, hf_netmon_event_provider_id
, tvb
, offset
, 16, ENC_LITTLE_ENDIAN
);
520 /* Save the GUID to use in dissector table */
522 tvb_get_letohguid(tvb
, offset
, &provider_guid
.guid
);
524 tvb_memcpy(tvb
, &provider_guid
.guid
, offset
, 16);
526 provider_guid
.ver
= 0; //version field not used
529 col_add_fstr(pinfo
->cinfo
, COL_INFO
, "Thread ID: %d, Process ID: %d, Provider ID: %s",
530 thread_id
, process_id
, guid_to_str(pinfo
->pool
, &provider_guid
.guid
));
532 event_desc_tree
= proto_tree_add_subtree(event_tree
, tvb
, offset
, 16, ett_netmon_event_desc
, NULL
, "Event Descriptor");
533 proto_tree_add_item_ret_uint(event_desc_tree
, hf_netmon_event_event_desc_id
, tvb
, offset
, 2, ENC_LITTLE_ENDIAN
, &provider_id_data
.event_id
);
535 provider_id_data
.event_version
= tvb_get_uint8(tvb
, offset
);
536 proto_tree_add_item(event_desc_tree
, hf_netmon_event_event_desc_version
, tvb
, offset
, 1, ENC_LITTLE_ENDIAN
);
538 proto_tree_add_item(event_desc_tree
, hf_netmon_event_event_desc_channel
, tvb
, offset
, 1, ENC_LITTLE_ENDIAN
);
540 proto_tree_add_item(event_desc_tree
, hf_netmon_event_event_desc_level
, tvb
, offset
, 1, ENC_LITTLE_ENDIAN
);
542 provider_id_data
.opcode
= tvb_get_uint8(tvb
, offset
);
543 proto_tree_add_item(event_desc_tree
, hf_netmon_event_event_desc_opcode
, tvb
, offset
, 1, ENC_LITTLE_ENDIAN
);
545 proto_tree_add_item(event_desc_tree
, hf_netmon_event_event_desc_task
, tvb
, offset
, 2, ENC_LITTLE_ENDIAN
);
547 proto_tree_add_item_ret_uint64(event_desc_tree
, hf_netmon_event_event_desc_keyword
, tvb
, offset
, 8, ENC_LITTLE_ENDIAN
, &provider_id_data
.keyword
);
550 if (provider_id_data
.event_flags
& (EVENT_HEADER_FLAG_PRIVATE_SESSION
| EVENT_HEADER_FLAG_NO_CPUTIME
))
552 /* Kernel and User time are a union with processor time */
553 proto_tree_add_item(event_tree
, hf_netmon_event_kernel_time
, tvb
, offset
, 4, ENC_LITTLE_ENDIAN
);
555 proto_tree_add_item(event_tree
, hf_netmon_event_user_time
, tvb
, offset
, 4, ENC_LITTLE_ENDIAN
);
560 proto_tree_add_item(event_tree
, hf_netmon_event_processor_time
, tvb
, offset
, 8, ENC_LITTLE_ENDIAN
);
564 proto_tree_add_item(event_tree
, hf_netmon_event_activity_id
, tvb
, offset
, 16, ENC_LITTLE_ENDIAN
);
568 user_data_size
= event_size
- offset
;
570 buffer_context_tree
= proto_tree_add_subtree(event_tree
, tvb
, offset
, 4, ett_netmon_event_buffer_context
, NULL
, "BufferContext");
571 proto_tree_add_item(buffer_context_tree
, hf_netmon_event_processor_number
, tvb
, offset
, 1, ENC_LITTLE_ENDIAN
);
573 proto_tree_add_item(buffer_context_tree
, hf_netmon_event_alignment
, tvb
, offset
, 1, ENC_LITTLE_ENDIAN
);
575 proto_tree_add_item(buffer_context_tree
, hf_netmon_event_logger_id
, tvb
, offset
, 2, ENC_LITTLE_ENDIAN
);
578 proto_tree_add_item_ret_uint(event_tree
, hf_netmon_event_extended_data_count
, tvb
, offset
, 2, ENC_LITTLE_ENDIAN
, &extended_data_count
);
580 proto_tree_add_item_ret_uint(event_tree
, hf_netmon_event_user_data_length
, tvb
, offset
, 2, ENC_LITTLE_ENDIAN
, &user_data_size
);
582 proto_tree_add_item(event_tree
, hf_netmon_event_reassembled
, tvb
, offset
, 1, ENC_LITTLE_ENDIAN
);
585 for (i
= 1; i
<= extended_data_count
; i
++)
587 extended_data_count_offset
= offset
;
588 extended_data_tree
= proto_tree_add_subtree_format(event_tree
, tvb
, offset
, 4, ett_netmon_event_extended_data
, &extended_data_item
, "Extended Data Item #%d", i
);
589 proto_tree_add_item(extended_data_tree
, hf_netmon_event_extended_data_reserved
, tvb
, offset
, 2, ENC_LITTLE_ENDIAN
);
591 proto_tree_add_item(extended_data_tree
, hf_netmon_event_extended_data_type
, tvb
, offset
, 2, ENC_LITTLE_ENDIAN
);
593 proto_tree_add_item(extended_data_tree
, hf_netmon_event_extended_data_linkage
, tvb
, offset
, 2, ENC_LITTLE_ENDIAN
);
594 proto_tree_add_item(extended_data_tree
, hf_netmon_event_extended_data_reserved2
, tvb
, offset
, 2, ENC_LITTLE_ENDIAN
);
596 proto_tree_add_item_ret_uint(extended_data_tree
, hf_netmon_event_extended_data_size
, tvb
, offset
, 2, ENC_LITTLE_ENDIAN
, &extended_data_size
);
598 proto_tree_add_item(extended_data_tree
, hf_netmon_event_extended_data
, tvb
, offset
, extended_data_size
, ENC_NA
);
599 offset
+= extended_data_size
;
600 proto_item_set_len(extended_data_item
, offset
-extended_data_count_offset
);
603 provider_id_tvb
= tvb_new_subset_remaining(tvb
, offset
);
604 if (!dissector_try_guid_with_data(provider_id_table
, &provider_guid
, provider_id_tvb
, pinfo
, tree
, true, &provider_id_data
))
606 proto_tree_add_item(event_tree
, hf_netmon_event_user_data
, tvb
, offset
, user_data_size
, ENC_NA
);
607 offset
+= user_data_size
;
609 proto_item_set_len(ti
, offset
);
610 return tvb_captured_length(tvb
);
615 dissect_netmon_filter(tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*tree
, void* data _U_
)
618 proto_tree
*filter_tree
;
621 const uint8_t* filter
;
623 col_set_str(pinfo
->cinfo
, COL_PROTOCOL
, "NetMon Filter");
624 /* Clear out stuff in the info column */
625 col_clear(pinfo
->cinfo
, COL_INFO
);
627 ti
= proto_tree_add_item(tree
, proto_netmon_filter
, tvb
, offset
, -1, ENC_NA
);
628 filter_tree
= proto_item_add_subtree(ti
, ett_netmon_filter
);
630 proto_tree_add_item(filter_tree
, hf_netmon_filter_version
, tvb
, offset
, 2, ENC_BIG_ENDIAN
);
632 proto_tree_add_item(filter_tree
, hf_netmon_filter_type
, tvb
, offset
, 4, ENC_BIG_ENDIAN
);
634 proto_tree_add_item(filter_tree
, hf_netmon_filter_app_major_version
, tvb
, offset
, 4, ENC_BIG_ENDIAN
);
636 proto_tree_add_item(filter_tree
, hf_netmon_filter_app_minor_version
, tvb
, offset
, 4, ENC_BIG_ENDIAN
);
638 length
= tvb_unicode_strsize(tvb
, offset
);
639 proto_tree_add_item(filter_tree
, hf_netmon_filter_app_name
, tvb
, offset
, length
, ENC_LITTLE_ENDIAN
|ENC_UTF_16
);
641 length
= tvb_unicode_strsize(tvb
, offset
);
642 proto_tree_add_item_ret_string(filter_tree
, hf_netmon_filter_filter
, tvb
, offset
, length
, ENC_LITTLE_ENDIAN
|ENC_UTF_16
,
643 pinfo
->pool
, &filter
);
644 col_add_fstr(pinfo
->cinfo
, COL_INFO
, "Filter: %s", filter
);
646 return tvb_captured_length(tvb
);
651 dissect_netmon_network_info(tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*tree
, void* data _U_
)
653 proto_item
*ti
, *list_item
, *adapter_item
;
654 proto_tree
*network_info_tree
, *list_tree
, *adapter_tree
;
655 int offset
= 0, list_start_offset
, adapter_start_offset
;
656 unsigned adapter
, adapter_count
, length
;
659 col_set_str(pinfo
->cinfo
, COL_PROTOCOL
, "NetMon Network Info");
660 /* Clear out stuff in the info column */
661 col_clear(pinfo
->cinfo
, COL_INFO
);
663 ti
= proto_tree_add_item(tree
, proto_netmon_network_info
, tvb
, offset
, -1, ENC_NA
);
664 network_info_tree
= proto_item_add_subtree(ti
, ett_netmon_network_info
);
666 proto_tree_add_item(network_info_tree
, hf_netmon_network_info_version
, tvb
, offset
, 2, ENC_BIG_ENDIAN
);
669 proto_tree_add_item_ret_uint(network_info_tree
, hf_netmon_network_info_adapter_count
, tvb
, offset
, 2, ENC_BIG_ENDIAN
, &adapter_count
);
671 col_add_fstr(pinfo
->cinfo
, COL_INFO
, "Adapter count: %d", adapter_count
);
673 length
= tvb_unicode_strsize(tvb
, offset
);
674 proto_tree_add_item(network_info_tree
, hf_netmon_network_info_computer_name
, tvb
, offset
, length
, ENC_LITTLE_ENDIAN
|ENC_UTF_16
);
676 if (adapter_count
> 0)
678 list_start_offset
= offset
;
679 list_tree
= proto_tree_add_subtree(network_info_tree
, tvb
, offset
, 1, ett_netmon_network_info_list
, &list_item
, "NetworkInfo");
680 for (adapter
= 1; adapter
<= adapter_count
; adapter
++)
682 uint32_t loop
, ipv4_count
, ipv6_count
, gateway_count
, dhcp_server_count
, dns_ipv4_count
, dns_ipv6_count
;
684 adapter_start_offset
= offset
;
685 adapter_tree
= proto_tree_add_subtree_format(list_tree
, tvb
, offset
, 1, ett_netmon_network_info_adapter
, &adapter_item
, "Adapter #%d", adapter
);
687 length
= tvb_unicode_strsize(tvb
, offset
);
688 proto_tree_add_item(adapter_tree
, hf_netmon_network_info_friendly_name
, tvb
, offset
, length
, ENC_LITTLE_ENDIAN
|ENC_UTF_16
);
690 length
= tvb_unicode_strsize(tvb
, offset
);
691 proto_tree_add_item(adapter_tree
, hf_netmon_network_info_description
, tvb
, offset
, length
, ENC_LITTLE_ENDIAN
|ENC_UTF_16
);
693 length
= tvb_unicode_strsize(tvb
, offset
);
694 proto_tree_add_item(adapter_tree
, hf_netmon_network_info_miniport_guid
, tvb
, offset
, length
, ENC_LITTLE_ENDIAN
|ENC_UTF_16
);
696 proto_tree_add_item(adapter_tree
, hf_netmon_network_info_media_type
, tvb
, offset
, 4, ENC_BIG_ENDIAN
);
698 proto_tree_add_item(adapter_tree
, hf_netmon_network_info_mtu
, tvb
, offset
, 4, ENC_BIG_ENDIAN
);
700 link_speed
= tvb_get_ntoh64(tvb
, offset
);
701 if (link_speed
== 0xFFFFFFFFFFFFFFFF)
703 proto_tree_add_uint64_format_value(adapter_tree
, hf_netmon_network_info_link_speed
, tvb
, offset
, 8, link_speed
, "(Unknown)");
705 else if (link_speed
>= 1000 * 1000 * 1000)
707 proto_tree_add_uint64_format_value(adapter_tree
, hf_netmon_network_info_link_speed
, tvb
, offset
, 8, link_speed
, "%" PRIu64
" Gbps", link_speed
/(1000*1000*1000));
709 else if (link_speed
>= 1000 * 1000)
711 proto_tree_add_uint64_format_value(adapter_tree
, hf_netmon_network_info_link_speed
, tvb
, offset
, 8, link_speed
, "%" PRIu64
" Mbps", link_speed
/(1000*1000));
713 else if (link_speed
>= 1000)
715 proto_tree_add_uint64_format_value(adapter_tree
, hf_netmon_network_info_link_speed
, tvb
, offset
, 8, link_speed
, "%" PRIu64
" Kbps", link_speed
/1000);
719 proto_tree_add_uint64_format_value(adapter_tree
, hf_netmon_network_info_link_speed
, tvb
, offset
, 8, link_speed
, "%" PRIu64
" bps", link_speed
);
722 proto_tree_add_item(adapter_tree
, hf_netmon_network_info_mac_address
, tvb
, offset
, 6, ENC_NA
);
725 proto_tree_add_item_ret_uint(adapter_tree
, hf_netmon_network_info_ipv4_count
, tvb
, offset
, 2, ENC_BIG_ENDIAN
, &ipv4_count
);
727 proto_tree_add_item_ret_uint(adapter_tree
, hf_netmon_network_info_ipv6_count
, tvb
, offset
, 2, ENC_BIG_ENDIAN
, &ipv6_count
);
729 proto_tree_add_item_ret_uint(adapter_tree
, hf_netmon_network_info_gateway_count
, tvb
, offset
, 2, ENC_BIG_ENDIAN
, &gateway_count
);
731 proto_tree_add_item_ret_uint(adapter_tree
, hf_netmon_network_info_dhcp_server_count
, tvb
, offset
, 2, ENC_BIG_ENDIAN
, &dhcp_server_count
);
733 proto_tree_add_item_ret_uint(adapter_tree
, hf_netmon_network_info_dns_ipv4_count
, tvb
, offset
, 2, ENC_BIG_ENDIAN
, &dns_ipv4_count
);
735 proto_tree_add_item_ret_uint(adapter_tree
, hf_netmon_network_info_dns_ipv6_count
, tvb
, offset
, 2, ENC_BIG_ENDIAN
, &dns_ipv6_count
);
738 for (loop
= 0; loop
< ipv4_count
; loop
++)
740 proto_tree_add_item(adapter_tree
, hf_netmon_network_info_ipv4
, tvb
, offset
, 4, ENC_BIG_ENDIAN
);
743 for (loop
= 0; loop
< ipv4_count
; loop
++)
745 proto_tree_add_item(adapter_tree
, hf_netmon_network_info_subnet
, tvb
, offset
, 4, ENC_BIG_ENDIAN
);
748 for (loop
= 0; loop
< ipv6_count
; loop
++)
750 proto_tree_add_item(adapter_tree
, hf_netmon_network_info_ipv6
, tvb
, offset
, 16, ENC_NA
);
753 for (loop
= 0; loop
< gateway_count
; loop
++)
755 proto_tree_add_item(adapter_tree
, hf_netmon_network_info_gateway
, tvb
, offset
, 4, ENC_BIG_ENDIAN
);
758 for (loop
= 0; loop
< dhcp_server_count
; loop
++)
760 proto_tree_add_item(adapter_tree
, hf_netmon_network_info_dhcp_server
, tvb
, offset
, 4, ENC_BIG_ENDIAN
);
763 for (loop
= 0; loop
< dns_ipv4_count
; loop
++)
765 proto_tree_add_item(adapter_tree
, hf_netmon_network_info_dns_ipv4
, tvb
, offset
, 4, ENC_BIG_ENDIAN
);
768 for (loop
= 0; loop
< dns_ipv6_count
; loop
++)
770 proto_tree_add_item(adapter_tree
, hf_netmon_network_info_dns_ipv6
, tvb
, offset
, 16, ENC_NA
);
774 proto_item_set_len(adapter_item
, offset
-adapter_start_offset
);
777 proto_item_set_len(list_item
, offset
-list_start_offset
);
780 return tvb_captured_length(tvb
);
784 dissect_netmon_system_trace(tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*tree
, void* data _U_
)
787 proto_tree
*system_tree
;
789 struct netmon_provider_id_data
*provider_id_data
= (struct netmon_provider_id_data
*)data
;
792 uint64_t raw_timestamp
;
794 DISSECTOR_ASSERT(provider_id_data
!= NULL
);
796 col_set_str(pinfo
->cinfo
, COL_PROTOCOL
, "NetMon System Trace");
797 col_clear(pinfo
->cinfo
, COL_INFO
);
799 ti
= proto_tree_add_item(tree
, proto_netmon_system_trace
, tvb
, 0, -1, ENC_NA
);
800 system_tree
= proto_item_add_subtree(ti
, ett_netmon_system_trace
);
802 switch (provider_id_data
->opcode
)
805 proto_tree_add_item(system_tree
, hf_netmon_system_trace_buffer_size
, tvb
, offset
, 4, ENC_LITTLE_ENDIAN
);
807 proto_tree_add_item(system_tree
, hf_netmon_system_trace_version
, tvb
, offset
, 4, ENC_LITTLE_ENDIAN
);
809 proto_tree_add_item(system_tree
, hf_netmon_system_trace_provider_version
, tvb
, offset
, 4, ENC_LITTLE_ENDIAN
);
811 proto_tree_add_item(system_tree
, hf_netmon_system_trace_num_processors
, tvb
, offset
, 4, ENC_LITTLE_ENDIAN
);
814 raw_timestamp
= tvb_get_letoh64(tvb
, offset
);
815 if (raw_timestamp
!= 0)
819 filetime_to_nstime(×tamp
, raw_timestamp
);
820 proto_tree_add_time(system_tree
, hf_netmon_system_trace_end_time
, tvb
, offset
, 8, ×tamp
);
824 proto_tree_add_time_format_value(system_tree
, hf_netmon_system_trace_end_time
, tvb
, offset
, 8, ×tamp
, "(None)");
828 proto_tree_add_item(system_tree
, hf_netmon_system_trace_timer_resolution
, tvb
, offset
, 4, ENC_LITTLE_ENDIAN
);
830 proto_tree_add_item(system_tree
, hf_netmon_system_trace_max_file_size
, tvb
, offset
, 4, ENC_LITTLE_ENDIAN
);
832 proto_tree_add_item(system_tree
, hf_netmon_system_trace_log_file_mode
, tvb
, offset
, 4, ENC_LITTLE_ENDIAN
);
834 proto_tree_add_item(system_tree
, hf_netmon_system_trace_buffers_written
, tvb
, offset
, 4, ENC_LITTLE_ENDIAN
);
836 proto_tree_add_item(system_tree
, hf_netmon_system_trace_start_buffers
, tvb
, offset
, 4, ENC_LITTLE_ENDIAN
);
838 proto_tree_add_item(system_tree
, hf_netmon_system_trace_pointers_size
, tvb
, offset
, 4, ENC_LITTLE_ENDIAN
);
840 proto_tree_add_item(system_tree
, hf_netmon_system_trace_events_lost
, tvb
, offset
, 4, ENC_LITTLE_ENDIAN
);
842 proto_tree_add_item(system_tree
, hf_netmon_system_trace_cpu_speed
, tvb
, offset
, 4, ENC_LITTLE_ENDIAN
);
844 netmon_etl_field(system_tree
, tvb
, &offset
, hf_netmon_system_trace_logger_name
, provider_id_data
->event_flags
);
845 netmon_etl_field(system_tree
, tvb
, &offset
, hf_netmon_system_trace_log_file_name_ptr
, provider_id_data
->event_flags
);
846 proto_tree_add_item(system_tree
, hf_netmon_system_trace_time_zone_info
, tvb
, offset
, 176, ENC_NA
);
851 filetime_to_nstime(×tamp
, tvb_get_letoh64(tvb
, offset
));
852 proto_tree_add_time(system_tree
, hf_netmon_system_trace_boot_time
, tvb
, offset
, 8, ×tamp
);
855 proto_tree_add_item(system_tree
, hf_netmon_system_trace_perf_freq
, tvb
, offset
, 8, ENC_LITTLE_ENDIAN
);
860 filetime_to_nstime(×tamp
, tvb_get_letoh64(tvb
, offset
));
861 proto_tree_add_time(system_tree
, hf_netmon_system_trace_start_time
, tvb
, offset
, 8, ×tamp
);
864 proto_tree_add_item(system_tree
, hf_netmon_system_trace_reserved_flags
, tvb
, offset
, 4, ENC_LITTLE_ENDIAN
);
866 proto_tree_add_item(system_tree
, hf_netmon_system_trace_buffers_lost
, tvb
, offset
, 4, ENC_LITTLE_ENDIAN
);
868 length
= tvb_unicode_strsize(tvb
, offset
);
869 proto_tree_add_item(system_tree
, hf_netmon_system_trace_session_name
, tvb
, offset
, length
, ENC_LITTLE_ENDIAN
|ENC_UTF_16
);
871 length
= tvb_unicode_strsize(tvb
, offset
);
872 proto_tree_add_item(system_tree
, hf_netmon_system_trace_log_file_name
, tvb
, offset
, length
, ENC_LITTLE_ENDIAN
|ENC_UTF_16
);
876 proto_tree_add_item(system_tree
, hf_netmon_system_trace_group_mask1
, tvb
, offset
, 4, ENC_LITTLE_ENDIAN
);
878 proto_tree_add_item(system_tree
, hf_netmon_system_trace_group_mask2
, tvb
, offset
, 4, ENC_LITTLE_ENDIAN
);
880 proto_tree_add_item(system_tree
, hf_netmon_system_trace_group_mask3
, tvb
, offset
, 4, ENC_LITTLE_ENDIAN
);
882 proto_tree_add_item(system_tree
, hf_netmon_system_trace_group_mask4
, tvb
, offset
, 4, ENC_LITTLE_ENDIAN
);
884 proto_tree_add_item(system_tree
, hf_netmon_system_trace_group_mask5
, tvb
, offset
, 4, ENC_LITTLE_ENDIAN
);
886 proto_tree_add_item(system_tree
, hf_netmon_system_trace_group_mask6
, tvb
, offset
, 4, ENC_LITTLE_ENDIAN
);
888 proto_tree_add_item(system_tree
, hf_netmon_system_trace_group_mask7
, tvb
, offset
, 4, ENC_LITTLE_ENDIAN
);
890 proto_tree_add_item(system_tree
, hf_netmon_system_trace_group_mask8
, tvb
, offset
, 4, ENC_LITTLE_ENDIAN
);
892 proto_tree_add_item(system_tree
, hf_netmon_system_trace_kernel_event_version
, tvb
, offset
, 4, ENC_LITTLE_ENDIAN
);
895 case 8: // EventTrace_RDComplete
899 return tvb_captured_length(tvb
);
903 dissect_netmon_system_config(tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*tree
, void* data _U_
)
906 proto_tree
*system_tree
;
908 struct netmon_provider_id_data
*provider_id_data
= (struct netmon_provider_id_data
*)data
;
910 uint32_t field1
, field2
;
911 const uint8_t *str_field1
, *str_field2
, *str_field3
, *str_field4
;
913 DISSECTOR_ASSERT(provider_id_data
!= NULL
);
915 col_set_str(pinfo
->cinfo
, COL_PROTOCOL
, "NetMon System Config");
916 col_clear(pinfo
->cinfo
, COL_INFO
);
918 ti
= proto_tree_add_item(tree
, proto_netmon_system_config
, tvb
, 0, -1, ENC_NA
);
919 system_tree
= proto_item_add_subtree(ti
, ett_netmon_system_config
);
921 switch (provider_id_data
->event_version
)
925 switch (provider_id_data
->opcode
)
928 proto_tree_add_item_ret_uint(system_tree
, hf_netmon_system_config_mhz
, tvb
, offset
, 4, ENC_LITTLE_ENDIAN
, &field1
);
930 proto_tree_add_item_ret_uint(system_tree
, hf_netmon_system_config_num_processors
, tvb
, offset
, 4, ENC_LITTLE_ENDIAN
, &field2
);
932 col_add_fstr(pinfo
->cinfo
, COL_INFO
, "Processors: %u, (%u MHz)", field2
, field1
);
934 proto_tree_add_item(system_tree
, hf_netmon_system_config_mem_size
, tvb
, offset
, 4, ENC_LITTLE_ENDIAN
);
936 proto_tree_add_item(system_tree
, hf_netmon_system_config_page_size
, tvb
, offset
, 4, ENC_LITTLE_ENDIAN
);
938 proto_tree_add_item(system_tree
, hf_netmon_system_config_allocation_granularity
, tvb
, offset
, 4, ENC_LITTLE_ENDIAN
);
940 proto_tree_add_item(system_tree
, hf_netmon_system_config_computer_name
, tvb
, offset
, 512, ENC_LITTLE_ENDIAN
|ENC_UTF_16
);
942 proto_tree_add_item(system_tree
, hf_netmon_system_config_domain_name
, tvb
, offset
, 264, ENC_LITTLE_ENDIAN
|ENC_UTF_16
);
944 netmon_etl_field(system_tree
, tvb
, &offset
, hf_netmon_system_config_hyper_threading_flag
, provider_id_data
->event_flags
);
947 proto_tree_add_item(system_tree
, hf_netmon_system_config_disk_number
, tvb
, offset
, 4, ENC_LITTLE_ENDIAN
);
949 proto_tree_add_item(system_tree
, hf_netmon_system_config_bytes_per_sector
, tvb
, offset
, 4, ENC_LITTLE_ENDIAN
);
951 proto_tree_add_item(system_tree
, hf_netmon_system_config_sectors_per_track
, tvb
, offset
, 4, ENC_LITTLE_ENDIAN
);
953 proto_tree_add_item(system_tree
, hf_netmon_system_config_tracks_per_cylinder
, tvb
, offset
, 4, ENC_LITTLE_ENDIAN
);
955 proto_tree_add_item(system_tree
, hf_netmon_system_config_cylinders
, tvb
, offset
, 8, ENC_LITTLE_ENDIAN
);
957 proto_tree_add_item(system_tree
, hf_netmon_system_config_scsi_port
, tvb
, offset
, 4, ENC_LITTLE_ENDIAN
);
959 proto_tree_add_item(system_tree
, hf_netmon_system_config_scsi_path
, tvb
, offset
, 4, ENC_LITTLE_ENDIAN
);
961 proto_tree_add_item(system_tree
, hf_netmon_system_config_scsi_target
, tvb
, offset
, 4, ENC_LITTLE_ENDIAN
);
963 proto_tree_add_item(system_tree
, hf_netmon_system_config_scsi_lun
, tvb
, offset
, 4, ENC_LITTLE_ENDIAN
);
965 proto_tree_add_item_ret_string(system_tree
, hf_netmon_system_config_manufacturer
, tvb
, offset
, 512, ENC_LITTLE_ENDIAN
|ENC_UTF_16
, pinfo
->pool
, &str_field1
);
967 proto_tree_add_item(system_tree
, hf_netmon_system_config_partition_count
, tvb
, offset
, 4, ENC_LITTLE_ENDIAN
);
969 proto_tree_add_item(system_tree
, hf_netmon_system_config_write_cache_enabled
, tvb
, offset
, 1, ENC_LITTLE_ENDIAN
);
971 proto_tree_add_item(system_tree
, hf_netmon_system_config_pad
, tvb
, offset
, 1, ENC_NA
);
973 proto_tree_add_item_ret_string(system_tree
, hf_netmon_system_config_boot_drive_letter
, tvb
, offset
, 6, ENC_LITTLE_ENDIAN
|ENC_UTF_16
, pinfo
->pool
, &str_field2
);
975 proto_tree_add_item(system_tree
, hf_netmon_system_config_spare
, tvb
, offset
, 4, ENC_LITTLE_ENDIAN
|ENC_UTF_16
);
978 col_add_fstr(pinfo
->cinfo
, COL_INFO
, "Manufacturer: %s, BootDriveLetter: %s", str_field1
, str_field2
);
981 proto_tree_add_item(system_tree
, hf_netmon_system_config_start_offset
, tvb
, offset
, 8, ENC_LITTLE_ENDIAN
);
983 proto_tree_add_item(system_tree
, hf_netmon_system_config_partition_size
, tvb
, offset
, 8, ENC_LITTLE_ENDIAN
);
985 proto_tree_add_item(system_tree
, hf_netmon_system_config_disk_number
, tvb
, offset
, 4, ENC_LITTLE_ENDIAN
);
987 proto_tree_add_item(system_tree
, hf_netmon_system_config_size
, tvb
, offset
, 4, ENC_LITTLE_ENDIAN
);
989 proto_tree_add_item(system_tree
, hf_netmon_system_config_drive_type
, tvb
, offset
, 4, ENC_LITTLE_ENDIAN
);
991 proto_tree_add_item_ret_string(system_tree
, hf_netmon_system_config_drive_letter
, tvb
, offset
, 8, ENC_LITTLE_ENDIAN
|ENC_UTF_16
, pinfo
->pool
, &str_field1
);
993 proto_tree_add_item(system_tree
, hf_netmon_system_config_pad
, tvb
, offset
, 4, ENC_NA
);
995 proto_tree_add_item(system_tree
, hf_netmon_system_config_partition_number
, tvb
, offset
, 4, ENC_LITTLE_ENDIAN
);
997 proto_tree_add_item(system_tree
, hf_netmon_system_config_sectors_per_cluster
, tvb
, offset
, 4, ENC_LITTLE_ENDIAN
);
999 proto_tree_add_item(system_tree
, hf_netmon_system_config_bytes_per_sector
, tvb
, offset
, 4, ENC_LITTLE_ENDIAN
);
1001 proto_tree_add_item(system_tree
, hf_netmon_system_config_pad
, tvb
, offset
, 4, ENC_NA
);
1003 proto_tree_add_item(system_tree
, hf_netmon_system_config_num_free_clusters
, tvb
, offset
, 8, ENC_LITTLE_ENDIAN
);
1005 proto_tree_add_item(system_tree
, hf_netmon_system_config_total_num_clusters
, tvb
, offset
, 8, ENC_LITTLE_ENDIAN
);
1007 proto_tree_add_item_ret_string(system_tree
, hf_netmon_system_config_file_system
, tvb
, offset
, 32, ENC_LITTLE_ENDIAN
|ENC_UTF_16
, pinfo
->pool
, &str_field2
);
1009 col_add_fstr(pinfo
->cinfo
, COL_INFO
, "Drive: %s, FileSystem: %s", str_field1
, str_field2
);
1010 proto_tree_add_item(system_tree
, hf_netmon_system_config_volume_ext
, tvb
, offset
, 4, ENC_LITTLE_ENDIAN
);
1014 proto_tree_add_item_ret_string(system_tree
, hf_netmon_system_config_nic_name
, tvb
, offset
, 512, ENC_LITTLE_ENDIAN
|ENC_UTF_16
, pinfo
->pool
, &str_field1
);
1016 proto_tree_add_item(system_tree
, hf_netmon_system_config_index
, tvb
, offset
, 4, ENC_LITTLE_ENDIAN
);
1018 proto_tree_add_item(system_tree
, hf_netmon_system_config_physical_addr_len
, tvb
, offset
, 4, ENC_LITTLE_ENDIAN
);
1020 proto_tree_add_item(system_tree
, hf_netmon_system_config_physical_addr_str
, tvb
, offset
, 16, ENC_LITTLE_ENDIAN
|ENC_UTF_16
);
1022 proto_tree_add_item(system_tree
, hf_netmon_system_config_size
, tvb
, offset
, 4, ENC_LITTLE_ENDIAN
);
1024 proto_tree_add_item(system_tree
, hf_netmon_system_config_ip_address
, tvb
, offset
, 4, ENC_BIG_ENDIAN
);
1025 col_add_fstr(pinfo
->cinfo
, COL_INFO
, "NIC: %s, Address: %s", str_field1
, tvb_ip_to_str(pinfo
->pool
, tvb
, offset
));
1027 proto_tree_add_item(system_tree
, hf_netmon_system_config_subnet_mask
, tvb
, offset
, 4, ENC_BIG_ENDIAN
);
1029 proto_tree_add_item(system_tree
, hf_netmon_system_config_dhcp_server
, tvb
, offset
, 4, ENC_BIG_ENDIAN
);
1031 proto_tree_add_item(system_tree
, hf_netmon_system_config_gateway
, tvb
, offset
, 4, ENC_BIG_ENDIAN
);
1033 proto_tree_add_item(system_tree
, hf_netmon_system_config_primary_wins_server
, tvb
, offset
, 4, ENC_BIG_ENDIAN
);
1035 proto_tree_add_item(system_tree
, hf_netmon_system_config_secondary_wins_server
, tvb
, offset
, 4, ENC_BIG_ENDIAN
);
1037 proto_tree_add_item(system_tree
, hf_netmon_system_config_dns_server1
, tvb
, offset
, 4, ENC_BIG_ENDIAN
);
1039 proto_tree_add_item(system_tree
, hf_netmon_system_config_dns_server2
, tvb
, offset
, 4, ENC_BIG_ENDIAN
);
1041 proto_tree_add_item(system_tree
, hf_netmon_system_config_dns_server3
, tvb
, offset
, 4, ENC_BIG_ENDIAN
);
1043 proto_tree_add_item(system_tree
, hf_netmon_system_config_dns_server4
, tvb
, offset
, 4, ENC_BIG_ENDIAN
);
1045 proto_tree_add_item(system_tree
, hf_netmon_system_config_data
, tvb
, offset
, 4, ENC_LITTLE_ENDIAN
);
1049 proto_tree_add_item(system_tree
, hf_netmon_system_config_memory_size
, tvb
, offset
, 4, ENC_LITTLE_ENDIAN
);
1051 proto_tree_add_item(system_tree
, hf_netmon_system_config_x_resolution
, tvb
, offset
, 4, ENC_LITTLE_ENDIAN
);
1053 proto_tree_add_item(system_tree
, hf_netmon_system_config_y_resolution
, tvb
, offset
, 4, ENC_LITTLE_ENDIAN
);
1055 proto_tree_add_item(system_tree
, hf_netmon_system_config_bits_per_pixel
, tvb
, offset
, 4, ENC_LITTLE_ENDIAN
);
1057 proto_tree_add_item(system_tree
, hf_netmon_system_config_vrefresh
, tvb
, offset
, 4, ENC_LITTLE_ENDIAN
);
1059 proto_tree_add_item_ret_string(system_tree
, hf_netmon_system_config_chip_type
, tvb
, offset
, 512, ENC_LITTLE_ENDIAN
|ENC_UTF_16
, pinfo
->pool
, &str_field1
);
1061 proto_tree_add_item(system_tree
, hf_netmon_system_config_dac_type
, tvb
, offset
, 512, ENC_LITTLE_ENDIAN
|ENC_UTF_16
);
1063 proto_tree_add_item_ret_string(system_tree
, hf_netmon_system_config_adapter_string
, tvb
, offset
, 512, ENC_LITTLE_ENDIAN
|ENC_UTF_16
, pinfo
->pool
, &str_field2
);
1065 proto_tree_add_item_ret_string(system_tree
, hf_netmon_system_config_bios_string
, tvb
, offset
, 512, ENC_LITTLE_ENDIAN
|ENC_UTF_16
, pinfo
->pool
, &str_field3
);
1067 col_add_fstr(pinfo
->cinfo
, COL_INFO
, "Chip: %s, Adapter: %s, Bios: %s", str_field1
, str_field2
, str_field3
);
1068 proto_tree_add_item(system_tree
, hf_netmon_system_config_device_id
, tvb
, offset
, 512, ENC_LITTLE_ENDIAN
|ENC_UTF_16
);
1070 proto_tree_add_item(system_tree
, hf_netmon_system_config_state_flags
, tvb
, offset
, 4, ENC_LITTLE_ENDIAN
);
1074 proto_tree_add_item_ret_string(system_tree
, hf_netmon_system_config_service_name
, tvb
, offset
, 68, ENC_LITTLE_ENDIAN
|ENC_UTF_16
, pinfo
->pool
, &str_field1
);
1076 proto_tree_add_item(system_tree
, hf_netmon_system_config_display_name
, tvb
, offset
, 512, ENC_LITTLE_ENDIAN
|ENC_UTF_16
);
1078 proto_tree_add_item_ret_string(system_tree
, hf_netmon_system_config_process_name
, tvb
, offset
, 68, ENC_LITTLE_ENDIAN
|ENC_UTF_16
, pinfo
->pool
, &str_field2
);
1080 col_add_fstr(pinfo
->cinfo
, COL_INFO
, "Service: %s, Process: %s", str_field1
, str_field2
);
1081 proto_tree_add_item_ret_uint(system_tree
, hf_netmon_system_config_process_id
, tvb
, offset
, 4, ENC_LITTLE_ENDIAN
, &field1
);
1085 proto_tree_add_item(system_tree
, hf_netmon_system_config_s1
, tvb
, offset
, 1, ENC_LITTLE_ENDIAN
);
1087 proto_tree_add_item(system_tree
, hf_netmon_system_config_s2
, tvb
, offset
, 1, ENC_LITTLE_ENDIAN
);
1089 proto_tree_add_item(system_tree
, hf_netmon_system_config_s3
, tvb
, offset
, 1, ENC_LITTLE_ENDIAN
);
1091 proto_tree_add_item(system_tree
, hf_netmon_system_config_s4
, tvb
, offset
, 1, ENC_LITTLE_ENDIAN
);
1093 proto_tree_add_item(system_tree
, hf_netmon_system_config_s5
, tvb
, offset
, 1, ENC_LITTLE_ENDIAN
);
1095 proto_tree_add_item(system_tree
, hf_netmon_system_config_pad
, tvb
, offset
, 3, ENC_NA
);
1099 proto_tree_add_item(system_tree
, hf_netmon_system_config_irq_affinity
, tvb
, offset
, 8, ENC_LITTLE_ENDIAN
);
1101 proto_tree_add_item_ret_uint(system_tree
, hf_netmon_system_config_irq_num
, tvb
, offset
, 4, ENC_LITTLE_ENDIAN
, &field1
);
1103 col_add_fstr(pinfo
->cinfo
, COL_INFO
, "IRQ: %u", field1
);
1104 proto_tree_add_item(system_tree
, hf_netmon_system_config_device_desc_len
, tvb
, offset
, 4, ENC_LITTLE_ENDIAN
);
1106 /* XXX - can we trust size above? */
1107 length
= tvb_unicode_strsize(tvb
, offset
);
1108 proto_tree_add_item(system_tree
, hf_netmon_system_config_device_desc
, tvb
, offset
, length
, ENC_LITTLE_ENDIAN
|ENC_UTF_16
);
1112 proto_tree_add_item(system_tree
, hf_netmon_system_config_device_id_len
, tvb
, offset
, 4, ENC_LITTLE_ENDIAN
);
1114 proto_tree_add_item(system_tree
, hf_netmon_system_config_device_desc_len
, tvb
, offset
, 4, ENC_LITTLE_ENDIAN
);
1116 proto_tree_add_item(system_tree
, hf_netmon_system_config_friendly_name_len
, tvb
, offset
, 4, ENC_LITTLE_ENDIAN
);
1118 /* XXX - can we trust sizes above? */
1119 length
= tvb_unicode_strsize(tvb
, offset
);
1120 proto_tree_add_item_ret_string(system_tree
, hf_netmon_system_config_device_id
, tvb
, offset
, length
, ENC_LITTLE_ENDIAN
|ENC_UTF_16
, pinfo
->pool
, &str_field1
);
1122 length
= tvb_unicode_strsize(tvb
, offset
);
1123 proto_tree_add_item(system_tree
, hf_netmon_system_config_device_desc
, tvb
, offset
, length
, ENC_LITTLE_ENDIAN
|ENC_UTF_16
);
1125 length
= tvb_unicode_strsize(tvb
, offset
);
1126 proto_tree_add_item_ret_string(system_tree
, hf_netmon_system_config_friendly_name
, tvb
, offset
, length
, ENC_LITTLE_ENDIAN
|ENC_UTF_16
, pinfo
->pool
, &str_field2
);
1128 col_add_fstr(pinfo
->cinfo
, COL_INFO
, "ID: %s, Name: %s", str_field1
, str_field2
);
1129 length
= tvb_unicode_strsize(tvb
, offset
);
1130 proto_tree_add_item(system_tree
, hf_netmon_system_config_pdo_name
, tvb
, offset
, length
, ENC_LITTLE_ENDIAN
|ENC_UTF_16
);
1137 switch (provider_id_data
->opcode
)
1140 proto_tree_add_item_ret_uint(system_tree
, hf_netmon_system_config_mhz
, tvb
, offset
, 4, ENC_LITTLE_ENDIAN
, &field1
);
1142 proto_tree_add_item_ret_uint(system_tree
, hf_netmon_system_config_num_processors
, tvb
, offset
, 4, ENC_LITTLE_ENDIAN
, &field2
);
1144 col_add_fstr(pinfo
->cinfo
, COL_INFO
, "Processors: %u, (%u MHz)", field2
, field1
);
1146 proto_tree_add_item(system_tree
, hf_netmon_system_config_mem_size
, tvb
, offset
, 4, ENC_LITTLE_ENDIAN
);
1148 proto_tree_add_item(system_tree
, hf_netmon_system_config_page_size
, tvb
, offset
, 4, ENC_LITTLE_ENDIAN
);
1150 proto_tree_add_item(system_tree
, hf_netmon_system_config_allocation_granularity
, tvb
, offset
, 4, ENC_LITTLE_ENDIAN
);
1152 proto_tree_add_item(system_tree
, hf_netmon_system_config_computer_name
, tvb
, offset
, 512, ENC_LITTLE_ENDIAN
|ENC_UTF_16
);
1154 proto_tree_add_item(system_tree
, hf_netmon_system_config_domain_name
, tvb
, offset
, 264, ENC_LITTLE_ENDIAN
|ENC_UTF_16
);
1156 netmon_etl_field(system_tree
, tvb
, &offset
, hf_netmon_system_config_hyper_threading_flag
, provider_id_data
->event_flags
);
1159 proto_tree_add_item(system_tree
, hf_netmon_system_config_disk_number
, tvb
, offset
, 4, ENC_LITTLE_ENDIAN
);
1161 proto_tree_add_item(system_tree
, hf_netmon_system_config_bytes_per_sector
, tvb
, offset
, 4, ENC_LITTLE_ENDIAN
);
1163 proto_tree_add_item(system_tree
, hf_netmon_system_config_sectors_per_track
, tvb
, offset
, 4, ENC_LITTLE_ENDIAN
);
1165 proto_tree_add_item(system_tree
, hf_netmon_system_config_tracks_per_cylinder
, tvb
, offset
, 4, ENC_LITTLE_ENDIAN
);
1167 proto_tree_add_item(system_tree
, hf_netmon_system_config_cylinders
, tvb
, offset
, 8, ENC_LITTLE_ENDIAN
);
1169 proto_tree_add_item(system_tree
, hf_netmon_system_config_scsi_port
, tvb
, offset
, 4, ENC_LITTLE_ENDIAN
);
1171 proto_tree_add_item(system_tree
, hf_netmon_system_config_scsi_path
, tvb
, offset
, 4, ENC_LITTLE_ENDIAN
);
1173 proto_tree_add_item(system_tree
, hf_netmon_system_config_scsi_target
, tvb
, offset
, 4, ENC_LITTLE_ENDIAN
);
1175 proto_tree_add_item(system_tree
, hf_netmon_system_config_scsi_lun
, tvb
, offset
, 4, ENC_LITTLE_ENDIAN
);
1177 proto_tree_add_item_ret_string(system_tree
, hf_netmon_system_config_manufacturer
, tvb
, offset
, 512, ENC_LITTLE_ENDIAN
|ENC_UTF_16
, pinfo
->pool
, &str_field1
);
1179 proto_tree_add_item(system_tree
, hf_netmon_system_config_partition_count
, tvb
, offset
, 4, ENC_LITTLE_ENDIAN
);
1181 proto_tree_add_item(system_tree
, hf_netmon_system_config_write_cache_enabled
, tvb
, offset
, 1, ENC_LITTLE_ENDIAN
);
1183 proto_tree_add_item(system_tree
, hf_netmon_system_config_pad
, tvb
, offset
, 1, ENC_NA
);
1185 proto_tree_add_item_ret_string(system_tree
, hf_netmon_system_config_boot_drive_letter
, tvb
, offset
, 6, ENC_LITTLE_ENDIAN
|ENC_UTF_16
, pinfo
->pool
, &str_field2
);
1187 proto_tree_add_item(system_tree
, hf_netmon_system_config_spare
, tvb
, offset
, 4, ENC_LITTLE_ENDIAN
|ENC_UTF_16
);
1190 col_add_fstr(pinfo
->cinfo
, COL_INFO
, "Manufacturer: %s, BootDriveLetter: %s", str_field1
, str_field2
);
1193 proto_tree_add_item(system_tree
, hf_netmon_system_config_start_offset
, tvb
, offset
, 8, ENC_LITTLE_ENDIAN
);
1195 proto_tree_add_item(system_tree
, hf_netmon_system_config_partition_size
, tvb
, offset
, 8, ENC_LITTLE_ENDIAN
);
1197 proto_tree_add_item(system_tree
, hf_netmon_system_config_disk_number
, tvb
, offset
, 4, ENC_LITTLE_ENDIAN
);
1199 proto_tree_add_item(system_tree
, hf_netmon_system_config_size
, tvb
, offset
, 4, ENC_LITTLE_ENDIAN
);
1201 proto_tree_add_item(system_tree
, hf_netmon_system_config_drive_type
, tvb
, offset
, 4, ENC_LITTLE_ENDIAN
);
1203 proto_tree_add_item_ret_string(system_tree
, hf_netmon_system_config_drive_letter
, tvb
, offset
, 8, ENC_LITTLE_ENDIAN
|ENC_UTF_16
, pinfo
->pool
, &str_field1
);
1205 proto_tree_add_item(system_tree
, hf_netmon_system_config_pad
, tvb
, offset
, 4, ENC_NA
);
1207 proto_tree_add_item(system_tree
, hf_netmon_system_config_partition_number
, tvb
, offset
, 4, ENC_LITTLE_ENDIAN
);
1209 proto_tree_add_item(system_tree
, hf_netmon_system_config_sectors_per_cluster
, tvb
, offset
, 4, ENC_LITTLE_ENDIAN
);
1211 proto_tree_add_item(system_tree
, hf_netmon_system_config_bytes_per_sector
, tvb
, offset
, 4, ENC_LITTLE_ENDIAN
);
1213 proto_tree_add_item(system_tree
, hf_netmon_system_config_pad
, tvb
, offset
, 4, ENC_NA
);
1215 proto_tree_add_item(system_tree
, hf_netmon_system_config_num_free_clusters
, tvb
, offset
, 8, ENC_LITTLE_ENDIAN
);
1217 proto_tree_add_item(system_tree
, hf_netmon_system_config_total_num_clusters
, tvb
, offset
, 8, ENC_LITTLE_ENDIAN
);
1219 proto_tree_add_item_ret_string(system_tree
, hf_netmon_system_config_file_system
, tvb
, offset
, 32, ENC_LITTLE_ENDIAN
|ENC_UTF_16
, pinfo
->pool
, &str_field2
);
1221 col_add_fstr(pinfo
->cinfo
, COL_INFO
, "Drive: %s, FileSystem: %s", str_field1
, str_field2
);
1222 proto_tree_add_item(system_tree
, hf_netmon_system_config_volume_ext
, tvb
, offset
, 4, ENC_LITTLE_ENDIAN
);
1226 proto_tree_add_item_ret_string(system_tree
, hf_netmon_system_config_nic_name
, tvb
, offset
, 512, ENC_LITTLE_ENDIAN
|ENC_UTF_16
, pinfo
->pool
, &str_field1
);
1228 proto_tree_add_item(system_tree
, hf_netmon_system_config_index
, tvb
, offset
, 4, ENC_LITTLE_ENDIAN
);
1230 proto_tree_add_item(system_tree
, hf_netmon_system_config_physical_addr_len
, tvb
, offset
, 4, ENC_LITTLE_ENDIAN
);
1232 proto_tree_add_item(system_tree
, hf_netmon_system_config_physical_addr_str
, tvb
, offset
, 16, ENC_LITTLE_ENDIAN
|ENC_UTF_16
);
1234 proto_tree_add_item(system_tree
, hf_netmon_system_config_size
, tvb
, offset
, 4, ENC_LITTLE_ENDIAN
);
1236 proto_tree_add_item(system_tree
, hf_netmon_system_config_ip_address
, tvb
, offset
, 4, ENC_BIG_ENDIAN
);
1237 col_add_fstr(pinfo
->cinfo
, COL_INFO
, "NIC: %s, Address: %s", str_field1
, tvb_ip_to_str(pinfo
->pool
, tvb
, offset
));
1239 proto_tree_add_item(system_tree
, hf_netmon_system_config_subnet_mask
, tvb
, offset
, 4, ENC_BIG_ENDIAN
);
1241 proto_tree_add_item(system_tree
, hf_netmon_system_config_dhcp_server
, tvb
, offset
, 4, ENC_BIG_ENDIAN
);
1243 proto_tree_add_item(system_tree
, hf_netmon_system_config_gateway
, tvb
, offset
, 4, ENC_BIG_ENDIAN
);
1245 proto_tree_add_item(system_tree
, hf_netmon_system_config_primary_wins_server
, tvb
, offset
, 4, ENC_BIG_ENDIAN
);
1247 proto_tree_add_item(system_tree
, hf_netmon_system_config_secondary_wins_server
, tvb
, offset
, 4, ENC_BIG_ENDIAN
);
1249 proto_tree_add_item(system_tree
, hf_netmon_system_config_dns_server1
, tvb
, offset
, 4, ENC_BIG_ENDIAN
);
1251 proto_tree_add_item(system_tree
, hf_netmon_system_config_dns_server2
, tvb
, offset
, 4, ENC_BIG_ENDIAN
);
1253 proto_tree_add_item(system_tree
, hf_netmon_system_config_dns_server3
, tvb
, offset
, 4, ENC_BIG_ENDIAN
);
1255 proto_tree_add_item(system_tree
, hf_netmon_system_config_dns_server4
, tvb
, offset
, 4, ENC_BIG_ENDIAN
);
1257 proto_tree_add_item(system_tree
, hf_netmon_system_config_data
, tvb
, offset
, 4, ENC_LITTLE_ENDIAN
);
1261 proto_tree_add_item(system_tree
, hf_netmon_system_config_memory_size
, tvb
, offset
, 4, ENC_LITTLE_ENDIAN
);
1263 proto_tree_add_item(system_tree
, hf_netmon_system_config_x_resolution
, tvb
, offset
, 4, ENC_LITTLE_ENDIAN
);
1265 proto_tree_add_item(system_tree
, hf_netmon_system_config_y_resolution
, tvb
, offset
, 4, ENC_LITTLE_ENDIAN
);
1267 proto_tree_add_item(system_tree
, hf_netmon_system_config_bits_per_pixel
, tvb
, offset
, 4, ENC_LITTLE_ENDIAN
);
1269 proto_tree_add_item(system_tree
, hf_netmon_system_config_vrefresh
, tvb
, offset
, 4, ENC_LITTLE_ENDIAN
);
1271 proto_tree_add_item_ret_string(system_tree
, hf_netmon_system_config_chip_type
, tvb
, offset
, 512, ENC_LITTLE_ENDIAN
|ENC_UTF_16
, pinfo
->pool
, &str_field1
);
1273 proto_tree_add_item(system_tree
, hf_netmon_system_config_dac_type
, tvb
, offset
, 512, ENC_LITTLE_ENDIAN
|ENC_UTF_16
);
1275 proto_tree_add_item_ret_string(system_tree
, hf_netmon_system_config_adapter_string
, tvb
, offset
, 512, ENC_LITTLE_ENDIAN
|ENC_UTF_16
, pinfo
->pool
, &str_field2
);
1277 proto_tree_add_item_ret_string(system_tree
, hf_netmon_system_config_bios_string
, tvb
, offset
, 512, ENC_LITTLE_ENDIAN
|ENC_UTF_16
, pinfo
->pool
, &str_field3
);
1279 col_add_fstr(pinfo
->cinfo
, COL_INFO
, "Chip: %s, Adapter: %s, Bios: %s", str_field1
, str_field2
, str_field3
);
1280 proto_tree_add_item(system_tree
, hf_netmon_system_config_device_id
, tvb
, offset
, 512, ENC_LITTLE_ENDIAN
|ENC_UTF_16
);
1282 proto_tree_add_item(system_tree
, hf_netmon_system_config_state_flags
, tvb
, offset
, 4, ENC_LITTLE_ENDIAN
);
1286 proto_tree_add_item_ret_string(system_tree
, hf_netmon_system_config_service_name
, tvb
, offset
, 68, ENC_LITTLE_ENDIAN
|ENC_UTF_16
, pinfo
->pool
, &str_field1
);
1288 proto_tree_add_item(system_tree
, hf_netmon_system_config_display_name
, tvb
, offset
, 512, ENC_LITTLE_ENDIAN
|ENC_UTF_16
);
1290 proto_tree_add_item_ret_string(system_tree
, hf_netmon_system_config_process_name
, tvb
, offset
, 68, ENC_LITTLE_ENDIAN
|ENC_UTF_16
, pinfo
->pool
, &str_field2
);
1292 col_add_fstr(pinfo
->cinfo
, COL_INFO
, "Service: %s, Process: %s", str_field1
, str_field2
);
1293 proto_tree_add_item_ret_uint(system_tree
, hf_netmon_system_config_process_id
, tvb
, offset
, 4, ENC_LITTLE_ENDIAN
, &field1
);
1297 proto_tree_add_item(system_tree
, hf_netmon_system_config_s1
, tvb
, offset
, 1, ENC_LITTLE_ENDIAN
);
1299 proto_tree_add_item(system_tree
, hf_netmon_system_config_s2
, tvb
, offset
, 1, ENC_LITTLE_ENDIAN
);
1301 proto_tree_add_item(system_tree
, hf_netmon_system_config_s3
, tvb
, offset
, 1, ENC_LITTLE_ENDIAN
);
1303 proto_tree_add_item(system_tree
, hf_netmon_system_config_s4
, tvb
, offset
, 1, ENC_LITTLE_ENDIAN
);
1305 proto_tree_add_item(system_tree
, hf_netmon_system_config_s5
, tvb
, offset
, 1, ENC_LITTLE_ENDIAN
);
1307 proto_tree_add_item(system_tree
, hf_netmon_system_config_pad
, tvb
, offset
, 3, ENC_NA
);
1311 proto_tree_add_item(system_tree
, hf_netmon_system_config_irq_affinity
, tvb
, offset
, 8, ENC_LITTLE_ENDIAN
);
1313 proto_tree_add_item_ret_uint(system_tree
, hf_netmon_system_config_irq_num
, tvb
, offset
, 4, ENC_LITTLE_ENDIAN
, &field1
);
1315 col_add_fstr(pinfo
->cinfo
, COL_INFO
, "IRQ: %u", field1
);
1316 proto_tree_add_item(system_tree
, hf_netmon_system_config_device_desc_len
, tvb
, offset
, 4, ENC_LITTLE_ENDIAN
);
1318 /* XXX - can we trust size above? */
1319 length
= tvb_unicode_strsize(tvb
, offset
);
1320 proto_tree_add_item(system_tree
, hf_netmon_system_config_device_desc
, tvb
, offset
, length
, ENC_LITTLE_ENDIAN
|ENC_UTF_16
);
1324 proto_tree_add_item(system_tree
, hf_netmon_system_config_device_id_len
, tvb
, offset
, 4, ENC_LITTLE_ENDIAN
);
1326 proto_tree_add_item(system_tree
, hf_netmon_system_config_device_desc_len
, tvb
, offset
, 4, ENC_LITTLE_ENDIAN
);
1328 proto_tree_add_item(system_tree
, hf_netmon_system_config_friendly_name_len
, tvb
, offset
, 4, ENC_LITTLE_ENDIAN
);
1330 /* XXX - can we trust sizes above? */
1331 length
= tvb_unicode_strsize(tvb
, offset
);
1332 proto_tree_add_item_ret_string(system_tree
, hf_netmon_system_config_device_id
, tvb
, offset
, length
, ENC_LITTLE_ENDIAN
|ENC_UTF_16
, pinfo
->pool
, &str_field1
);
1334 length
= tvb_unicode_strsize(tvb
, offset
);
1335 proto_tree_add_item(system_tree
, hf_netmon_system_config_device_desc
, tvb
, offset
, length
, ENC_LITTLE_ENDIAN
|ENC_UTF_16
);
1337 length
= tvb_unicode_strsize(tvb
, offset
);
1338 proto_tree_add_item_ret_string(system_tree
, hf_netmon_system_config_friendly_name
, tvb
, offset
, length
, ENC_LITTLE_ENDIAN
|ENC_UTF_16
, pinfo
->pool
, &str_field2
);
1340 col_add_fstr(pinfo
->cinfo
, COL_INFO
, "ID: %s, Name: %s", str_field1
, str_field2
);
1341 length
= tvb_unicode_strsize(tvb
, offset
);
1342 proto_tree_add_item(system_tree
, hf_netmon_system_config_pdo_name
, tvb
, offset
, length
, ENC_LITTLE_ENDIAN
|ENC_UTF_16
);
1349 switch (provider_id_data
->opcode
)
1352 proto_tree_add_item_ret_uint(system_tree
, hf_netmon_system_config_mhz
, tvb
, offset
, 4, ENC_LITTLE_ENDIAN
, &field1
);
1354 proto_tree_add_item_ret_uint(system_tree
, hf_netmon_system_config_num_processors
, tvb
, offset
, 4, ENC_LITTLE_ENDIAN
, &field2
);
1356 col_add_fstr(pinfo
->cinfo
, COL_INFO
, "Processors: %u, (%u MHz)", field2
, field1
);
1358 proto_tree_add_item(system_tree
, hf_netmon_system_config_mem_size
, tvb
, offset
, 4, ENC_LITTLE_ENDIAN
);
1360 proto_tree_add_item(system_tree
, hf_netmon_system_config_page_size
, tvb
, offset
, 4, ENC_LITTLE_ENDIAN
);
1362 proto_tree_add_item(system_tree
, hf_netmon_system_config_allocation_granularity
, tvb
, offset
, 4, ENC_LITTLE_ENDIAN
);
1364 proto_tree_add_item(system_tree
, hf_netmon_system_config_computer_name
, tvb
, offset
, 512, ENC_LITTLE_ENDIAN
|ENC_UTF_16
);
1366 proto_tree_add_item(system_tree
, hf_netmon_system_config_domain_name
, tvb
, offset
, 268, ENC_LITTLE_ENDIAN
|ENC_UTF_16
);
1368 netmon_etl_field(system_tree
, tvb
, &offset
, hf_netmon_system_config_hyper_threading_flag
, provider_id_data
->event_flags
);
1371 proto_tree_add_item(system_tree
, hf_netmon_system_config_disk_number
, tvb
, offset
, 4, ENC_LITTLE_ENDIAN
);
1373 proto_tree_add_item(system_tree
, hf_netmon_system_config_bytes_per_sector
, tvb
, offset
, 4, ENC_LITTLE_ENDIAN
);
1375 proto_tree_add_item(system_tree
, hf_netmon_system_config_sectors_per_track
, tvb
, offset
, 4, ENC_LITTLE_ENDIAN
);
1377 proto_tree_add_item(system_tree
, hf_netmon_system_config_tracks_per_cylinder
, tvb
, offset
, 4, ENC_LITTLE_ENDIAN
);
1379 proto_tree_add_item(system_tree
, hf_netmon_system_config_cylinders
, tvb
, offset
, 8, ENC_LITTLE_ENDIAN
);
1381 proto_tree_add_item(system_tree
, hf_netmon_system_config_scsi_port
, tvb
, offset
, 4, ENC_LITTLE_ENDIAN
);
1383 proto_tree_add_item(system_tree
, hf_netmon_system_config_scsi_path
, tvb
, offset
, 4, ENC_LITTLE_ENDIAN
);
1385 proto_tree_add_item(system_tree
, hf_netmon_system_config_scsi_target
, tvb
, offset
, 4, ENC_LITTLE_ENDIAN
);
1387 proto_tree_add_item(system_tree
, hf_netmon_system_config_scsi_lun
, tvb
, offset
, 4, ENC_LITTLE_ENDIAN
);
1389 proto_tree_add_item_ret_string(system_tree
, hf_netmon_system_config_manufacturer
, tvb
, offset
, 512, ENC_LITTLE_ENDIAN
|ENC_UTF_16
, pinfo
->pool
, &str_field1
);
1391 proto_tree_add_item(system_tree
, hf_netmon_system_config_partition_count
, tvb
, offset
, 4, ENC_LITTLE_ENDIAN
);
1393 proto_tree_add_item(system_tree
, hf_netmon_system_config_write_cache_enabled
, tvb
, offset
, 1, ENC_LITTLE_ENDIAN
);
1395 proto_tree_add_item(system_tree
, hf_netmon_system_config_pad
, tvb
, offset
, 1, ENC_NA
);
1397 proto_tree_add_item_ret_string(system_tree
, hf_netmon_system_config_boot_drive_letter
, tvb
, offset
, 6, ENC_LITTLE_ENDIAN
|ENC_UTF_16
, pinfo
->pool
, &str_field2
);
1399 proto_tree_add_item(system_tree
, hf_netmon_system_config_spare
, tvb
, offset
, 4, ENC_LITTLE_ENDIAN
|ENC_UTF_16
);
1402 col_add_fstr(pinfo
->cinfo
, COL_INFO
, "Manufacturer: %s, BootDriveLetter: %s", str_field1
, str_field2
);
1405 proto_tree_add_item(system_tree
, hf_netmon_system_config_start_offset
, tvb
, offset
, 8, ENC_LITTLE_ENDIAN
);
1407 proto_tree_add_item(system_tree
, hf_netmon_system_config_partition_size
, tvb
, offset
, 8, ENC_LITTLE_ENDIAN
);
1409 proto_tree_add_item(system_tree
, hf_netmon_system_config_disk_number
, tvb
, offset
, 4, ENC_LITTLE_ENDIAN
);
1411 proto_tree_add_item(system_tree
, hf_netmon_system_config_size
, tvb
, offset
, 4, ENC_LITTLE_ENDIAN
);
1413 proto_tree_add_item(system_tree
, hf_netmon_system_config_drive_type
, tvb
, offset
, 4, ENC_LITTLE_ENDIAN
);
1415 proto_tree_add_item_ret_string(system_tree
, hf_netmon_system_config_drive_letter
, tvb
, offset
, 8, ENC_LITTLE_ENDIAN
|ENC_UTF_16
, pinfo
->pool
, &str_field1
);
1417 proto_tree_add_item(system_tree
, hf_netmon_system_config_pad
, tvb
, offset
, 4, ENC_NA
);
1419 proto_tree_add_item(system_tree
, hf_netmon_system_config_partition_number
, tvb
, offset
, 4, ENC_LITTLE_ENDIAN
);
1421 proto_tree_add_item(system_tree
, hf_netmon_system_config_sectors_per_cluster
, tvb
, offset
, 4, ENC_LITTLE_ENDIAN
);
1423 proto_tree_add_item(system_tree
, hf_netmon_system_config_bytes_per_sector
, tvb
, offset
, 4, ENC_LITTLE_ENDIAN
);
1425 proto_tree_add_item(system_tree
, hf_netmon_system_config_pad
, tvb
, offset
, 4, ENC_NA
);
1427 proto_tree_add_item(system_tree
, hf_netmon_system_config_num_free_clusters
, tvb
, offset
, 8, ENC_LITTLE_ENDIAN
);
1429 proto_tree_add_item(system_tree
, hf_netmon_system_config_total_num_clusters
, tvb
, offset
, 8, ENC_LITTLE_ENDIAN
);
1431 proto_tree_add_item_ret_string(system_tree
, hf_netmon_system_config_file_system
, tvb
, offset
, 32, ENC_LITTLE_ENDIAN
|ENC_UTF_16
, pinfo
->pool
, &str_field2
);
1433 col_add_fstr(pinfo
->cinfo
, COL_INFO
, "Drive: %s, FileSystem: %s", str_field1
, str_field2
);
1434 proto_tree_add_item(system_tree
, hf_netmon_system_config_volume_ext
, tvb
, offset
, 4, ENC_LITTLE_ENDIAN
);
1436 proto_tree_add_item(system_tree
, hf_netmon_system_config_pad
, tvb
, offset
, 4, ENC_NA
);
1440 proto_tree_add_item(system_tree
, hf_netmon_system_config_physical_addr
, tvb
, offset
, 8, ENC_LITTLE_ENDIAN
);
1442 proto_tree_add_item(system_tree
, hf_netmon_system_config_physical_addr_len
, tvb
, offset
, 4, ENC_LITTLE_ENDIAN
);
1444 proto_tree_add_item(system_tree
, hf_netmon_system_config_ipv4_index
, tvb
, offset
, 4, ENC_LITTLE_ENDIAN
);
1446 proto_tree_add_item(system_tree
, hf_netmon_system_config_ipv6_index
, tvb
, offset
, 4, ENC_LITTLE_ENDIAN
);
1448 length
= tvb_unicode_strsize(tvb
, offset
);
1449 proto_tree_add_item(system_tree
, hf_netmon_system_config_nic_description
, tvb
, offset
, length
, ENC_LITTLE_ENDIAN
|ENC_UTF_16
);
1451 length
= tvb_unicode_strsize(tvb
, offset
);
1452 proto_tree_add_item_ret_string(system_tree
, hf_netmon_system_config_ipaddresses
, tvb
, offset
, length
, ENC_LITTLE_ENDIAN
|ENC_UTF_16
, pinfo
->pool
, &str_field1
);
1454 col_add_fstr(pinfo
->cinfo
, COL_INFO
, "IP Addresses: %s", str_field1
);
1455 length
= tvb_unicode_strsize(tvb
, offset
);
1456 proto_tree_add_item(system_tree
, hf_netmon_system_config_dns_server_addresses
, tvb
, offset
, length
, ENC_LITTLE_ENDIAN
|ENC_UTF_16
);
1460 proto_tree_add_item(system_tree
, hf_netmon_system_config_memory_size
, tvb
, offset
, 4, ENC_LITTLE_ENDIAN
);
1462 proto_tree_add_item(system_tree
, hf_netmon_system_config_x_resolution
, tvb
, offset
, 4, ENC_LITTLE_ENDIAN
);
1464 proto_tree_add_item(system_tree
, hf_netmon_system_config_y_resolution
, tvb
, offset
, 4, ENC_LITTLE_ENDIAN
);
1466 proto_tree_add_item(system_tree
, hf_netmon_system_config_bits_per_pixel
, tvb
, offset
, 4, ENC_LITTLE_ENDIAN
);
1468 proto_tree_add_item(system_tree
, hf_netmon_system_config_vrefresh
, tvb
, offset
, 4, ENC_LITTLE_ENDIAN
);
1470 proto_tree_add_item_ret_string(system_tree
, hf_netmon_system_config_chip_type
, tvb
, offset
, 512, ENC_LITTLE_ENDIAN
|ENC_UTF_16
, pinfo
->pool
, &str_field1
);
1472 proto_tree_add_item(system_tree
, hf_netmon_system_config_dac_type
, tvb
, offset
, 512, ENC_LITTLE_ENDIAN
|ENC_UTF_16
);
1474 proto_tree_add_item_ret_string(system_tree
, hf_netmon_system_config_adapter_string
, tvb
, offset
, 512, ENC_LITTLE_ENDIAN
|ENC_UTF_16
, pinfo
->pool
, &str_field2
);
1476 proto_tree_add_item_ret_string(system_tree
, hf_netmon_system_config_bios_string
, tvb
, offset
, 512, ENC_LITTLE_ENDIAN
|ENC_UTF_16
, pinfo
->pool
, &str_field3
);
1478 col_add_fstr(pinfo
->cinfo
, COL_INFO
, "Chip: %s, Adapter: %s, Bios: %s", str_field1
, str_field2
, str_field3
);
1479 proto_tree_add_item(system_tree
, hf_netmon_system_config_device_id
, tvb
, offset
, 512, ENC_LITTLE_ENDIAN
|ENC_UTF_16
);
1481 proto_tree_add_item(system_tree
, hf_netmon_system_config_state_flags
, tvb
, offset
, 4, ENC_LITTLE_ENDIAN
);
1485 proto_tree_add_item(system_tree
, hf_netmon_system_config_process_id
, tvb
, offset
, 4, ENC_LITTLE_ENDIAN
);
1487 proto_tree_add_item(system_tree
, hf_netmon_system_config_service_state
, tvb
, offset
, 4, ENC_LITTLE_ENDIAN
);
1489 proto_tree_add_item(system_tree
, hf_netmon_system_config_sub_process_tag
, tvb
, offset
, 4, ENC_LITTLE_ENDIAN
);
1491 length
= tvb_unicode_strsize(tvb
, offset
);
1492 proto_tree_add_item_ret_string(system_tree
, hf_netmon_system_config_service_name
, tvb
, offset
, length
, ENC_LITTLE_ENDIAN
|ENC_UTF_16
, pinfo
->pool
, &str_field1
);
1494 length
= tvb_unicode_strsize(tvb
, offset
);
1495 proto_tree_add_item(system_tree
, hf_netmon_system_config_display_name
, tvb
, offset
, length
, ENC_LITTLE_ENDIAN
|ENC_UTF_16
);
1497 length
= tvb_unicode_strsize(tvb
, offset
);
1498 proto_tree_add_item_ret_string(system_tree
, hf_netmon_system_config_process_name
, tvb
, offset
, length
, ENC_LITTLE_ENDIAN
|ENC_UTF_16
, pinfo
->pool
, &str_field2
);
1500 col_add_fstr(pinfo
->cinfo
, COL_INFO
, "Service: %s, Process: %s", str_field1
, str_field2
);
1503 proto_tree_add_item(system_tree
, hf_netmon_system_config_s1
, tvb
, offset
, 1, ENC_LITTLE_ENDIAN
);
1505 proto_tree_add_item(system_tree
, hf_netmon_system_config_s2
, tvb
, offset
, 1, ENC_LITTLE_ENDIAN
);
1507 proto_tree_add_item(system_tree
, hf_netmon_system_config_s3
, tvb
, offset
, 1, ENC_LITTLE_ENDIAN
);
1509 proto_tree_add_item(system_tree
, hf_netmon_system_config_s4
, tvb
, offset
, 1, ENC_LITTLE_ENDIAN
);
1511 proto_tree_add_item(system_tree
, hf_netmon_system_config_s5
, tvb
, offset
, 1, ENC_LITTLE_ENDIAN
);
1513 proto_tree_add_item(system_tree
, hf_netmon_system_config_pad
, tvb
, offset
, 3, ENC_NA
);
1517 proto_tree_add_item(system_tree
, hf_netmon_system_config_tcb_table_partitions
, tvb
, offset
, 4, ENC_LITTLE_ENDIAN
);
1519 proto_tree_add_item(system_tree
, hf_netmon_system_config_max_hash_table_size
, tvb
, offset
, 4, ENC_LITTLE_ENDIAN
);
1521 proto_tree_add_item_ret_uint(system_tree
, hf_netmon_system_config_max_user_port
, tvb
, offset
, 4, ENC_LITTLE_ENDIAN
, &field1
);
1523 proto_tree_add_item(system_tree
, hf_netmon_system_config_tcp_timed_wait_delay
, tvb
, offset
, 4, ENC_LITTLE_ENDIAN
);
1525 col_add_fstr(pinfo
->cinfo
, COL_INFO
, "MaxUserPort: %u", field1
);
1528 proto_tree_add_item(system_tree
, hf_netmon_system_config_irq_affinity
, tvb
, offset
, 8, ENC_LITTLE_ENDIAN
);
1530 proto_tree_add_item_ret_uint(system_tree
, hf_netmon_system_config_irq_num
, tvb
, offset
, 4, ENC_LITTLE_ENDIAN
, &field1
);
1532 col_add_fstr(pinfo
->cinfo
, COL_INFO
, "IRQ: %u", field1
);
1533 proto_tree_add_item(system_tree
, hf_netmon_system_config_device_desc_len
, tvb
, offset
, 4, ENC_LITTLE_ENDIAN
);
1535 /* XXX - can we trust size above? */
1536 length
= tvb_unicode_strsize(tvb
, offset
);
1537 proto_tree_add_item(system_tree
, hf_netmon_system_config_device_desc
, tvb
, offset
, length
, ENC_LITTLE_ENDIAN
|ENC_UTF_16
);
1541 proto_tree_add_item(system_tree
, hf_netmon_system_config_device_id_len
, tvb
, offset
, 4, ENC_LITTLE_ENDIAN
);
1543 proto_tree_add_item(system_tree
, hf_netmon_system_config_device_desc_len
, tvb
, offset
, 4, ENC_LITTLE_ENDIAN
);
1545 proto_tree_add_item(system_tree
, hf_netmon_system_config_friendly_name_len
, tvb
, offset
, 4, ENC_LITTLE_ENDIAN
);
1547 /* XXX - can we trust sizes above? */
1548 length
= tvb_unicode_strsize(tvb
, offset
);
1549 proto_tree_add_item_ret_string(system_tree
, hf_netmon_system_config_device_id
, tvb
, offset
, length
, ENC_LITTLE_ENDIAN
|ENC_UTF_16
, pinfo
->pool
, &str_field1
);
1551 length
= tvb_unicode_strsize(tvb
, offset
);
1552 proto_tree_add_item(system_tree
, hf_netmon_system_config_device_desc
, tvb
, offset
, length
, ENC_LITTLE_ENDIAN
|ENC_UTF_16
);
1554 length
= tvb_unicode_strsize(tvb
, offset
);
1555 proto_tree_add_item_ret_string(system_tree
, hf_netmon_system_config_friendly_name
, tvb
, offset
, length
, ENC_LITTLE_ENDIAN
|ENC_UTF_16
, pinfo
->pool
, &str_field2
);
1557 col_add_fstr(pinfo
->cinfo
, COL_INFO
, "ID: %s, Name: %s", str_field1
, str_field2
);
1560 proto_tree_add_item(system_tree
, hf_netmon_system_config_target_id
, tvb
, offset
, 4, ENC_LITTLE_ENDIAN
);
1562 proto_tree_add_item(system_tree
, hf_netmon_system_config_device_type
, tvb
, offset
, 4, ENC_LITTLE_ENDIAN
);
1564 proto_tree_add_item(system_tree
, hf_netmon_system_config_device_timing_mode
, tvb
, offset
, 4, ENC_LITTLE_ENDIAN
);
1566 proto_tree_add_item(system_tree
, hf_netmon_system_config_location_information_len
, tvb
, offset
, 4, ENC_LITTLE_ENDIAN
);
1568 length
= tvb_unicode_strsize(tvb
, offset
);
1569 proto_tree_add_item_ret_string(system_tree
, hf_netmon_system_config_location_information
, tvb
, offset
, length
, ENC_LITTLE_ENDIAN
|ENC_UTF_16
, pinfo
->pool
, &str_field1
);
1571 col_add_fstr(pinfo
->cinfo
, COL_INFO
, "Location: %s", str_field1
);
1574 length
= tvb_unicode_strsize(tvb
, offset
);
1575 proto_tree_add_item_ret_string(system_tree
, hf_netmon_system_config_system_manufacturer
, tvb
, offset
, length
, ENC_LITTLE_ENDIAN
|ENC_UTF_16
, pinfo
->pool
, &str_field1
);
1577 length
= tvb_unicode_strsize(tvb
, offset
);
1578 proto_tree_add_item_ret_string(system_tree
, hf_netmon_system_config_system_product_name
, tvb
, offset
, length
, ENC_LITTLE_ENDIAN
|ENC_UTF_16
, pinfo
->pool
, &str_field2
);
1580 length
= tvb_unicode_strsize(tvb
, offset
);
1581 proto_tree_add_item_ret_string(system_tree
, hf_netmon_system_config_bios_date
, tvb
, offset
, length
, ENC_LITTLE_ENDIAN
|ENC_UTF_16
, pinfo
->pool
, &str_field3
);
1583 length
= tvb_unicode_strsize(tvb
, offset
);
1584 proto_tree_add_item_ret_string(system_tree
, hf_netmon_system_config_bios_version
, tvb
, offset
, length
, ENC_LITTLE_ENDIAN
|ENC_UTF_16
, pinfo
->pool
, &str_field4
);
1586 col_add_fstr(pinfo
->cinfo
, COL_INFO
, "Manufacturer: %s, ProductName: %s, BiosDate: %s, BiosVersion: %s", str_field1
, str_field2
, str_field3
, str_field4
);
1592 switch (provider_id_data
->opcode
)
1595 proto_tree_add_item_ret_uint(system_tree
, hf_netmon_system_config_process_id
, tvb
, offset
, 4, ENC_LITTLE_ENDIAN
, &field1
);
1597 proto_tree_add_item(system_tree
, hf_netmon_system_config_service_state
, tvb
, offset
, 4, ENC_LITTLE_ENDIAN
);
1599 proto_tree_add_item(system_tree
, hf_netmon_system_config_sub_process_tag
, tvb
, offset
, 4, ENC_LITTLE_ENDIAN
);
1601 length
= tvb_unicode_strsize(tvb
, offset
);
1602 proto_tree_add_item_ret_string(system_tree
, hf_netmon_system_config_service_name
, tvb
, offset
, length
, ENC_LITTLE_ENDIAN
|ENC_UTF_16
, pinfo
->pool
, &str_field1
);
1604 col_add_fstr(pinfo
->cinfo
, COL_INFO
, "Service: %s, (PID=%d)", str_field1
, field1
);
1605 length
= tvb_unicode_strsize(tvb
, offset
);
1606 proto_tree_add_item(system_tree
, hf_netmon_system_config_display_name
, tvb
, offset
, length
, ENC_LITTLE_ENDIAN
|ENC_UTF_16
);
1608 length
= tvb_unicode_strsize(tvb
, offset
);
1609 proto_tree_add_item(system_tree
, hf_netmon_system_config_process_name
, tvb
, offset
, length
, ENC_LITTLE_ENDIAN
|ENC_UTF_16
);
1611 length
= tvb_unicode_strsize(tvb
, offset
);
1612 proto_tree_add_item(system_tree
, hf_netmon_system_config_load_order_group
, tvb
, offset
, length
, ENC_LITTLE_ENDIAN
|ENC_UTF_16
);
1614 length
= tvb_unicode_strsize(tvb
, offset
);
1615 proto_tree_add_item(system_tree
, hf_netmon_system_config_svc_host_group
, tvb
, offset
, length
, ENC_LITTLE_ENDIAN
|ENC_UTF_16
);
1619 proto_tree_add_item(system_tree
, hf_netmon_system_config_irq_affinity
, tvb
, offset
, 8, ENC_LITTLE_ENDIAN
);
1621 proto_tree_add_item(system_tree
, hf_netmon_system_config_irq_group
, tvb
, offset
, 2, ENC_LITTLE_ENDIAN
);
1623 proto_tree_add_item(system_tree
, hf_netmon_system_config_pad
, tvb
, offset
, 2, ENC_NA
);
1625 proto_tree_add_item_ret_uint(system_tree
, hf_netmon_system_config_irq_num
, tvb
, offset
, 4, ENC_LITTLE_ENDIAN
, &field1
);
1627 col_add_fstr(pinfo
->cinfo
, COL_INFO
, "IRQ: %u", field1
);
1628 proto_tree_add_item(system_tree
, hf_netmon_system_config_device_desc_len
, tvb
, offset
, 4, ENC_LITTLE_ENDIAN
);
1630 /* XXX - can we trust size above? */
1631 length
= tvb_unicode_strsize(tvb
, offset
);
1632 proto_tree_add_item(system_tree
, hf_netmon_system_config_device_desc
, tvb
, offset
, length
, ENC_LITTLE_ENDIAN
|ENC_UTF_16
);
1636 proto_tree_add_item(system_tree
, hf_netmon_system_config_device_id_len
, tvb
, offset
, 4, ENC_LITTLE_ENDIAN
);
1638 proto_tree_add_item(system_tree
, hf_netmon_system_config_device_desc_len
, tvb
, offset
, 4, ENC_LITTLE_ENDIAN
);
1640 proto_tree_add_item(system_tree
, hf_netmon_system_config_friendly_name_len
, tvb
, offset
, 4, ENC_LITTLE_ENDIAN
);
1642 /* XXX - can we trust sizes above? */
1643 length
= tvb_unicode_strsize(tvb
, offset
);
1644 proto_tree_add_item_ret_string(system_tree
, hf_netmon_system_config_device_id
, tvb
, offset
, length
, ENC_LITTLE_ENDIAN
|ENC_UTF_16
, pinfo
->pool
, &str_field1
);
1646 length
= tvb_unicode_strsize(tvb
, offset
);
1647 proto_tree_add_item(system_tree
, hf_netmon_system_config_device_desc
, tvb
, offset
, length
, ENC_LITTLE_ENDIAN
|ENC_UTF_16
);
1649 length
= tvb_unicode_strsize(tvb
, offset
);
1650 proto_tree_add_item_ret_string(system_tree
, hf_netmon_system_config_friendly_name
, tvb
, offset
, length
, ENC_LITTLE_ENDIAN
|ENC_UTF_16
, pinfo
->pool
, &str_field2
);
1652 col_add_fstr(pinfo
->cinfo
, COL_INFO
, "ID: %s, Name: %s", str_field1
, str_field2
);
1653 length
= tvb_unicode_strsize(tvb
, offset
);
1654 proto_tree_add_item(system_tree
, hf_netmon_system_config_pdo_name
, tvb
, offset
, length
, ENC_LITTLE_ENDIAN
|ENC_UTF_16
);
1665 dissect_netmon_process(tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*tree
, void* data _U_
)
1668 proto_tree
*process_tree
;
1670 struct netmon_provider_id_data
*provider_id_data
= (struct netmon_provider_id_data
*)data
;
1672 const uint8_t *filename
;
1674 DISSECTOR_ASSERT(provider_id_data
!= NULL
);
1676 col_set_str(pinfo
->cinfo
, COL_PROTOCOL
, "NetMon Process");
1677 col_clear(pinfo
->cinfo
, COL_INFO
);
1679 ti
= proto_tree_add_item(tree
, proto_netmon_process
, tvb
, 0, -1, ENC_NA
);
1680 process_tree
= proto_item_add_subtree(ti
, ett_netmon_process
);
1682 switch (provider_id_data
->event_version
)
1685 switch (provider_id_data
->opcode
)
1691 proto_tree_add_item(process_tree
, hf_netmon_process_process_id
, tvb
, offset
, 4, ENC_LITTLE_ENDIAN
);
1693 proto_tree_add_item(process_tree
, hf_netmon_process_parent_id
, tvb
, offset
, 4, ENC_LITTLE_ENDIAN
);
1695 netmon_sid_field(process_tree
, tvb
, &offset
, pinfo
, hf_netmon_process_user_sid_revision
,
1696 hf_netmon_process_user_sid_subauth_count
, hf_netmon_process_user_sid_id
, hf_netmon_process_user_sid_authority
,
1697 &ei_netmon_process_user_sid
, false);
1698 length
= tvb_strsize(tvb
, offset
);
1699 proto_tree_add_item_ret_string(process_tree
, hf_netmon_process_image_file_name
, tvb
, offset
, length
, ENC_NA
|ENC_ASCII
,
1700 pinfo
->pool
, &filename
);
1701 col_add_fstr(pinfo
->cinfo
, COL_INFO
, "Filename: %s", filename
);
1708 switch (provider_id_data
->opcode
)
1714 netmon_etl_field(process_tree
, tvb
, &offset
, hf_netmon_process_page_directory_base
, provider_id_data
->event_flags
);
1715 proto_tree_add_item(process_tree
, hf_netmon_process_process_id
, tvb
, offset
, 4, ENC_LITTLE_ENDIAN
);
1717 proto_tree_add_item(process_tree
, hf_netmon_process_parent_id
, tvb
, offset
, 4, ENC_LITTLE_ENDIAN
);
1719 proto_tree_add_item(process_tree
, hf_netmon_process_session_id
, tvb
, offset
, 4, ENC_LITTLE_ENDIAN
);
1721 proto_tree_add_item(process_tree
, hf_netmon_process_exit_status
, tvb
, offset
, 4, ENC_LITTLE_ENDIAN
);
1723 netmon_sid_field(process_tree
, tvb
, &offset
, pinfo
, hf_netmon_process_user_sid_revision
,
1724 hf_netmon_process_user_sid_subauth_count
, hf_netmon_process_user_sid_id
, hf_netmon_process_user_sid_authority
,
1725 &ei_netmon_process_user_sid
, false);
1726 length
= tvb_strsize(tvb
, offset
);
1727 proto_tree_add_item_ret_string(process_tree
, hf_netmon_process_image_file_name
, tvb
, offset
, length
, ENC_NA
|ENC_ASCII
,
1728 pinfo
->pool
, &filename
);
1729 col_add_fstr(pinfo
->cinfo
, COL_INFO
, "Filename: %s", filename
);
1735 switch (provider_id_data
->opcode
)
1742 netmon_etl_field(process_tree
, tvb
, &offset
, hf_netmon_process_unique_process_key
, provider_id_data
->event_flags
);
1743 proto_tree_add_item(process_tree
, hf_netmon_process_process_id
, tvb
, offset
, 4, ENC_LITTLE_ENDIAN
);
1745 proto_tree_add_item(process_tree
, hf_netmon_process_parent_id
, tvb
, offset
, 4, ENC_LITTLE_ENDIAN
);
1747 proto_tree_add_item(process_tree
, hf_netmon_process_session_id
, tvb
, offset
, 4, ENC_LITTLE_ENDIAN
);
1749 proto_tree_add_item(process_tree
, hf_netmon_process_exit_status
, tvb
, offset
, 4, ENC_LITTLE_ENDIAN
);
1751 if (provider_id_data
->event_flags
& EVENT_HEADER_FLAG_64_BIT_HEADER
)
1753 proto_tree_add_item(process_tree
, hf_netmon_process_unknown
, tvb
, offset
, 16, ENC_NA
);
1758 proto_tree_add_item(process_tree
, hf_netmon_process_unknown
, tvb
, offset
, 8, ENC_NA
);
1761 netmon_sid_field(process_tree
, tvb
, &offset
, pinfo
, hf_netmon_process_user_sid_revision
,
1762 hf_netmon_process_user_sid_subauth_count
, hf_netmon_process_user_sid_id
, hf_netmon_process_user_sid_authority
,
1763 &ei_netmon_process_user_sid
, false);
1764 length
= tvb_strsize(tvb
, offset
);
1765 proto_tree_add_item_ret_string(process_tree
, hf_netmon_process_image_file_name
, tvb
, offset
, length
, ENC_NA
|ENC_ASCII
,
1766 pinfo
->pool
, &filename
);
1767 col_add_fstr(pinfo
->cinfo
, COL_INFO
, "Filename: %s", filename
);
1770 length
= tvb_unicode_strsize(tvb
, offset
);
1771 proto_tree_add_item(process_tree
, hf_netmon_process_command_line
, tvb
, offset
, length
, ENC_LITTLE_ENDIAN
|ENC_UTF_16
);
1777 proto_tree_add_item(process_tree
, hf_netmon_process_process_id
, tvb
, offset
, 4, ENC_LITTLE_ENDIAN
);
1779 proto_tree_add_item(process_tree
, hf_netmon_process_page_fault_count
, tvb
, offset
, 4, ENC_LITTLE_ENDIAN
);
1781 proto_tree_add_item(process_tree
, hf_netmon_process_handle_count
, tvb
, offset
, 4, ENC_LITTLE_ENDIAN
);
1783 proto_tree_add_item(process_tree
, hf_netmon_process_reserved
, tvb
, offset
, 4, ENC_LITTLE_ENDIAN
);
1785 proto_tree_add_item(process_tree
, hf_netmon_process_peak_virtual_size
, tvb
, offset
, 4, ENC_LITTLE_ENDIAN
);
1787 proto_tree_add_item(process_tree
, hf_netmon_process_peak_working_set_size
, tvb
, offset
, 4, ENC_LITTLE_ENDIAN
);
1789 proto_tree_add_item(process_tree
, hf_netmon_process_peak_page_file_usage
, tvb
, offset
, 4, ENC_LITTLE_ENDIAN
);
1791 proto_tree_add_item(process_tree
, hf_netmon_process_quota_peak_paged_pool_usage
, tvb
, offset
, 4, ENC_LITTLE_ENDIAN
);
1793 proto_tree_add_item(process_tree
, hf_netmon_process_quota_peak_non_paged_pool_usage
, tvb
, offset
, 4, ENC_LITTLE_ENDIAN
);
1795 proto_tree_add_item(process_tree
, hf_netmon_process_virtual_size
, tvb
, offset
, 4, ENC_LITTLE_ENDIAN
);
1797 proto_tree_add_item(process_tree
, hf_netmon_process_workingset_size
, tvb
, offset
, 4, ENC_LITTLE_ENDIAN
);
1799 proto_tree_add_item(process_tree
, hf_netmon_process_pagefile_usage
, tvb
, offset
, 4, ENC_LITTLE_ENDIAN
);
1801 proto_tree_add_item(process_tree
, hf_netmon_process_quota_paged_pool_usage
, tvb
, offset
, 4, ENC_LITTLE_ENDIAN
);
1803 proto_tree_add_item(process_tree
, hf_netmon_process_quota_non_paged_pool_usage
, tvb
, offset
, 4, ENC_LITTLE_ENDIAN
);
1805 proto_tree_add_item(process_tree
, hf_netmon_process_private_page_count
, tvb
, offset
, 4, ENC_LITTLE_ENDIAN
);
1809 proto_tree_add_item(process_tree
, hf_netmon_process_process_id
, tvb
, offset
, 4, ENC_LITTLE_ENDIAN
);
1811 proto_tree_add_item(process_tree
, hf_netmon_process_directory_table_base32
, tvb
, offset
, 4, ENC_LITTLE_ENDIAN
);
1817 switch (provider_id_data
->opcode
)
1824 netmon_etl_field(process_tree
, tvb
, &offset
, hf_netmon_process_unique_process_key
, provider_id_data
->event_flags
);
1825 proto_tree_add_item(process_tree
, hf_netmon_process_process_id
, tvb
, offset
, 4, ENC_LITTLE_ENDIAN
);
1827 proto_tree_add_item(process_tree
, hf_netmon_process_parent_id
, tvb
, offset
, 4, ENC_LITTLE_ENDIAN
);
1829 proto_tree_add_item(process_tree
, hf_netmon_process_session_id
, tvb
, offset
, 4, ENC_LITTLE_ENDIAN
);
1831 proto_tree_add_item(process_tree
, hf_netmon_process_exit_status
, tvb
, offset
, 4, ENC_LITTLE_ENDIAN
);
1833 netmon_etl_field(process_tree
, tvb
, &offset
, hf_netmon_process_directory_table_base
, provider_id_data
->event_flags
);
1834 if (provider_id_data
->event_flags
& EVENT_HEADER_FLAG_64_BIT_HEADER
)
1836 proto_tree_add_item(process_tree
, hf_netmon_process_unknown
, tvb
, offset
, 16, ENC_NA
);
1841 proto_tree_add_item(process_tree
, hf_netmon_process_unknown
, tvb
, offset
, 8, ENC_NA
);
1844 netmon_sid_field(process_tree
, tvb
, &offset
, pinfo
, hf_netmon_process_user_sid_revision
,
1845 hf_netmon_process_user_sid_subauth_count
, hf_netmon_process_user_sid_id
, hf_netmon_process_user_sid_authority
,
1846 &ei_netmon_process_user_sid
, false);
1847 length
= tvb_strsize(tvb
, offset
);
1848 proto_tree_add_item_ret_string(process_tree
, hf_netmon_process_image_file_name
, tvb
, offset
, length
, ENC_NA
|ENC_ASCII
,
1849 pinfo
->pool
, &filename
);
1850 col_add_fstr(pinfo
->cinfo
, COL_INFO
, "Filename: %s", filename
);
1853 length
= tvb_unicode_strsize(tvb
, offset
);
1854 proto_tree_add_item(process_tree
, hf_netmon_process_command_line
, tvb
, offset
, length
, ENC_LITTLE_ENDIAN
|ENC_UTF_16
);
1861 return tvb_captured_length(tvb
);
1864 void proto_register_netmon(void)
1866 static hf_register_info hf_header
[] = {
1867 { &hf_netmon_header_title_comment
,
1868 { "Comment title", "netmon_header.title_comment",
1869 FT_STRING
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
1871 { &hf_netmon_header_description_comment
,
1872 { "Comment description", "netmon_header.description_comment",
1873 FT_STRING
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
1878 static hf_register_info hf_event
[] = {
1879 { &hf_netmon_event_size
,
1880 { "Size", "netmon_event.size",
1881 FT_UINT16
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
1883 { &hf_netmon_event_header_type
,
1884 { "Header type", "netmon_event.header_type",
1885 FT_UINT16
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
1887 { &hf_netmon_event_flags
,
1888 { "Flags", "netmon_event.flags",
1889 FT_UINT16
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
1891 { &hf_netmon_event_flags_extended_info
,
1892 { "Extended Info", "netmon_event.flags.extended_info",
1893 FT_BOOLEAN
, 16, TFS(&tfs_present_not_present
), EVENT_HEADER_FLAG_EXTENDED_INFO
, NULL
, HFILL
}
1895 { &hf_netmon_event_flags_private_session
,
1896 { "Private Sessions", "netmon_event.flags.private_session",
1897 FT_BOOLEAN
, 16, TFS(&tfs_yes_no
), EVENT_HEADER_FLAG_PRIVATE_SESSION
, NULL
, HFILL
}
1899 { &hf_netmon_event_flags_string_only
,
1900 { "Null-terminated Unicode string", "netmon_event.flags.string_only",
1901 FT_BOOLEAN
, 16, TFS(&tfs_yes_no
), EVENT_HEADER_FLAG_STRING_ONLY
, NULL
, HFILL
}
1903 { &hf_netmon_event_flags_trace_message
,
1904 { "TraceMessage logged", "netmon_event.flags.trace_message",
1905 FT_BOOLEAN
, 16, TFS(&tfs_yes_no
), EVENT_HEADER_FLAG_TRACE_MESSAGE
, NULL
, HFILL
}
1907 { &hf_netmon_event_flags_no_cputime
,
1908 { "Use ProcessorTime", "netmon_event.flags.no_cputime",
1909 FT_BOOLEAN
, 16, TFS(&tfs_yes_no
), EVENT_HEADER_FLAG_NO_CPUTIME
, NULL
, HFILL
}
1911 { &hf_netmon_event_flags_32bit_header
,
1912 { "Provider running on 32-bit computer", "netmon_event.flags.32bit_header",
1913 FT_BOOLEAN
, 16, TFS(&tfs_yes_no
), EVENT_HEADER_FLAG_32_BIT_HEADER
, NULL
, HFILL
}
1915 { &hf_netmon_event_flags_64bit_header
,
1916 { "Provider running on 64-bit computer", "netmon_event.flags.64bit_header",
1917 FT_BOOLEAN
, 16, TFS(&tfs_yes_no
), EVENT_HEADER_FLAG_64_BIT_HEADER
, NULL
, HFILL
}
1919 { &hf_netmon_event_flags_classic_header
,
1920 { "Use TraceEvent", "netmon_event.flags.classic_header",
1921 FT_BOOLEAN
, 16, TFS(&tfs_yes_no
), EVENT_HEADER_FLAG_CLASSIC_HEADER
, NULL
, HFILL
}
1923 { &hf_netmon_event_event_property
,
1924 { "Event property", "netmon_event.event_property",
1925 FT_UINT16
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
1927 { &hf_netmon_event_event_property_xml
,
1928 { "Need manifest", "netmon_event.event_property.xml",
1929 FT_BOOLEAN
, 16, TFS(&tfs_yes_no
), EVENT_HEADER_PROPERTY_XML
, NULL
, HFILL
}
1931 { &hf_netmon_event_event_property_forwarded_xml
,
1932 { "Event data contains fully-rendered XML", "netmon_event.event_property.forwarded_xml",
1933 FT_BOOLEAN
, 16, TFS(&tfs_yes_no
), EVENT_HEADER_PROPERTY_FORWARDED_XML
, NULL
, HFILL
}
1935 { &hf_netmon_event_event_property_legacy_eventlog
,
1936 { "Need WMI MOF class", "netmon_event.event_property.legacy_eventlog",
1937 FT_BOOLEAN
, 16, TFS(&tfs_yes_no
), EVENT_HEADER_PROPERTY_LEGACY_EVENTLOG
, NULL
, HFILL
}
1939 { &hf_netmon_event_thread_id
,
1940 { "Thread ID", "netmon_event.thread_id",
1941 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
1943 { &hf_netmon_event_process_id
,
1944 { "Process ID", "netmon_event.process_id",
1945 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
1947 { &hf_netmon_event_timestamp
,
1948 { "Timestamp", "netmon_event.timestamp",
1949 FT_ABSOLUTE_TIME
, ABSOLUTE_TIME_LOCAL
, NULL
, 0x0, NULL
, HFILL
}
1951 { &hf_netmon_event_provider_id
,
1952 { "Provider ID", "netmon_event.provider_id",
1953 FT_GUID
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
1955 { &hf_netmon_event_event_desc_id
,
1956 { "ID", "netmon_event.event_desc.id",
1957 FT_UINT16
, BASE_DEC_HEX
, NULL
, 0x0, NULL
, HFILL
}
1959 { &hf_netmon_event_event_desc_version
,
1960 { "Version", "netmon_event.event_desc.version",
1961 FT_UINT8
, BASE_DEC_HEX
, NULL
, 0x0, NULL
, HFILL
}
1963 { &hf_netmon_event_event_desc_channel
,
1964 { "Channel", "netmon_event.event_desc.channel",
1965 FT_UINT8
, BASE_DEC_HEX
, NULL
, 0x0, NULL
, HFILL
}
1967 { &hf_netmon_event_event_desc_level
,
1968 { "Level", "netmon_event.event_desc.level",
1969 FT_UINT8
, BASE_DEC
, VALS(event_level_vals
), 0x0, NULL
, HFILL
}
1971 { &hf_netmon_event_event_desc_opcode
,
1972 { "Opcode", "netmon_event.event_desc.opcode",
1973 FT_UINT8
, BASE_HEX
, VALS(opcode_vals
), 0x0, NULL
, HFILL
}
1975 { &hf_netmon_event_event_desc_task
,
1976 { "Task", "netmon_event.event_desc.task",
1977 FT_UINT16
, BASE_DEC_HEX
, NULL
, 0x0, NULL
, HFILL
}
1979 { &hf_netmon_event_event_desc_keyword
,
1980 { "Keyword", "netmon_event.event_desc.keyword",
1981 FT_UINT64
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
1983 { &hf_netmon_event_kernel_time
,
1984 { "Kernel time", "netmon_event.kernel_time",
1985 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
1987 { &hf_netmon_event_user_time
,
1988 { "User time", "netmon_event.user_time",
1989 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
1991 { &hf_netmon_event_processor_time
,
1992 { "Processor time", "netmon_event.processor_time",
1993 FT_UINT64
, BASE_DEC_HEX
, NULL
, 0x0, NULL
, HFILL
}
1995 { &hf_netmon_event_activity_id
,
1996 { "Activity ID", "netmon_event.activity_id",
1997 FT_GUID
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
1999 { &hf_netmon_event_processor_number
,
2000 { "Processor number", "netmon_event.processor_number",
2001 FT_UINT8
, BASE_DEC_HEX
, NULL
, 0x0, NULL
, HFILL
}
2003 { &hf_netmon_event_alignment
,
2004 { "Alignment", "netmon_event.alignment",
2005 FT_UINT8
, BASE_DEC_HEX
, NULL
, 0x0, NULL
, HFILL
}
2007 { &hf_netmon_event_logger_id
,
2008 { "Logger ID", "netmon_event.logger_id",
2009 FT_UINT16
, BASE_DEC_HEX
, NULL
, 0x0, NULL
, HFILL
}
2011 { &hf_netmon_event_extended_data_count
,
2012 { "Extended data count", "netmon_event.extended_data_count",
2013 FT_UINT16
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
2015 { &hf_netmon_event_user_data_length
,
2016 { "User data length", "netmon_event.user_data_length",
2017 FT_UINT16
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
2019 { &hf_netmon_event_reassembled
,
2020 { "Reassembled", "netmon_event.reassembled",
2021 FT_UINT16
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
2023 { &hf_netmon_event_extended_data_reserved
,
2024 { "Reserved", "netmon_event.extended_data.reserved",
2025 FT_UINT16
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
2027 { &hf_netmon_event_extended_data_type
,
2028 { "Extended info type", "netmon_event.extended_data.type",
2029 FT_UINT16
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
2031 { &hf_netmon_event_extended_data_linkage
,
2032 { "Additional extended data", "netmon_event.extended_data.linkage",
2033 FT_BOOLEAN
, 16, TFS(&tfs_yes_no
), 0x0001, NULL
, HFILL
}
2035 { &hf_netmon_event_extended_data_reserved2
,
2036 { "Reserved", "netmon_event.extended_data.reserved2",
2037 FT_UINT16
, BASE_HEX
, NULL
, 0xFFFE, NULL
, HFILL
}
2039 { &hf_netmon_event_extended_data_size
,
2040 { "Extended data size", "netmon_event.extended_data.size",
2041 FT_UINT16
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
2043 { &hf_netmon_event_extended_data
,
2044 { "Extended data", "netmon_event.extended_data",
2045 FT_BYTES
, BASE_NONE
|BASE_ALLOW_ZERO
, NULL
, 0x0, NULL
, HFILL
}
2047 { &hf_netmon_event_user_data
,
2048 { "User data", "netmon_event.user_data",
2049 FT_BYTES
, BASE_NONE
|BASE_ALLOW_ZERO
, NULL
, 0x0, NULL
, HFILL
}
2053 static hf_register_info hf_filter
[] = {
2054 { &hf_netmon_filter_version
,
2055 { "Version", "netmon_filter.version",
2056 FT_UINT16
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
2058 { &hf_netmon_filter_type
,
2059 { "Filter type", "netmon_filter.type",
2060 FT_UINT32
, BASE_DEC
|BASE_RANGE_STRING
, RVALS(filter_types
), 0x0, NULL
, HFILL
}
2062 { &hf_netmon_filter_app_major_version
,
2063 { "App Major Version", "netmon_filter.app_major_version",
2064 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
2066 { &hf_netmon_filter_app_minor_version
,
2067 { "App Minor Version", "netmon_filter.app_minor_version",
2068 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
2070 { &hf_netmon_filter_app_name
,
2071 { "Application Name", "netmon_filter.app_name",
2072 FT_STRING
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
2074 { &hf_netmon_filter_filter
,
2075 { "Filter", "netmon_filter.filter",
2076 FT_STRING
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
2080 static hf_register_info hf_network_info
[] = {
2081 { &hf_netmon_network_info_version
,
2082 { "Version", "netmon_network_info.version",
2083 FT_UINT16
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
2085 { &hf_netmon_network_info_adapter_count
,
2086 { "Adapter count", "netmon_network_info.adapter_count",
2087 FT_UINT16
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
2089 { &hf_netmon_network_info_computer_name
,
2090 { "Computer name", "netmon_network_info.computer_name",
2091 FT_STRING
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
2093 { &hf_netmon_network_info_friendly_name
,
2094 { "Friendly name", "netmon_network_info.friendly_name",
2095 FT_STRING
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
2097 { &hf_netmon_network_info_description
,
2098 { "Description", "netmon_network_info.description",
2099 FT_STRING
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
2101 { &hf_netmon_network_info_miniport_guid
,
2102 { "Miniport GUID", "netmon_network_info.miniport_guid",
2103 FT_STRING
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
2105 { &hf_netmon_network_info_media_type
,
2106 { "Media type", "netmon_network_info.media_type",
2107 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
2109 { &hf_netmon_network_info_mtu
,
2110 { "MTU", "netmon_network_info.mtu",
2111 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
2113 { &hf_netmon_network_info_link_speed
,
2114 { "Link speed", "netmon_network_info.link_speed",
2115 FT_UINT64
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
2117 { &hf_netmon_network_info_mac_address
,
2118 { "MAC address", "netmon_network_info.mac_address",
2119 FT_ETHER
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
2121 { &hf_netmon_network_info_ipv4_count
,
2122 { "IPv4 count", "netmon_network_info.ipv4_count",
2123 FT_UINT16
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
2125 { &hf_netmon_network_info_ipv6_count
,
2126 { "IPv6 count", "netmon_network_info.ipv6_count",
2127 FT_UINT16
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
2129 { &hf_netmon_network_info_gateway_count
,
2130 { "Gateway count", "netmon_network_info.gateway_count",
2131 FT_UINT16
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
2133 { &hf_netmon_network_info_dhcp_server_count
,
2134 { "DHCP server count", "netmon_network_info.dhcp_server_count",
2135 FT_UINT16
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
2137 { &hf_netmon_network_info_dns_ipv4_count
,
2138 { "DNS IPv4 count", "netmon_network_info.dns_ipv4_count",
2139 FT_UINT16
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
2141 { &hf_netmon_network_info_dns_ipv6_count
,
2142 { "DNS IPv6 count", "netmon_network_info.dns_ipv6_count",
2143 FT_UINT16
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
2145 { &hf_netmon_network_info_ipv4
,
2146 { "IPv4 address", "netmon_network_info.ipv4",
2147 FT_IPv4
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
2149 { &hf_netmon_network_info_subnet
,
2150 { "Subnet mask", "netmon_network_info.subnet",
2151 FT_IPv4
, BASE_NETMASK
, NULL
, 0x0, NULL
, HFILL
}
2153 { &hf_netmon_network_info_ipv6
,
2154 { "IPv6 address", "netmon_network_info.ipv6",
2155 FT_IPv6
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
2157 { &hf_netmon_network_info_gateway
,
2158 { "Gateway address", "netmon_network_info.gateway",
2159 FT_IPv4
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
2161 { &hf_netmon_network_info_dhcp_server
,
2162 { "DHCP Server", "netmon_network_info.dhcp_server",
2163 FT_IPv4
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
2165 { &hf_netmon_network_info_dns_ipv4
,
2166 { "DNS IPv4 address", "netmon_network_info.dns_ipv4",
2167 FT_IPv4
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
2169 { &hf_netmon_network_info_dns_ipv6
,
2170 { "DNS IPv6 address", "netmon_network_info.dns_ipv6",
2171 FT_IPv6
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
2175 static hf_register_info hf_system_trace
[] = {
2176 { &hf_netmon_system_trace_buffer_size
,
2177 { "Buffer size", "netmon_system_trace.buffer_size",
2178 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
2180 { &hf_netmon_system_trace_version
,
2181 { "Version", "netmon_system_trace.version",
2182 FT_UINT32
, BASE_HEX_DEC
, NULL
, 0x0, NULL
, HFILL
}
2184 { &hf_netmon_system_trace_provider_version
,
2185 { "Provider version", "netmon_system_trace.provider_version",
2186 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
2188 { &hf_netmon_system_trace_num_processors
,
2189 { "Number of processors", "netmon_system_trace.num_processors",
2190 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
2192 { &hf_netmon_system_trace_end_time
,
2193 { "End time", "netmon_system_trace.end_time",
2194 FT_ABSOLUTE_TIME
, ABSOLUTE_TIME_LOCAL
, NULL
, 0x0, NULL
, HFILL
}
2196 { &hf_netmon_system_trace_timer_resolution
,
2197 { "Timer resolution", "netmon_system_trace.timer_resolution",
2198 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
2200 { &hf_netmon_system_trace_max_file_size
,
2201 { "Max file size", "netmon_system_trace.max_file_size",
2202 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
2204 { &hf_netmon_system_trace_log_file_mode
,
2205 { "Log file mode", "netmon_system_trace.log_file_mode",
2206 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
2208 { &hf_netmon_system_trace_buffers_written
,
2209 { "Buffers written", "netmon_system_trace.buffers_written",
2210 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
2212 { &hf_netmon_system_trace_start_buffers
,
2213 { "Start buffers", "netmon_system_trace.start_buffers",
2214 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
2216 { &hf_netmon_system_trace_pointers_size
,
2217 { "Pointers size", "netmon_system_trace.pointers_size",
2218 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
2220 { &hf_netmon_system_trace_events_lost
,
2221 { "Events lost", "netmon_system_trace.events_lost",
2222 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
2224 { &hf_netmon_system_trace_cpu_speed
,
2225 { "CPU speed", "netmon_system_trace.cpu_speed",
2226 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
2228 { &hf_netmon_system_trace_logger_name
,
2229 { "Logger name", "netmon_system_trace.logger_name",
2230 FT_UINT64
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
2232 { &hf_netmon_system_trace_log_file_name_ptr
,
2233 { "Log file name", "netmon_system_trace.log_file_name_ptr",
2234 FT_UINT64
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
2236 { &hf_netmon_system_trace_time_zone_info
,
2237 { "Time zone info", "netmon_system_trace.time_zone_info",
2238 FT_BYTES
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
2240 { &hf_netmon_system_trace_boot_time
,
2241 { "Boot time", "netmon_system_trace.boot_time",
2242 FT_ABSOLUTE_TIME
, ABSOLUTE_TIME_LOCAL
, NULL
, 0x0, NULL
, HFILL
}
2244 { &hf_netmon_system_trace_perf_freq
,
2245 { "Perf freq", "netmon_system_trace.pref_freq",
2246 FT_UINT64
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
2248 { &hf_netmon_system_trace_start_time
,
2249 { "Start time", "netmon_system_trace.start_time",
2250 FT_ABSOLUTE_TIME
, ABSOLUTE_TIME_LOCAL
, NULL
, 0x0, NULL
, HFILL
}
2252 { &hf_netmon_system_trace_reserved_flags
,
2253 { "Reserved Flags", "netmon_system_trace.reserved_flags",
2254 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
2256 { &hf_netmon_system_trace_buffers_lost
,
2257 { "Buffers lost", "netmon_system_trace.buffers_lost",
2258 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
2260 { &hf_netmon_system_trace_session_name
,
2261 { "Session name", "netmon_system_trace.session_name",
2262 FT_STRING
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
2264 { &hf_netmon_system_trace_log_file_name
,
2265 { "Log file name", "netmon_system_trace.log_file_name",
2266 FT_STRING
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
2268 { &hf_netmon_system_trace_group_mask1
,
2269 { "Group Mask1", "netmon_system_trace.group_mask1",
2270 FT_UINT32
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
2272 { &hf_netmon_system_trace_group_mask2
,
2273 { "Group Mask2", "netmon_system_trace.group_mask2",
2274 FT_UINT32
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
2276 { &hf_netmon_system_trace_group_mask3
,
2277 { "Group Mask3", "netmon_system_trace.group_mask3",
2278 FT_UINT32
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
2280 { &hf_netmon_system_trace_group_mask4
,
2281 { "Group Mask4", "netmon_system_trace.group_mask4",
2282 FT_UINT32
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
2284 { &hf_netmon_system_trace_group_mask5
,
2285 { "Group Mask5", "netmon_system_trace.group_mask5",
2286 FT_UINT32
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
2288 { &hf_netmon_system_trace_group_mask6
,
2289 { "Group Mask6", "netmon_system_trace.group_mask6",
2290 FT_UINT32
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
2292 { &hf_netmon_system_trace_group_mask7
,
2293 { "Group Mask7", "netmon_system_trace.group_mask7",
2294 FT_UINT32
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
2296 { &hf_netmon_system_trace_group_mask8
,
2297 { "Group Mask8", "netmon_system_trace.group_mask8",
2298 FT_UINT32
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
2300 { &hf_netmon_system_trace_kernel_event_version
,
2301 { "Kernel event version", "netmon_system_trace.kernel_event_version",
2302 FT_UINT32
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
2306 static hf_register_info hf_system_config
[] = {
2307 { &hf_netmon_system_config_mhz
,
2308 { "Mhz", "netmon_system_config.mhz",
2309 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
2311 { &hf_netmon_system_config_num_processors
,
2312 { "Number of processors", "netmon_system_config.num_processors",
2313 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
2315 { &hf_netmon_system_config_mem_size
,
2316 { "Memory size", "netmon_system_config.mem_size",
2317 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
2319 { &hf_netmon_system_config_page_size
,
2320 { "Page size", "netmon_system_config.page_size",
2321 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
2323 { &hf_netmon_system_config_allocation_granularity
,
2324 { "Allocation granularity", "netmon_system_config.allocation_granularity",
2325 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
2327 { &hf_netmon_system_config_computer_name
,
2328 { "Computer name", "netmon_system_config.computer_name",
2329 FT_STRING
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
2331 { &hf_netmon_system_config_domain_name
,
2332 { "Domain name", "netmon_system_config.domain_name",
2333 FT_STRING
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
2335 { &hf_netmon_system_config_hyper_threading_flag
,
2336 { "Hyper threading flag", "netmon_system_config.hyper_threading_flag",
2337 FT_UINT64
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
2339 { &hf_netmon_system_config_disk_number
,
2340 { "Disk number", "netmon_system_config.disk_number",
2341 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
2343 { &hf_netmon_system_config_bytes_per_sector
,
2344 { "Bytes per sector", "netmon_system_config.bytes_per_sector",
2345 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
2347 { &hf_netmon_system_config_sectors_per_track
,
2348 { "Sectors per track", "netmon_system_config.sectors_per_track",
2349 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
2351 { &hf_netmon_system_config_tracks_per_cylinder
,
2352 { "Tracks per cylinder", "netmon_system_config.tracks_per_cylinder",
2353 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
2355 { &hf_netmon_system_config_cylinders
,
2356 { "Cylinders", "netmon_system_config.cylinders",
2357 FT_UINT64
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
2359 { &hf_netmon_system_config_scsi_port
,
2360 { "SCSI port", "netmon_system_config.scsi_port",
2361 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
2363 { &hf_netmon_system_config_scsi_path
,
2364 { "SCSI path", "netmon_system_config.scsi_path",
2365 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
2367 { &hf_netmon_system_config_scsi_target
,
2368 { "SCSI target", "netmon_system_config.csi_target",
2369 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
2371 { &hf_netmon_system_config_scsi_lun
,
2372 { "SCSI lun", "netmon_system_config.scsi_lun",
2373 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
2375 { &hf_netmon_system_config_manufacturer
,
2376 { "Manufacturer", "netmon_system_config.manufacturer",
2377 FT_STRING
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
2379 { &hf_netmon_system_config_partition_count
,
2380 { "Partition count", "netmon_system_config.partition_count",
2381 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
2383 { &hf_netmon_system_config_write_cache_enabled
,
2384 { "Write cache enabled", "netmon_system_config.write_cache_enabled",
2385 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
2387 { &hf_netmon_system_config_pad
,
2388 { "Pad", "netmon_system_config.pad",
2389 FT_BYTES
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
2391 { &hf_netmon_system_config_boot_drive_letter
,
2392 { "Boot drive letter", "netmon_system_config.boot_drive_letter",
2393 FT_STRING
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
2395 { &hf_netmon_system_config_spare
,
2396 { "Spare", "netmon_system_config.spare",
2397 FT_STRING
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
2399 { &hf_netmon_system_config_start_offset
,
2400 { "Start offset", "netmon_system_config.start_offset",
2401 FT_UINT64
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
2403 { &hf_netmon_system_config_partition_size
,
2404 { "Partition size", "netmon_system_config.partition_size",
2405 FT_UINT64
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
2407 { &hf_netmon_system_config_size
,
2408 { "Size", "netmon_system_config.size",
2409 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
2411 { &hf_netmon_system_config_drive_type
,
2412 { "Drive type", "netmon_system_config.drive_type",
2413 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
2415 { &hf_netmon_system_config_drive_letter
,
2416 { "Drive letter", "netmon_system_config.drive_letter",
2417 FT_STRING
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
2419 { &hf_netmon_system_config_partition_number
,
2420 { "Partition number", "netmon_system_config.partition_number",
2421 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
2423 { &hf_netmon_system_config_sectors_per_cluster
,
2424 { "Sectors per cluster", "netmon_system_config.sectors_per_cluster",
2425 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
2427 { &hf_netmon_system_config_num_free_clusters
,
2428 { "Number of free clusters", "netmon_system_config.num_free_clusters",
2429 FT_INT64
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
2431 { &hf_netmon_system_config_total_num_clusters
,
2432 { "Total number of clusters", "netmon_system_config.total_num_clusters",
2433 FT_INT64
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
2435 { &hf_netmon_system_config_file_system
,
2436 { "File system", "netmon_system_config.file_system",
2437 FT_STRING
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
2439 { &hf_netmon_system_config_volume_ext
,
2440 { "Volume ext", "netmon_system_config.volume_ext",
2441 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
2443 { &hf_netmon_system_config_physical_addr
,
2444 { "Physical address", "netmon_system_config.physical_addr",
2445 FT_UINT64
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
2447 { &hf_netmon_system_config_physical_addr_len
,
2448 { "Physical address length", "netmon_system_config.physical_addr_len",
2449 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
2451 { &hf_netmon_system_config_ipv4_index
,
2452 { "IPv4 index", "netmon_system_config.ipv4_index",
2453 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
2455 { &hf_netmon_system_config_ipv6_index
,
2456 { "IPv6 index", "netmon_system_config.ipv6_index",
2457 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
2459 { &hf_netmon_system_config_nic_description
,
2460 { "File system", "netmon_system_config.file_system",
2461 FT_STRING
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
2463 { &hf_netmon_system_config_ipaddresses
,
2464 { "IP addresses", "netmon_system_config.ipaddresses",
2465 FT_STRING
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
2467 { &hf_netmon_system_config_dns_server_addresses
,
2468 { "DNS server addresses", "netmon_system_config.dns_server_addresses",
2469 FT_STRING
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
2471 { &hf_netmon_system_config_memory_size
,
2472 { "Memory size", "netmon_system_config.memory_size",
2473 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
2475 { &hf_netmon_system_config_x_resolution
,
2476 { "X resolution", "netmon_system_config.x_resolution",
2477 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
2479 { &hf_netmon_system_config_y_resolution
,
2480 { "Y resolution", "netmon_system_config.y_resolution",
2481 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
2483 { &hf_netmon_system_config_bits_per_pixel
,
2484 { "Bits per pixel", "netmon_system_config.bits_per_pixel",
2485 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
2487 { &hf_netmon_system_config_vrefresh
,
2488 { "VRefresh", "netmon_system_config.vrefresh",
2489 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
2491 { &hf_netmon_system_config_chip_type
,
2492 { "Chip type", "netmon_system_config.chip_type",
2493 FT_STRING
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
2495 { &hf_netmon_system_config_dac_type
,
2496 { "DAC type", "netmon_system_config.dac_type",
2497 FT_STRING
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
2499 { &hf_netmon_system_config_adapter_string
,
2500 { "Adapter string", "netmon_system_config.adapter_string",
2501 FT_STRING
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
2503 { &hf_netmon_system_config_bios_string
,
2504 { "BIOS string", "netmon_system_config.bios_string",
2505 FT_STRING
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
2507 { &hf_netmon_system_config_device_id
,
2508 { "Device ID", "netmon_system_config.device_id",
2509 FT_STRING
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
2511 { &hf_netmon_system_config_state_flags
,
2512 { "State flags", "netmon_system_config.state_flags",
2513 FT_UINT32
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
2515 { &hf_netmon_system_config_process_id
,
2516 { "Process ID", "netmon_system_config.process_id",
2517 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
2519 { &hf_netmon_system_config_service_state
,
2520 { "Service state", "netmon_system_config.service_state",
2521 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
2523 { &hf_netmon_system_config_sub_process_tag
,
2524 { "Subprocess tag", "netmon_system_config.sub_process_tag",
2525 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
2527 { &hf_netmon_system_config_service_name
,
2528 { "Service name", "netmon_system_config.service_name",
2529 FT_STRING
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
2531 { &hf_netmon_system_config_display_name
,
2532 { "Display name", "netmon_system_config.display_name",
2533 FT_STRING
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
2535 { &hf_netmon_system_config_process_name
,
2536 { "Process name", "netmon_system_config.process_name",
2537 FT_STRING
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
2539 { &hf_netmon_system_config_s1
,
2540 { "S1", "netmon_system_config.s1",
2541 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
2543 { &hf_netmon_system_config_s2
,
2544 { "S2", "netmon_system_config.s2",
2545 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
2547 { &hf_netmon_system_config_s3
,
2548 { "S3", "netmon_system_config.s3",
2549 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
2551 { &hf_netmon_system_config_s4
,
2552 { "S4", "netmon_system_config.s4",
2553 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
2555 { &hf_netmon_system_config_s5
,
2556 { "S5", "netmon_system_config.s5",
2557 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
2559 { &hf_netmon_system_config_tcb_table_partitions
,
2560 { "Tcb table partitions", "netmon_system_config.tcb_table_partitions",
2561 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
2563 { &hf_netmon_system_config_max_hash_table_size
,
2564 { "Max hash table size", "netmon_system_config.max_hash_table_size",
2565 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
2567 { &hf_netmon_system_config_max_user_port
,
2568 { "Max user port", "netmon_system_config.max_user_port",
2569 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
2571 { &hf_netmon_system_config_tcp_timed_wait_delay
,
2572 { "TCP timed wait delay", "netmon_system_config.tcp_timed_wait_delay",
2573 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
2575 { &hf_netmon_system_config_irq_affinity
,
2576 { "IRQ affinity", "netmon_system_config.irq_affinity",
2577 FT_UINT64
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
2579 { &hf_netmon_system_config_irq_num
,
2580 { "IRQ", "netmon_system_config.irq_num",
2581 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
2583 { &hf_netmon_system_config_device_desc_len
,
2584 { "Device description length", "netmon_system_config.device_desc_len",
2585 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
2587 { &hf_netmon_system_config_device_desc
,
2588 { "Device description", "netmon_system_config.device_desc",
2589 FT_STRING
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
2591 { &hf_netmon_system_config_friendly_name
,
2592 { "Friendly name", "netmon_system_config.friendly_name",
2593 FT_STRING
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
2595 { &hf_netmon_system_config_device_id_len
,
2596 { "Device ID length", "netmon_system_config.device_id_len",
2597 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
2599 { &hf_netmon_system_config_friendly_name_len
,
2600 { "Friendly name length", "netmon_system_config.friendly_name_len",
2601 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
2603 { &hf_netmon_system_config_target_id
,
2604 { "Target ID", "netmon_system_config.target_id",
2605 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
2607 { &hf_netmon_system_config_device_type
,
2608 { "Device type", "netmon_system_config.device_type",
2609 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
2611 { &hf_netmon_system_config_device_timing_mode
,
2612 { "Device timing mode", "netmon_system_config.device_timing_mode",
2613 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
2615 { &hf_netmon_system_config_location_information_len
,
2616 { "Location information length", "netmon_system_config.location_information_len",
2617 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
2619 { &hf_netmon_system_config_location_information
,
2620 { "Location information", "netmon_system_config.location_information",
2621 FT_STRING
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
2623 { &hf_netmon_system_config_system_manufacturer
,
2624 { "System manufacturer", "netmon_system_config.system_manufacturer",
2625 FT_STRING
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
2627 { &hf_netmon_system_config_system_product_name
,
2628 { "System product name", "netmon_system_config.system_product_name",
2629 FT_STRING
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
2631 { &hf_netmon_system_config_bios_date
,
2632 { "BIOS date", "netmon_system_config.bios_date",
2633 FT_STRING
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
2635 { &hf_netmon_system_config_bios_version
,
2636 { "BIOS version", "netmon_system_config.bios_version",
2637 FT_STRING
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
2639 { &hf_netmon_system_config_load_order_group
,
2640 { "Load order group", "netmon_system_config.load_order_group",
2641 FT_STRING
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
2643 { &hf_netmon_system_config_svc_host_group
,
2644 { "svchost group", "netmon_system_config.svc_host_group",
2645 FT_STRING
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
2647 { &hf_netmon_system_config_irq_group
,
2648 { "IRQ group", "netmon_system_config.irq_group",
2649 FT_UINT16
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
2651 { &hf_netmon_system_config_pdo_name
,
2652 { "PDO name", "netmon_system_config.pdo_name",
2653 FT_STRING
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
2655 { &hf_netmon_system_config_nic_name
,
2656 { "NIC name", "netmon_system_config.nic_name",
2657 FT_STRING
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
2659 { &hf_netmon_system_config_index
,
2660 { "Index", "netmon_system_config.index",
2661 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
2663 { &hf_netmon_system_config_physical_addr_str
,
2664 { "Physical address", "netmon_system_config.physical_addr_str",
2665 FT_STRING
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
2667 { &hf_netmon_system_config_ip_address
,
2668 { "IP address", "netmon_system_config.ip_address",
2669 FT_IPv4
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
2671 { &hf_netmon_system_config_subnet_mask
,
2672 { "Subnet mask", "netmon_system_config.subnet_mask",
2673 FT_IPv4
, BASE_NETMASK
, NULL
, 0x0, NULL
, HFILL
}
2675 { &hf_netmon_system_config_dhcp_server
,
2676 { "DHCP server", "netmon_system_config.dhcp_server",
2677 FT_IPv4
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
2679 { &hf_netmon_system_config_gateway
,
2680 { "Gateway", "netmon_system_config.gateway",
2681 FT_IPv4
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
2683 { &hf_netmon_system_config_primary_wins_server
,
2684 { "Primary WINS server", "netmon_system_config.primary_wins_server",
2685 FT_IPv4
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
2687 { &hf_netmon_system_config_secondary_wins_server
,
2688 { "Secondary WINS server", "netmon_system_config.secondary_wins_server",
2689 FT_IPv4
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
2691 { &hf_netmon_system_config_dns_server1
,
2692 { "DNS server1", "netmon_system_config.dns_server1",
2693 FT_IPv4
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
2695 { &hf_netmon_system_config_dns_server2
,
2696 { "DNS server2", "netmon_system_config.dns_server2",
2697 FT_IPv4
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
2699 { &hf_netmon_system_config_dns_server3
,
2700 { "DNS server3", "netmon_system_config.dns_server3",
2701 FT_IPv4
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
2703 { &hf_netmon_system_config_dns_server4
,
2704 { "DNS server4", "netmon_system_config.dns_server4",
2705 FT_IPv4
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
2707 { &hf_netmon_system_config_data
,
2708 { "Data", "netmon_system_config.data",
2709 FT_UINT32
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
2713 static hf_register_info hf_process
[] = {
2714 { &hf_netmon_process_unique_process_key
,
2715 { "Unique process key", "netmon_process.unique_process_key",
2716 FT_UINT64
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
2718 { &hf_netmon_process_process_id
,
2719 { "Process ID", "netmon_process.process_id",
2720 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
2722 { &hf_netmon_process_parent_id
,
2723 { "Parent ID", "netmon_process.parent_id",
2724 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
2726 { &hf_netmon_process_session_id
,
2727 { "Session ID", "netmon_process.session_id",
2728 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
2730 { &hf_netmon_process_exit_status
,
2731 { "Exit status", "netmon_process.exit_status",
2732 FT_INT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
2734 { &hf_netmon_process_directory_table_base
,
2735 { "Directory table base", "netmon_process.directory_table_base",
2736 FT_UINT64
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
2738 { &hf_netmon_process_unknown
,
2739 { "Unknown", "netmon_process.unknown",
2740 FT_BYTES
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
2742 { &hf_netmon_process_user_sid_revision
,
2743 { "User SID Revision", "netmon_process.user_sid.revision",
2744 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
2746 { &hf_netmon_process_user_sid_subauth_count
,
2747 { "User SID Subauth count", "netmon_process.user_sid.subauth_count",
2748 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
2750 { &hf_netmon_process_user_sid_id
,
2751 { "User SID Identifier Authority", "netmon_process.user_sid.id",
2752 FT_BYTES
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
2754 { &hf_netmon_process_user_sid_authority
,
2755 { "User SID Authority", "netmon_process.user_sid.authority",
2756 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
2758 { &hf_netmon_process_image_file_name
,
2759 { "Image file name", "netmon_process.image_file_name",
2760 FT_STRING
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
2762 { &hf_netmon_process_command_line
,
2763 { "Commandline", "netmon_process.command_line",
2764 FT_STRING
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
2766 { &hf_netmon_process_page_directory_base
,
2767 { "Page directory base", "netmon_process.page_directory_base",
2768 FT_UINT64
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
2770 { &hf_netmon_process_page_fault_count
,
2771 { "Page fault count", "netmon_process.page_fault_count",
2772 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
2774 { &hf_netmon_process_handle_count
,
2775 { "Handle count", "netmon_process.handle_count",
2776 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
2778 { &hf_netmon_process_reserved
,
2779 { "Reserved", "netmon_process.reserved",
2780 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
2782 { &hf_netmon_process_peak_virtual_size
,
2783 { "Peak virtual size", "netmon_process.peak_virtual_size",
2784 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
2786 { &hf_netmon_process_peak_working_set_size
,
2787 { "Peak working set size", "netmon_process.peak_working_set_size",
2788 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
2790 { &hf_netmon_process_peak_page_file_usage
,
2791 { "Peak page file usage", "netmon_process.peak_page_file_usage",
2792 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
2794 { &hf_netmon_process_quota_peak_paged_pool_usage
,
2795 { "Quota peak paged pool usage", "netmon_process.quota_peak_paged_pool_usage",
2796 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
2798 { &hf_netmon_process_quota_peak_non_paged_pool_usage
,
2799 { "Quota peak non-paged pool usage", "netmon_process.quota_peak_non_paged_pool_usage",
2800 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
2802 { &hf_netmon_process_virtual_size
,
2803 { "Virtual size", "netmon_process.virtual_size",
2804 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
2806 { &hf_netmon_process_workingset_size
,
2807 { "Working set size", "netmon_process.workingset_size",
2808 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
2810 { &hf_netmon_process_pagefile_usage
,
2811 { "Pagefile usage", "netmon_process.pagefile_usage",
2812 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
2814 { &hf_netmon_process_quota_paged_pool_usage
,
2815 { "Quota paged pool usage", "netmon_process.quota_paged_pool_usage",
2816 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
2818 { &hf_netmon_process_quota_non_paged_pool_usage
,
2819 { "Quota nonpaged pool usage", "netmon_process.quota_non_paged_pool_usage",
2820 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
2822 { &hf_netmon_process_private_page_count
,
2823 { "Private page count", "netmon_process.private_page_count",
2824 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
2826 { &hf_netmon_process_directory_table_base32
,
2827 { "Directory table base", "netmon_process.directory_table_base32",
2828 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
2832 static int *ett
[] = {
2835 &ett_netmon_event_desc
,
2836 &ett_netmon_event_flags
,
2837 &ett_netmon_event_property
,
2838 &ett_netmon_event_extended_data
,
2840 &ett_netmon_network_info
,
2841 &ett_netmon_network_info_list
,
2842 &ett_netmon_network_info_adapter
,
2843 &ett_netmon_system_trace
,
2844 &ett_netmon_event_buffer_context
,
2845 &ett_netmon_process
,
2847 &ett_netmon_system_config
,
2850 static ei_register_info ei_process
[] = {
2851 { &ei_netmon_process_user_sid
, { "netmon_process.process_user_sid.invalid", PI_MALFORMED
, PI_WARN
, "Invalid SID", EXPFILL
}},
2854 expert_module_t
*expert_process
;
2856 proto_netmon_header
= proto_register_protocol ("Network Monitor Header", "NetMon Header", "netmon_header" );
2857 proto_netmon_event
= proto_register_protocol ("Network Monitor Event", "NetMon Event", "netmon_event" );
2858 proto_netmon_filter
= proto_register_protocol ("Network Monitor Filter", "NetMon Filter", "netmon_filter" );
2859 proto_netmon_network_info
= proto_register_protocol ("Network Monitor Network Info", "NetMon Network Info", "netmon_network_info" );
2860 proto_netmon_system_trace
= proto_register_protocol ("Network Monitor System Trace", "NetMon System Trace", "netmon_system_trace" );
2861 proto_netmon_system_config
= proto_register_protocol ("Network Monitor System Config", "NetMon System Config", "netmon_system_config" );
2862 proto_netmon_process
= proto_register_protocol ("Network Monitor Process", "NetMon Process", "netmon_process" );
2864 provider_id_table
= register_dissector_table("netmon.provider_id", "NetMon Provider IDs", proto_netmon_event
, FT_GUID
, BASE_HEX
);
2866 proto_register_field_array(proto_netmon_header
, hf_header
, array_length(hf_header
));
2867 proto_register_field_array(proto_netmon_event
, hf_event
, array_length(hf_event
));
2868 proto_register_field_array(proto_netmon_filter
, hf_filter
, array_length(hf_filter
));
2869 proto_register_field_array(proto_netmon_network_info
, hf_network_info
, array_length(hf_network_info
));
2870 proto_register_field_array(proto_netmon_system_trace
, hf_system_trace
, array_length(hf_system_trace
));
2871 proto_register_field_array(proto_netmon_system_config
, hf_system_config
, array_length(hf_system_config
));
2872 proto_register_field_array(proto_netmon_process
, hf_process
, array_length(hf_process
));
2873 proto_register_subtree_array(ett
, array_length(ett
));
2875 expert_process
= expert_register_protocol(proto_netmon_process
);
2876 expert_register_field_array(expert_process
, ei_process
, array_length(ei_process
));
2879 void proto_reg_handoff_netmon(void)
2881 dissector_handle_t netmon_event_handle
, netmon_filter_handle
,
2882 netmon_network_info_handle
, netmon_header_handle
,
2883 system_trace_handle
, system_config_handle
, process_handle
;
2885 static guid_key system_trace_guid
= {{ 0x68fdd900, 0x4a3e, 0x11d1, { 0x84, 0xf4, 0x00, 0x00, 0xf8, 0x04, 0x64, 0xe3 }}, 0 };
2886 static guid_key system_config_guid
= {{ 0x01853a65, 0x418f, 0x4f36, { 0xae, 0xfc, 0xdc, 0x0f, 0x1d, 0x2f, 0xd2, 0x35 }}, 0 };
2887 static guid_key process_guid
= {{ 0x3d6fa8d0, 0xfe05, 0x11d0, { 0x9d, 0xda, 0x00, 0xc0, 0x4f, 0xd7, 0xba, 0x7c }}, 0 };
2889 netmon_event_handle
= create_dissector_handle(dissect_netmon_event
, proto_netmon_event
);
2890 netmon_filter_handle
= create_dissector_handle(dissect_netmon_filter
, proto_netmon_filter
);
2891 netmon_network_info_handle
= create_dissector_handle(dissect_netmon_network_info
, proto_netmon_network_info
);
2892 netmon_header_handle
= create_dissector_handle(dissect_netmon_header
, proto_netmon_header
);
2893 system_trace_handle
= create_dissector_handle(dissect_netmon_system_trace
, proto_netmon_system_trace
);
2894 system_config_handle
= create_dissector_handle(dissect_netmon_system_config
, proto_netmon_system_config
);
2895 process_handle
= create_dissector_handle(dissect_netmon_process
, proto_netmon_process
);
2897 dissector_add_uint("wtap_encap", WTAP_ENCAP_NETMON_NET_NETEVENT
, netmon_event_handle
);
2898 dissector_add_uint("wtap_encap", WTAP_ENCAP_ETL
, netmon_event_handle
);
2899 dissector_add_uint("wtap_encap", WTAP_ENCAP_NETMON_NET_FILTER
, netmon_filter_handle
);
2900 dissector_add_uint("wtap_encap", WTAP_ENCAP_NETMON_NETWORK_INFO_EX
, netmon_network_info_handle
);
2901 dissector_add_uint("wtap_encap", WTAP_ENCAP_NETMON_HEADER
, netmon_header_handle
);
2903 dissector_add_guid( "netmon.provider_id", &system_trace_guid
, system_trace_handle
);
2904 dissector_add_guid( "netmon.provider_id", &system_config_guid
, system_config_handle
);
2905 dissector_add_guid( "netmon.provider_id", &process_guid
, process_handle
);
2907 wtap_encap_table
= find_dissector_table("wtap_encap");
2911 * Editor modelines - https://www.wireshark.org/tools/modelines.html
2916 * indent-tabs-mode: t
2919 * vi: set shiftwidth=8 tabstop=8 noexpandtab:
2920 * :indentSize=8:tabSize=8:noTabs=false: