Ethereal-dev: [Ethereal-dev] Native Windows update

Note: This archive is from the project's previous web site, ethereal.com. This list is no longer active.

From: Gerald Combs <gerald@xxxxxxxxxxxx>
Date: Fri, 23 Jul 2004 15:03:19 -0500
Attached is a patch against SVN trunk revision 11486 that contains the
native Windows code I've been working on.  I'd like to drop it into a
Subversion branch in the next few days, but before I do I'd like to make
sure it compiles cleanly on someone else's system.  :)

diff -x entries -urN ethereal/Makefile.common ethereal-win32/Makefile.common
--- ethereal/Makefile.common	2004-07-21 15:27:09.513225800 -0500
+++ ethereal-win32/Makefile.common	2004-07-20 15:58:03.000000000 -0500
@@ -184,6 +184,14 @@
 	tethereal-tap-register.c	\
 	tethereal.c
 
+# wethereal specifics
+wethereal_SOURCES =	\
+	$(ETHEREAL_COMMON_SRC) \
+	alert_box.c	\
+	capture.c	\
+	file.c		\
+	filters.c
+
 # text2pcap specifics
 text2pcap_SOURCES = \
 	text2pcap.c \
diff -x entries -urN ethereal/Makefile.nmake ethereal-win32/Makefile.nmake
--- ethereal/Makefile.nmake	2004-07-23 09:53:14.457110400 -0500
+++ ethereal-win32/Makefile.nmake	2004-07-23 09:52:47.388187200 -0500
@@ -38,6 +38,7 @@
 
 ethereal_OBJECTS = $(ethereal_SOURCES:.c=.obj)
 tethereal_OBJECTS = $(tethereal_SOURCES:.c=.obj)
+wethereal_OBJECTS = $(wethereal_SOURCES:.c=.obj)
 dftest_OBJECTS = $(dftest_SOURCES:.c=.obj)
 
 randpkt_OBJECTS = $(randpkt_SOURCES:.c=.obj)
@@ -78,6 +79,21 @@
 	$(ZLIB_LIBS)
 !ENDIF
 
+wethereal_LIBS= wiretap\wiretap-$(WTAP_VERSION).lib \
+	wsock32.lib user32.lib comctl32.lib \
+	$(GLIB_LIBS) \
+	$(NET_SNMP_DIR)\win32\lib\netsnmp.lib \
+!IFDEF ENABLE_LIBETHEREAL
+	epan\libethereal.lib \
+!ELSE
+	epan\dissectors\dissectors.lib \
+	epan\ethereal.lib \
+	epan\dfilter\dfilter.lib epan\ftypes\ftypes.lib \
+	$(ADNS_LIBS) \
+	$(PCRE_LIBS) \
+	$(ZLIB_LIBS)
+!ENDIF
+
 editcap_LIBS= wiretap\wiretap-$(WTAP_VERSION).lib \
 	wsock32.lib user32.lib \
 	$(GLIB_LIBS)
@@ -106,10 +122,12 @@
 	$(GLIB_LIBS) \
 	$(NET_SNMP_DIR)\win32\lib\netsnmp.lib
 
-EXECUTABLES=ethereal.exe ethereal-gtk2.exe tethereal.exe editcap.exe mergecap.exe text2pcap.exe
+EXECUTABLES=ethereal.exe ethereal-gtk2.exe tethereal.exe wethereal.exe editcap.exe mergecap.exe text2pcap.exe
 
 RESOURCES=image\ethereal.res image\libethereal.res image\tethereal.res image\editcap.res image\mergecap.res image\text2pcap.res image\wiretap.res
 
+wethereal_RESOURCES=xulender\win32-c-sdk\win32-main.res
+
 all: config.h tools image wiretap epan $(EXECUTABLES) $(RESOURCES) doc
 
 packaging: all
@@ -133,8 +151,12 @@
 
 $(RESOURCES): image
 
+$(wethereal_RESOURCES): xulender\win32-c-sdk
+
 wiretap\wiretap-$(WTAP_VERSION).lib: wiretap
 
+xulender\win32-c-sdk\win32-c-sdk.lib: xulender\win32-c-sdk
+
 !IFNDEF GTK1_DIR
 ethereal.exe	: 
 !ELSE
@@ -161,6 +183,12 @@
 		/OUT:tethereal.exe $(conflags) $(conlibsdll) $(LDFLAGS) /SUBSYSTEM:console $(tethereal_LIBS) $(tethereal_OBJECTS) $(EXTRA_OBJECTS) image\tethereal.res
 <<
 
+wethereal.exe	: config.h svnversion.h $(wethereal_OBJECTS) $(EXTRA_OBJECTS) epan xulender\win32-c-sdk $(wethereal_RESOURCES) wiretap\wiretap-$(WTAP_VERSION).lib xulender\win32-c-sdk\win32-c-sdk.lib plugins
+	@echo Linking $@
+	$(LINK) @<<
+		/OUT:wethereal.exe $(guiflags) $(guilibsdll) $(LDFLAGS) /SUBSYSTEM:windows $(wethereal_LIBS) xulender\win32-c-sdk\win32-c-sdk.lib $(wethereal_OBJECTS) $(EXTRA_OBJECTS) $(wethereal_RESOURCES)
+<<
+
 editcap.exe	: config.h editcap.obj getopt.obj wiretap\wiretap-$(WTAP_VERSION).lib image\editcap.res
 	@echo Linking $@
 	$(LINK) @<<
@@ -270,6 +298,8 @@
 	$(MAKE) /$(MAKEFLAGS) -f Makefile.nmake clean
 	cd ../packaging/nsis
 	$(MAKE) /$(MAKEFLAGS) -f Makefile.nmake clean
+	cd ../../xulender/win32-c-sdk
+	$(MAKE) /$(MAKEFLAGS) -f Makefile.nmake clean
 	cd ../..
 
 # Call distclean only, if you would like to remove ALL generated files.
@@ -295,6 +325,8 @@
 	$(MAKE) /$(MAKEFLAGS) -f Makefile.nmake distclean
 	cd ../packaging/nsis
 	$(MAKE) /$(MAKEFLAGS) -f Makefile.nmake distclean
+	cd ../../xulender/win32-c-sdk
+	$(MAKE) /$(MAKEFLAGS) -f Makefile.nmake distclean
 	cd ../..
 
 tools::
@@ -336,6 +368,12 @@
 	$(MAKE) /$(MAKEFLAGS) -f Makefile.nmake
 	cd ..
 
+# XXX - Go to ui instead of leapfrogging over it.
+xulender/win32-c-sdk::
+	cd xulender/win32-c-sdk
+	$(MAKE) /$(MAKEFLAGS) -f Makefile.nmake
+	cd ../..
+
 doc::
 	cd doc
 	$(MAKE) /$(MAKEFLAGS) -f Makefile.nmake
diff -x entries -urN ethereal/epan/dissectors/packet-ncp2222.c ethereal-win32/epan/dissectors/packet-ncp2222.c
--- ethereal/epan/dissectors/packet-ncp2222.c	1969-12-31 18:00:00.000000000 -0600
+++ ethereal-win32/epan/dissectors/packet-ncp2222.c	2004-07-23 10:30:34.277814400 -0500
@@ -0,0 +1,23927 @@
+/*
+ * Generated automatically from ncp2222.py
+ * Do not edit this file manually, as all changes will be lost.
+ */
+
+
+/*
+ * Portions Copyright (c) Gilbert Ramirez 2000-2002
+ * Portions Copyright (c) Novell, Inc. 2000-2003
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
+ */
+
+#ifdef HAVE_CONFIG_H
+# include "config.h"
+#endif
+
+#include <string.h>
+#include <glib.h>
+#include <epan/packet.h>
+#include <epan/conversation.h>
+#include "ptvcursor.h"
+#include "packet-ncp-int.h"
+#include "packet-ncp-nmas.h"
+#include <epan/strutil.h>
+#include "reassemble.h"
+
+/* Function declarations for functions used in proto_register_ncp2222() */
+static void ncp_init_protocol(void);
+static void ncp_postseq_cleanup(void);
+
+/* Endianness macros */
+#define BE		0
+#define LE		1
+#define NO_ENDIANNESS	0
+
+#define NO_LENGTH	-1
+
+/* We use this int-pointer as a special flag in ptvc_record's */
+static int ptvc_struct_int_storage;
+#define PTVC_STRUCT	(&ptvc_struct_int_storage)
+
+/* Values used in the count-variable ("var"/"repeat") logic. */
+#define NUM_REPEAT_VARS	3
+guint repeat_vars[NUM_REPEAT_VARS]; 
+#define NO_VAR		NUM_REPEAT_VARS
+#define NO_REPEAT	NUM_REPEAT_VARS
+
+#define REQ_COND_SIZE_CONSTANT	0
+#define REQ_COND_SIZE_VARIABLE	1
+#define NO_REQ_COND_SIZE	0
+
+
+#define NTREE   0x00020000
+#define NDEPTH  0x00000002
+#define NREV    0x00000004
+#define NFLAGS  0x00000008
+
+
+static int hf_ncp_func = -1;
+static int hf_ncp_length = -1;
+static int hf_ncp_subfunc = -1;
+static int hf_ncp_fragment_handle = -1;
+static int hf_ncp_completion_code = -1;
+static int hf_ncp_connection_status = -1;
+static int hf_ncp_req_frame_num = -1;
+static int hf_ncp_req_frame_time = -1;
+static int hf_ncp_fragment_size = -1;
+static int hf_ncp_message_size = -1;
+static int hf_ncp_nds_flag = -1;
+static int hf_ncp_nds_verb = -1;
+static int hf_ping_version = -1;
+static int hf_nds_version = -1;
+static int hf_nds_flags = -1;
+static int hf_nds_reply_depth = -1;
+static int hf_nds_reply_rev = -1;
+static int hf_nds_reply_flags = -1;
+static int hf_nds_p1type = -1;
+static int hf_nds_uint32value = -1;
+static int hf_nds_bit1 = -1;
+static int hf_nds_bit2 = -1;
+static int hf_nds_bit3 = -1;
+static int hf_nds_bit4 = -1;
+static int hf_nds_bit5 = -1;
+static int hf_nds_bit6 = -1;
+static int hf_nds_bit7 = -1;
+static int hf_nds_bit8 = -1;
+static int hf_nds_bit9 = -1;
+static int hf_nds_bit10 = -1;
+static int hf_nds_bit11 = -1;
+static int hf_nds_bit12 = -1;
+static int hf_nds_bit13 = -1;
+static int hf_nds_bit14 = -1;
+static int hf_nds_bit15 = -1;
+static int hf_nds_bit16 = -1;
+static int hf_bit1outflags = -1;
+static int hf_bit2outflags = -1;
+static int hf_bit3outflags = -1;
+static int hf_bit4outflags = -1;
+static int hf_bit5outflags = -1;
+static int hf_bit6outflags = -1;
+static int hf_bit7outflags = -1;
+static int hf_bit8outflags = -1;
+static int hf_bit9outflags = -1;
+static int hf_bit10outflags = -1;
+static int hf_bit11outflags = -1;
+static int hf_bit12outflags = -1;
+static int hf_bit13outflags = -1;
+static int hf_bit14outflags = -1;
+static int hf_bit15outflags = -1;
+static int hf_bit16outflags = -1;
+static int hf_bit1nflags = -1;
+static int hf_bit2nflags = -1;
+static int hf_bit3nflags = -1;
+static int hf_bit4nflags = -1;
+static int hf_bit5nflags = -1;
+static int hf_bit6nflags = -1;
+static int hf_bit7nflags = -1;
+static int hf_bit8nflags = -1;
+static int hf_bit9nflags = -1;
+static int hf_bit10nflags = -1;
+static int hf_bit11nflags = -1;
+static int hf_bit12nflags = -1;
+static int hf_bit13nflags = -1;
+static int hf_bit14nflags = -1;
+static int hf_bit15nflags = -1;
+static int hf_bit16nflags = -1;
+static int hf_bit1rflags = -1;
+static int hf_bit2rflags = -1;
+static int hf_bit3rflags = -1;
+static int hf_bit4rflags = -1;
+static int hf_bit5rflags = -1;
+static int hf_bit6rflags = -1;
+static int hf_bit7rflags = -1;
+static int hf_bit8rflags = -1;
+static int hf_bit9rflags = -1;
+static int hf_bit10rflags = -1;
+static int hf_bit11rflags = -1;
+static int hf_bit12rflags = -1;
+static int hf_bit13rflags = -1;
+static int hf_bit14rflags = -1;
+static int hf_bit15rflags = -1;
+static int hf_bit16rflags = -1;
+static int hf_bit1cflags = -1;
+static int hf_bit2cflags = -1;
+static int hf_bit3cflags = -1;
+static int hf_bit4cflags = -1;
+static int hf_bit5cflags = -1;
+static int hf_bit6cflags = -1;
+static int hf_bit7cflags = -1;
+static int hf_bit8cflags = -1;
+static int hf_bit9cflags = -1;
+static int hf_bit10cflags = -1;
+static int hf_bit11cflags = -1;
+static int hf_bit12cflags = -1;
+static int hf_bit13cflags = -1;
+static int hf_bit14cflags = -1;
+static int hf_bit15cflags = -1;
+static int hf_bit16cflags = -1;
+static int hf_bit1acflags = -1;
+static int hf_bit2acflags = -1;
+static int hf_bit3acflags = -1;
+static int hf_bit4acflags = -1;
+static int hf_bit5acflags = -1;
+static int hf_bit6acflags = -1;
+static int hf_bit7acflags = -1;
+static int hf_bit8acflags = -1;
+static int hf_bit9acflags = -1;
+static int hf_bit10acflags = -1;
+static int hf_bit11acflags = -1;
+static int hf_bit12acflags = -1;
+static int hf_bit13acflags = -1;
+static int hf_bit14acflags = -1;
+static int hf_bit15acflags = -1;
+static int hf_bit16acflags = -1;
+static int hf_bit1vflags = -1;
+static int hf_bit2vflags = -1;
+static int hf_bit3vflags = -1;
+static int hf_bit4vflags = -1;
+static int hf_bit5vflags = -1;
+static int hf_bit6vflags = -1;
+static int hf_bit7vflags = -1;
+static int hf_bit8vflags = -1;
+static int hf_bit9vflags = -1;
+static int hf_bit10vflags = -1;
+static int hf_bit11vflags = -1;
+static int hf_bit12vflags = -1;
+static int hf_bit13vflags = -1;
+static int hf_bit14vflags = -1;
+static int hf_bit15vflags = -1;
+static int hf_bit16vflags = -1;
+static int hf_bit1eflags = -1;
+static int hf_bit2eflags = -1;
+static int hf_bit3eflags = -1;
+static int hf_bit4eflags = -1;
+static int hf_bit5eflags = -1;
+static int hf_bit6eflags = -1;
+static int hf_bit7eflags = -1;
+static int hf_bit8eflags = -1;
+static int hf_bit9eflags = -1;
+static int hf_bit10eflags = -1;
+static int hf_bit11eflags = -1;
+static int hf_bit12eflags = -1;
+static int hf_bit13eflags = -1;
+static int hf_bit14eflags = -1;
+static int hf_bit15eflags = -1;
+static int hf_bit16eflags = -1;
+static int hf_bit1infoflagsl = -1;
+static int hf_bit2infoflagsl = -1;
+static int hf_bit3infoflagsl = -1;
+static int hf_bit4infoflagsl = -1;
+static int hf_bit5infoflagsl = -1;
+static int hf_bit6infoflagsl = -1;
+static int hf_bit7infoflagsl = -1;
+static int hf_bit8infoflagsl = -1;
+static int hf_bit9infoflagsl = -1;
+static int hf_bit10infoflagsl = -1;
+static int hf_bit11infoflagsl = -1;
+static int hf_bit12infoflagsl = -1;
+static int hf_bit13infoflagsl = -1;
+static int hf_bit14infoflagsl = -1;
+static int hf_bit15infoflagsl = -1;
+static int hf_bit16infoflagsl = -1;
+static int hf_bit1infoflagsh = -1;
+static int hf_bit2infoflagsh = -1;
+static int hf_bit3infoflagsh = -1;
+static int hf_bit4infoflagsh = -1;
+static int hf_bit5infoflagsh = -1;
+static int hf_bit6infoflagsh = -1;
+static int hf_bit7infoflagsh = -1;
+static int hf_bit8infoflagsh = -1;
+static int hf_bit9infoflagsh = -1;
+static int hf_bit10infoflagsh = -1;
+static int hf_bit11infoflagsh = -1;
+static int hf_bit12infoflagsh = -1;
+static int hf_bit13infoflagsh = -1;
+static int hf_bit14infoflagsh = -1;
+static int hf_bit15infoflagsh = -1;
+static int hf_bit16infoflagsh = -1;
+static int hf_bit1lflags = -1;
+static int hf_bit2lflags = -1;
+static int hf_bit3lflags = -1;
+static int hf_bit4lflags = -1;
+static int hf_bit5lflags = -1;
+static int hf_bit6lflags = -1;
+static int hf_bit7lflags = -1;
+static int hf_bit8lflags = -1;
+static int hf_bit9lflags = -1;
+static int hf_bit10lflags = -1;
+static int hf_bit11lflags = -1;
+static int hf_bit12lflags = -1;
+static int hf_bit13lflags = -1;
+static int hf_bit14lflags = -1;
+static int hf_bit15lflags = -1;
+static int hf_bit16lflags = -1;
+static int hf_bit1l1flagsl = -1;
+static int hf_bit2l1flagsl = -1;
+static int hf_bit3l1flagsl = -1;
+static int hf_bit4l1flagsl = -1;
+static int hf_bit5l1flagsl = -1;
+static int hf_bit6l1flagsl = -1;
+static int hf_bit7l1flagsl = -1;
+static int hf_bit8l1flagsl = -1;
+static int hf_bit9l1flagsl = -1;
+static int hf_bit10l1flagsl = -1;
+static int hf_bit11l1flagsl = -1;
+static int hf_bit12l1flagsl = -1;
+static int hf_bit13l1flagsl = -1;
+static int hf_bit14l1flagsl = -1;
+static int hf_bit15l1flagsl = -1;
+static int hf_bit16l1flagsl = -1;
+static int hf_bit1l1flagsh = -1;
+static int hf_bit2l1flagsh = -1;
+static int hf_bit3l1flagsh = -1;
+static int hf_bit4l1flagsh = -1;
+static int hf_bit5l1flagsh = -1;
+static int hf_bit6l1flagsh = -1;
+static int hf_bit7l1flagsh = -1;
+static int hf_bit8l1flagsh = -1;
+static int hf_bit9l1flagsh = -1;
+static int hf_bit10l1flagsh = -1;
+static int hf_bit11l1flagsh = -1;
+static int hf_bit12l1flagsh = -1;
+static int hf_bit13l1flagsh = -1;
+static int hf_bit14l1flagsh = -1;
+static int hf_bit15l1flagsh = -1;
+static int hf_bit16l1flagsh = -1;
+static int hf_nds_tree_name = -1;
+static int hf_nds_reply_error = -1;
+static int hf_nds_net = -1;
+static int hf_nds_node = -1;
+static int hf_nds_socket = -1;
+static int hf_add_ref_ip = -1;
+static int hf_add_ref_udp = -1;
+static int hf_add_ref_tcp = -1;
+static int hf_referral_record = -1;
+static int hf_referral_addcount = -1;
+static int hf_nds_port = -1;
+static int hf_mv_string = -1;
+static int hf_nds_syntax = -1;
+static int hf_value_string = -1;
+static int hf_nds_buffer_size = -1;
+static int hf_nds_ver = -1;
+static int hf_nds_nflags = -1;
+static int hf_nds_scope = -1;
+static int hf_nds_name = -1;
+static int hf_nds_comm_trans = -1;
+static int hf_nds_tree_trans = -1;
+static int hf_nds_iteration = -1;
+static int hf_nds_eid = -1;
+static int hf_nds_info_type = -1;
+static int hf_nds_all_attr = -1;
+static int hf_nds_req_flags = -1;
+static int hf_nds_attr = -1;
+static int hf_nds_crc = -1;
+static int hf_nds_referrals = -1;
+static int hf_nds_result_flags = -1;
+static int hf_nds_tag_string = -1;
+static int hf_value_bytes = -1;
+static int hf_replica_type = -1;
+static int hf_replica_state = -1;
+static int hf_replica_number = -1;
+static int hf_min_nds_ver = -1;
+static int hf_nds_ver_include = -1;
+static int hf_nds_ver_exclude = -1;
+static int hf_nds_es = -1;
+static int hf_es_type = -1;
+static int hf_delim_string = -1;
+static int hf_rdn_string = -1;
+static int hf_nds_revent = -1;
+static int hf_nds_rnum = -1;
+static int hf_nds_name_type = -1;
+static int hf_nds_rflags = -1;
+static int hf_nds_eflags = -1;
+static int hf_nds_depth = -1;
+static int hf_nds_class_def_type = -1;
+static int hf_nds_classes = -1;
+static int hf_nds_return_all_classes = -1;
+static int hf_nds_stream_flags = -1;
+static int hf_nds_stream_name = -1;
+static int hf_nds_file_handle = -1;
+static int hf_nds_file_size = -1;
+static int hf_nds_dn_output_type = -1;
+static int hf_nds_nested_output_type = -1;
+static int hf_nds_output_delimiter = -1;
+static int hf_nds_output_entry_specifier = -1;
+static int hf_es_value = -1;
+static int hf_es_rdn_count = -1;
+static int hf_nds_replica_num = -1;
+static int hf_nds_event_num = -1;
+static int hf_es_seconds = -1;
+static int hf_nds_compare_results = -1;
+static int hf_nds_parent = -1;
+static int hf_nds_name_filter = -1;
+static int hf_nds_class_filter = -1;
+static int hf_nds_time_filter = -1;
+static int hf_nds_partition_root_id = -1;
+static int hf_nds_replicas = -1;
+static int hf_nds_purge = -1;
+static int hf_nds_local_partition = -1;
+static int hf_partition_busy = -1;
+static int hf_nds_number_of_changes = -1;
+static int hf_sub_count = -1;
+static int hf_nds_revision = -1;
+static int hf_nds_base_class = -1;
+static int hf_nds_relative_dn = -1;
+static int hf_nds_root_dn = -1;
+static int hf_nds_parent_dn = -1;
+static int hf_deref_base = -1;
+static int hf_nds_entry_info = -1;
+static int hf_nds_base = -1;
+static int hf_nds_privileges = -1;
+static int hf_nds_vflags = -1;
+static int hf_nds_value_len = -1;
+static int hf_nds_cflags = -1;
+static int hf_nds_acflags = -1;
+static int hf_nds_asn1 = -1;
+static int hf_nds_upper = -1;
+static int hf_nds_lower = -1;
+static int hf_nds_trustee_dn = -1;
+static int hf_nds_attribute_dn = -1;
+static int hf_nds_acl_add = -1;
+static int hf_nds_acl_del = -1;
+static int hf_nds_att_add = -1;
+static int hf_nds_att_del = -1;
+static int hf_nds_keep = -1;
+static int hf_nds_new_rdn = -1;
+static int hf_nds_time_delay = -1;
+static int hf_nds_root_name = -1;
+static int hf_nds_new_part_id = -1;
+static int hf_nds_child_part_id = -1;
+static int hf_nds_master_part_id = -1;
+static int hf_nds_target_name = -1;
+static int hf_nds_super = -1;
+static int hf_bit1pingflags2 = -1;
+static int hf_bit2pingflags2 = -1;
+static int hf_bit3pingflags2 = -1;
+static int hf_bit4pingflags2 = -1;
+static int hf_bit5pingflags2 = -1;
+static int hf_bit6pingflags2 = -1;
+static int hf_bit7pingflags2 = -1;
+static int hf_bit8pingflags2 = -1;
+static int hf_bit9pingflags2 = -1;
+static int hf_bit10pingflags2 = -1;
+static int hf_bit11pingflags2 = -1;
+static int hf_bit12pingflags2 = -1;
+static int hf_bit13pingflags2 = -1;
+static int hf_bit14pingflags2 = -1;
+static int hf_bit15pingflags2 = -1;
+static int hf_bit16pingflags2 = -1;
+static int hf_bit1pingflags1 = -1;
+static int hf_bit2pingflags1 = -1;
+static int hf_bit3pingflags1 = -1;
+static int hf_bit4pingflags1 = -1;
+static int hf_bit5pingflags1 = -1;
+static int hf_bit6pingflags1 = -1;
+static int hf_bit7pingflags1 = -1;
+static int hf_bit8pingflags1 = -1;
+static int hf_bit9pingflags1 = -1;
+static int hf_bit10pingflags1 = -1;
+static int hf_bit11pingflags1 = -1;
+static int hf_bit12pingflags1 = -1;
+static int hf_bit13pingflags1 = -1;
+static int hf_bit14pingflags1 = -1;
+static int hf_bit15pingflags1 = -1;
+static int hf_bit16pingflags1 = -1;
+static int hf_bit1pingpflags1 = -1;
+static int hf_bit2pingpflags1 = -1;
+static int hf_bit3pingpflags1 = -1;
+static int hf_bit4pingpflags1 = -1;
+static int hf_bit5pingpflags1 = -1;
+static int hf_bit6pingpflags1 = -1;
+static int hf_bit7pingpflags1 = -1;
+static int hf_bit8pingpflags1 = -1;
+static int hf_bit9pingpflags1 = -1;
+static int hf_bit10pingpflags1 = -1;
+static int hf_bit11pingpflags1 = -1;
+static int hf_bit12pingpflags1 = -1;
+static int hf_bit13pingpflags1 = -1;
+static int hf_bit14pingpflags1 = -1;
+static int hf_bit15pingpflags1 = -1;
+static int hf_bit16pingpflags1 = -1;
+static int hf_bit1pingvflags1 = -1;
+static int hf_bit2pingvflags1 = -1;
+static int hf_bit3pingvflags1 = -1;
+static int hf_bit4pingvflags1 = -1;
+static int hf_bit5pingvflags1 = -1;
+static int hf_bit6pingvflags1 = -1;
+static int hf_bit7pingvflags1 = -1;
+static int hf_bit8pingvflags1 = -1;
+static int hf_bit9pingvflags1 = -1;
+static int hf_bit10pingvflags1 = -1;
+static int hf_bit11pingvflags1 = -1;
+static int hf_bit12pingvflags1 = -1;
+static int hf_bit13pingvflags1 = -1;
+static int hf_bit14pingvflags1 = -1;
+static int hf_bit15pingvflags1 = -1;
+static int hf_bit16pingvflags1 = -1;
+static int hf_nds_letter_ver = -1;
+static int hf_nds_os_ver = -1;
+static int hf_nds_lic_flags = -1;
+static int hf_nds_ds_time = -1;
+static int hf_nds_ping_version = -1;
+static int hf_nds_search_scope = -1;
+static int hf_nds_num_objects = -1;
+static int hf_bit1siflags = -1;
+static int hf_bit2siflags = -1;
+static int hf_bit3siflags = -1;
+static int hf_bit4siflags = -1;
+static int hf_bit5siflags = -1;
+static int hf_bit6siflags = -1;
+static int hf_bit7siflags = -1;
+static int hf_bit8siflags = -1;
+static int hf_bit9siflags = -1;
+static int hf_bit10siflags = -1;
+static int hf_bit11siflags = -1;
+static int hf_bit12siflags = -1;
+static int hf_bit13siflags = -1;
+static int hf_bit14siflags = -1;
+static int hf_bit15siflags = -1;
+static int hf_bit16siflags = -1;
+static int hf_nds_segments = -1;
+static int hf_nds_segment = -1;
+static int hf_nds_segment_overlap = -1;
+static int hf_nds_segment_overlap_conflict = -1;
+static int hf_nds_segment_multiple_tails = -1;
+static int hf_nds_segment_too_long_segment = -1;
+static int hf_nds_segment_error = -1;
+
+
+	
+static int hf_ncp_64_bit_flag = -1;
+static int hf_ncp_Service_type = -1;
+static int hf_ncp_abort_q_flag = -1;
+static int hf_ncp_abs_min_time_since_file_delete = -1;
+static int hf_ncp_acc_mode_comp = -1;
+static int hf_ncp_acc_mode_deny_read = -1;
+static int hf_ncp_acc_mode_deny_write = -1;
+static int hf_ncp_acc_mode_read = -1;
+static int hf_ncp_acc_mode_write = -1;
+static int hf_ncp_acc_priv_create = -1;
+static int hf_ncp_acc_priv_delete = -1;
+static int hf_ncp_acc_priv_modify = -1;
+static int hf_ncp_acc_priv_open = -1;
+static int hf_ncp_acc_priv_parent = -1;
+static int hf_ncp_acc_priv_read = -1;
+static int hf_ncp_acc_priv_search = -1;
+static int hf_ncp_acc_priv_write = -1;
+static int hf_ncp_acc_rights1_create = -1;
+static int hf_ncp_acc_rights1_delete = -1;
+static int hf_ncp_acc_rights1_modify = -1;
+static int hf_ncp_acc_rights1_open = -1;
+static int hf_ncp_acc_rights1_parent = -1;
+static int hf_ncp_acc_rights1_read = -1;
+static int hf_ncp_acc_rights1_search = -1;
+static int hf_ncp_acc_rights1_supervisor = -1;
+static int hf_ncp_acc_rights1_write = -1;
+static int hf_ncp_acc_rights_create = -1;
+static int hf_ncp_acc_rights_delete = -1;
+static int hf_ncp_acc_rights_modify = -1;
+static int hf_ncp_acc_rights_open = -1;
+static int hf_ncp_acc_rights_parent = -1;
+static int hf_ncp_acc_rights_read = -1;
+static int hf_ncp_acc_rights_search = -1;
+static int hf_ncp_acc_rights_write = -1;
+static int hf_ncp_accel_cache_node_write = -1;
+static int hf_ncp_accepted_max_size = -1;
+static int hf_ncp_access_control = -1;
+static int hf_ncp_access_date = -1;
+static int hf_ncp_access_mode = -1;
+static int hf_ncp_access_privileges = -1;
+static int hf_ncp_access_rights_mask = -1;
+static int hf_ncp_access_rights_mask_word = -1;
+static int hf_ncp_account_balance = -1;
+static int hf_ncp_acct_version = -1;
+static int hf_ncp_act_flag_create = -1;
+static int hf_ncp_act_flag_open = -1;
+static int hf_ncp_act_flag_replace = -1;
+static int hf_ncp_action_flag = -1;
+static int hf_ncp_active_conn_bit_list = -1;
+static int hf_ncp_active_indexed_files = -1;
+static int hf_ncp_actual_max_bindery_objects = -1;
+static int hf_ncp_actual_max_indexed_files = -1;
+static int hf_ncp_actual_max_open_files = -1;
+static int hf_ncp_actual_max_sim_trans = -1;
+static int hf_ncp_actual_max_used_directory_entries = -1;
+static int hf_ncp_actual_max_used_routing_buffers = -1;
+static int hf_ncp_actual_response_count = -1;
+static int hf_ncp_add_nm_spc_and_vol = -1;
+static int hf_ncp_address = -1;
+static int hf_ncp_aes_event_count = -1;
+static int hf_ncp_afp_entry_id = -1;
+static int hf_ncp_alloc_avail_byte = -1;
+static int hf_ncp_alloc_blck = -1;
+static int hf_ncp_alloc_blck_already_wait = -1;
+static int hf_ncp_alloc_blck_frm_avail = -1;
+static int hf_ncp_alloc_blck_frm_lru = -1;
+static int hf_ncp_alloc_blck_i_had_to_wait = -1;
+static int hf_ncp_alloc_blck_i_had_to_wait_for = -1;
+static int hf_ncp_alloc_free_count = -1;
+static int hf_ncp_alloc_waiting = -1;
+static int hf_ncp_allocate_mode = -1;
+static int hf_ncp_allocation_block_size = -1;
+static int hf_ncp_already_doing_realloc = -1;
+static int hf_ncp_application_number = -1;
+static int hf_ncp_archived_date = -1;
+static int hf_ncp_archived_time = -1;
+static int hf_ncp_archiver_id = -1;
+static int hf_ncp_associated_name_space = -1;
+static int hf_ncp_async_internl_dsk_get = -1;
+static int hf_ncp_async_internl_dsk_get_need_to_alloc = -1;
+static int hf_ncp_async_internl_dsk_get_someone_beat = -1;
+static int hf_ncp_async_read_error = -1;
+static int hf_ncp_att_def16_archive = -1;
+static int hf_ncp_att_def16_execute = -1;
+static int hf_ncp_att_def16_hidden = -1;
+static int hf_ncp_att_def16_read_audit = -1;
+static int hf_ncp_att_def16_ro = -1;
+static int hf_ncp_att_def16_shareable = -1;
+static int hf_ncp_att_def16_sub_only = -1;
+static int hf_ncp_att_def16_system = -1;
+static int hf_ncp_att_def16_transaction = -1;
+static int hf_ncp_att_def16_write_audit = -1;
+static int hf_ncp_att_def32_archive = -1;
+static int hf_ncp_att_def32_execute = -1;
+static int hf_ncp_att_def32_hidden = -1;
+static int hf_ncp_att_def32_read_audit = -1;
+static int hf_ncp_att_def32_ro = -1;
+static int hf_ncp_att_def32_shareable = -1;
+static int hf_ncp_att_def32_sub_only = -1;
+static int hf_ncp_att_def32_system = -1;
+static int hf_ncp_att_def32_transaction = -1;
+static int hf_ncp_att_def32_write_audit = -1;
+static int hf_ncp_att_def_archive = -1;
+static int hf_ncp_att_def_comp = -1;
+static int hf_ncp_att_def_cpyinhibit = -1;
+static int hf_ncp_att_def_delinhibit = -1;
+static int hf_ncp_att_def_execute = -1;
+static int hf_ncp_att_def_hidden = -1;
+static int hf_ncp_att_def_im_comp = -1;
+static int hf_ncp_att_def_purge = -1;
+static int hf_ncp_att_def_reninhibit = -1;
+static int hf_ncp_att_def_ro = -1;
+static int hf_ncp_att_def_shareable = -1;
+static int hf_ncp_att_def_sub_only = -1;
+static int hf_ncp_att_def_system = -1;
+static int hf_ncp_attach_during_processing = -1;
+static int hf_ncp_attach_while_processing_attach = -1;
+static int hf_ncp_attached_indexed_files = -1;
+static int hf_ncp_attr_def = -1;
+static int hf_ncp_attr_def_16 = -1;
+static int hf_ncp_attr_def_32 = -1;
+static int hf_ncp_attribute_valid_flag = -1;
+static int hf_ncp_attributes = -1;
+static int hf_ncp_audit_enable_flag = -1;
+static int hf_ncp_audit_file_max_size = -1;
+static int hf_ncp_audit_file_size = -1;
+static int hf_ncp_audit_file_size_threshold = -1;
+static int hf_ncp_audit_file_ver_date = -1;
+static int hf_ncp_audit_flag = -1;
+static int hf_ncp_audit_handle = -1;
+static int hf_ncp_audit_id = -1;
+static int hf_ncp_audit_id_type = -1;
+static int hf_ncp_audit_record_count = -1;
+static int hf_ncp_audit_ver_date = -1;
+static int hf_ncp_auditing_flags = -1;
+static int hf_ncp_avail_space = -1;
+static int hf_ncp_available_blocks = -1;
+static int hf_ncp_available_clusters = -1;
+static int hf_ncp_available_dir_entries = -1;
+static int hf_ncp_available_directory_slots = -1;
+static int hf_ncp_available_indexed_files = -1;
+static int hf_ncp_background_aged_writes = -1;
+static int hf_ncp_background_dirty_writes = -1;
+static int hf_ncp_bad_logical_connection_count = -1;
+static int hf_ncp_banner_name = -1;
+static int hf_ncp_base_directory_id = -1;
+static int hf_ncp_being_aborted = -1;
+static int hf_ncp_being_processed = -1;
+static int hf_ncp_big_forged_packet = -1;
+static int hf_ncp_big_invalid_packet = -1;
+static int hf_ncp_big_invalid_slot = -1;
+static int hf_ncp_big_read_being_torn_down = -1;
+static int hf_ncp_big_read_do_it_over = -1;
+static int hf_ncp_big_read_invalid_mess = -1;
+static int hf_ncp_big_read_no_data_avail = -1;
+static int hf_ncp_big_read_phy_read_err = -1;
+static int hf_ncp_big_read_trying_to_read = -1;
+static int hf_ncp_big_repeat_the_file_read = -1;
+static int hf_ncp_big_return_abort_mess = -1;
+static int hf_ncp_big_send_extra_cc_count = -1;
+static int hf_ncp_big_still_transmitting = -1;
+static int hf_ncp_big_write_being_abort = -1;
+static int hf_ncp_big_write_being_torn_down = -1;
+static int hf_ncp_big_write_inv_message_num = -1;
+static int hf_ncp_bindery_context = -1;
+static int hf_ncp_bit_map = -1;
+static int hf_ncp_block_number = -1;
+static int hf_ncp_block_size = -1;
+static int hf_ncp_block_size_in_sectors = -1;
+static int hf_ncp_board_installed = -1;
+static int hf_ncp_board_number = -1;
+static int hf_ncp_board_numbers = -1;
+static int hf_ncp_buffer_size = -1;
+static int hf_ncp_bumped_out_of_order = -1;
+static int hf_ncp_bus_string = -1;
+static int hf_ncp_bus_type = -1;
+static int hf_ncp_bytes_actually_transferred = -1;
+static int hf_ncp_bytes_read = -1;
+static int hf_ncp_bytes_to_copy = -1;
+static int hf_ncp_bytes_written = -1;
+static int hf_ncp_cache_allocations = -1;
+static int hf_ncp_cache_block_scrapped = -1;
+static int hf_ncp_cache_buffer_count = -1;
+static int hf_ncp_cache_buffer_size = -1;
+static int hf_ncp_cache_byte_to_block = -1;
+static int hf_ncp_cache_dirty_block_thresh = -1;
+static int hf_ncp_cache_dirty_wait_time = -1;
+static int hf_ncp_cache_full_write_requests = -1;
+static int hf_ncp_cache_get_requests = -1;
+static int hf_ncp_cache_hit_on_unavailable_block = -1;
+static int hf_ncp_cache_hits = -1;
+static int hf_ncp_cache_max_concur_writes = -1;
+static int hf_ncp_cache_misses = -1;
+static int hf_ncp_cache_partial_write_requests = -1;
+static int hf_ncp_cache_read_requests = -1;
+static int hf_ncp_cache_used_while_check = -1;
+static int hf_ncp_cache_write_requests = -1;
+static int hf_ncp_category_name = -1;
+static int hf_ncp_cc_file_handle = -1;
+static int hf_ncp_cc_function = -1;
+static int hf_ncp_cfg_max_simultaneous_transactions = -1;
+static int hf_ncp_change_bits = -1;
+static int hf_ncp_change_bits_acc_date = -1;
+static int hf_ncp_change_bits_adate = -1;
+static int hf_ncp_change_bits_aid = -1;
+static int hf_ncp_change_bits_atime = -1;
+static int hf_ncp_change_bits_cdate = -1;
+static int hf_ncp_change_bits_ctime = -1;
+static int hf_ncp_change_bits_fatt = -1;
+static int hf_ncp_change_bits_max_acc_mask = -1;
+static int hf_ncp_change_bits_max_space = -1;
+static int hf_ncp_change_bits_modify = -1;
+static int hf_ncp_change_bits_owner = -1;
+static int hf_ncp_change_bits_udate = -1;
+static int hf_ncp_change_bits_uid = -1;
+static int hf_ncp_change_bits_utime = -1;
+static int hf_ncp_channel_state = -1;
+static int hf_ncp_channel_synchronization_state = -1;
+static int hf_ncp_charge_amount = -1;
+static int hf_ncp_charge_information = -1;
+static int hf_ncp_checksum_error_count = -1;
+static int hf_ncp_checksuming = -1;
+static int hf_ncp_client_comp_flag = -1;
+static int hf_ncp_client_id_number = -1;
+static int hf_ncp_client_list = -1;
+static int hf_ncp_client_list_cnt = -1;
+static int hf_ncp_client_list_len = -1;
+static int hf_ncp_client_name = -1;
+static int hf_ncp_client_record_area = -1;
+static int hf_ncp_client_station = -1;
+static int hf_ncp_client_station_long = -1;
+static int hf_ncp_client_task_number = -1;
+static int hf_ncp_client_task_number_long = -1;
+static int hf_ncp_cluster_count = -1;
+static int hf_ncp_clusters_used_by_directories = -1;
+static int hf_ncp_clusters_used_by_extended_dirs = -1;
+static int hf_ncp_clusters_used_by_fat = -1;
+static int hf_ncp_cmd_flags_advanced = -1;
+static int hf_ncp_cmd_flags_hidden = -1;
+static int hf_ncp_cmd_flags_later = -1;
+static int hf_ncp_cmd_flags_secure = -1;
+static int hf_ncp_cmd_flags_startup_only = -1;
+static int hf_ncp_cmpbyteincount = -1;
+static int hf_ncp_cmpbyteoutcnt = -1;
+static int hf_ncp_cmphibyteincnt = -1;
+static int hf_ncp_cmphibyteoutcnt = -1;
+static int hf_ncp_cmphitickcnt = -1;
+static int hf_ncp_cmphitickhigh = -1;
+static int hf_ncp_co_proc_string = -1;
+static int hf_ncp_co_processor_flag = -1;
+static int hf_ncp_com_cnts = -1;
+static int hf_ncp_comment = -1;
+static int hf_ncp_comment_type = -1;
+static int hf_ncp_complete_signatures = -1;
+static int hf_ncp_compress_volume = -1;
+static int hf_ncp_compressed_data_streams_count = -1;
+static int hf_ncp_compressed_limbo_data_streams_count = -1;
+static int hf_ncp_compressed_sectors = -1;
+static int hf_ncp_compression_ios_limit = -1;
+static int hf_ncp_compression_lower_limit = -1;
+static int hf_ncp_compression_stage = -1;
+static int hf_ncp_config_major_vn = -1;
+static int hf_ncp_config_minor_vn = -1;
+static int hf_ncp_configuration_description = -1;
+static int hf_ncp_configuration_text = -1;
+static int hf_ncp_configured_max_bindery_objects = -1;
+static int hf_ncp_configured_max_open_files = -1;
+static int hf_ncp_configured_max_routing_buffers = -1;
+static int hf_ncp_conn_being_aborted = -1;
+static int hf_ncp_conn_ctrl_bits = -1;
+static int hf_ncp_conn_list = -1;
+static int hf_ncp_conn_list_count = -1;
+static int hf_ncp_conn_list_len = -1;
+static int hf_ncp_conn_number_byte = -1;
+static int hf_ncp_conn_number_word = -1;
+static int hf_ncp_connected_lan = -1;
+static int hf_ncp_connection_list = -1;
+static int hf_ncp_connection_number = -1;
+static int hf_ncp_connection_number_list = -1;
+static int hf_ncp_connection_service_type = -1;
+static int hf_ncp_connection_type = -1;
+static int hf_ncp_connections_in_use = -1;
+static int hf_ncp_connections_max_used = -1;
+static int hf_ncp_connections_supported_max = -1;
+static int hf_ncp_control_being_torn_down = -1;
+static int hf_ncp_control_flags = -1;
+static int hf_ncp_control_invalid_message_number = -1;
+static int hf_ncp_controller_drive_number = -1;
+static int hf_ncp_controller_number = -1;
+static int hf_ncp_controller_type = -1;
+static int hf_ncp_cookie_1 = -1;
+static int hf_ncp_cookie_2 = -1;
+static int hf_ncp_copies = -1;
+static int hf_ncp_copyright = -1;
+static int hf_ncp_counter_mask = -1;
+static int hf_ncp_cpu_number = -1;
+static int hf_ncp_cpu_string = -1;
+static int hf_ncp_cpu_type = -1;
+static int hf_ncp_creation_date = -1;
+static int hf_ncp_creation_time = -1;
+static int hf_ncp_creator_id = -1;
+static int hf_ncp_creator_name_space_number = -1;
+static int hf_ncp_credit_limit = -1;
+static int hf_ncp_ctl_bad_ack_frag_list = -1;
+static int hf_ncp_ctl_no_data_read = -1;
+static int hf_ncp_ctrl_flags = -1;
+static int hf_ncp_cur_blk_being_dcompress = -1;
+static int hf_ncp_cur_comp_blks = -1;
+static int hf_ncp_cur_initial_blks = -1;
+static int hf_ncp_cur_inter_blks = -1;
+static int hf_ncp_cur_num_of_r_tags = -1;
+static int hf_ncp_curr_num_cache_buff = -1;
+static int hf_ncp_curr_ref_id = -1;
+static int hf_ncp_current_changed_fats = -1;
+static int hf_ncp_current_entries = -1;
+static int hf_ncp_current_form_type = -1;
+static int hf_ncp_current_lfs_counters = -1;
+static int hf_ncp_current_open_files = -1;
+static int hf_ncp_current_server_time = -1;
+static int hf_ncp_current_servers = -1;
+static int hf_ncp_current_space = -1;
+static int hf_ncp_current_trans_count = -1;
+static int hf_ncp_current_used_bindery_objects = -1;
+static int hf_ncp_currently_used_routing_buffers = -1;
+static int hf_ncp_custom_cnts = -1;
+static int hf_ncp_custom_count = -1;
+static int hf_ncp_custom_counters = -1;
+static int hf_ncp_custom_string = -1;
+static int hf_ncp_custom_var_value = -1;
+static int hf_ncp_data = -1;
+static int hf_ncp_data_fork_first_fat = -1;
+static int hf_ncp_data_fork_len = -1;
+static int hf_ncp_data_fork_size = -1;
+static int hf_ncp_data_size = -1;
+static int hf_ncp_data_stream = -1;
+static int hf_ncp_data_stream_name = -1;
+static int hf_ncp_data_stream_number = -1;
+static int hf_ncp_data_stream_size = -1;
+static int hf_ncp_data_stream_space_alloc = -1;
+static int hf_ncp_data_streams_count = -1;
+static int hf_ncp_dc_dirty_wait_time = -1;
+static int hf_ncp_dc_double_read_flag = -1;
+static int hf_ncp_dc_max_concurrent_writes = -1;
+static int hf_ncp_dc_min_non_ref_time = -1;
+static int hf_ncp_dc_wait_time_before_new_buff = -1;
+static int hf_ncp_dead_mirror_table = -1;
+static int hf_ncp_dealloc_being_proc = -1;
+static int hf_ncp_dealloc_forged_packet = -1;
+static int hf_ncp_dealloc_invalid_slot = -1;
+static int hf_ncp_dealloc_still_transmit = -1;
+static int hf_ncp_decpbyteincount = -1;
+static int hf_ncp_decpbyteoutcnt = -1;
+static int hf_ncp_decphibyteincnt = -1;
+static int hf_ncp_decphibyteoutcnt = -1;
+static int hf_ncp_decphitickcnt = -1;
+static int hf_ncp_decphitickhigh = -1;
+static int hf_ncp_defined_data_streams = -1;
+static int hf_ncp_defined_name_spaces = -1;
+static int hf_ncp_delete_existing_file_flag = -1;
+static int hf_ncp_delete_id = -1;
+static int hf_ncp_deleted_date = -1;
+static int hf_ncp_deleted_file_time = -1;
+static int hf_ncp_deleted_time = -1;
+static int hf_ncp_deny_read_count = -1;
+static int hf_ncp_deny_write_count = -1;
+static int hf_ncp_description_string = -1;
+static int hf_ncp_desired_access_rights = -1;
+static int hf_ncp_desired_response_count = -1;
+static int hf_ncp_dest_component_count = -1;
+static int hf_ncp_dest_dir_handle = -1;
+static int hf_ncp_dest_name_space = -1;
+static int hf_ncp_dest_path = -1;
+static int hf_ncp_detach_during_processing = -1;
+static int hf_ncp_detach_for_bad_connection_number = -1;
+static int hf_ncp_dir_base = -1;
+static int hf_ncp_dir_count = -1;
+static int hf_ncp_dir_handle = -1;
+static int hf_ncp_dir_handle_long = -1;
+static int hf_ncp_dir_handle_name = -1;
+static int hf_ncp_directory_access_rights = -1;
+static int hf_ncp_directory_attributes = -1;
+static int hf_ncp_directory_entry_number = -1;
+static int hf_ncp_directory_entry_number_word = -1;
+static int hf_ncp_directory_id = -1;
+static int hf_ncp_directory_name = -1;
+static int hf_ncp_directory_name_14 = -1;
+static int hf_ncp_directory_name_len = -1;
+static int hf_ncp_directory_number = -1;
+static int hf_ncp_directory_path = -1;
+static int hf_ncp_directory_services_object_id = -1;
+static int hf_ncp_directory_stamp = -1;
+static int hf_ncp_dirty_cache_buffers = -1;
+static int hf_ncp_disable_brdcasts = -1;
+static int hf_ncp_disable_personal_brdcasts = -1;
+static int hf_ncp_disable_wdog_messages = -1;
+static int hf_ncp_disk_channel_number = -1;
+static int hf_ncp_disk_channel_table = -1;
+static int hf_ncp_disk_space_limit = -1;
+static int hf_ncp_dm_flags = -1;
+static int hf_ncp_dm_info_entries = -1;
+static int hf_ncp_dm_info_level = -1;
+static int hf_ncp_dm_major_version = -1;
+static int hf_ncp_dm_minor_version = -1;
+static int hf_ncp_dm_present_flag = -1;
+static int hf_ncp_dma_channels_used = -1;
+static int hf_ncp_dos_directory_base = -1;
+static int hf_ncp_dos_directory_entry = -1;
+static int hf_ncp_dos_directory_entry_number = -1;
+static int hf_ncp_dos_file_attributes = -1;
+static int hf_ncp_dos_parent_directory_entry = -1;
+static int hf_ncp_dos_sequence = -1;
+static int hf_ncp_drive_cylinders = -1;
+static int hf_ncp_drive_definition_string = -1;
+static int hf_ncp_drive_heads = -1;
+static int hf_ncp_drive_mapping_table = -1;
+static int hf_ncp_drive_mirror_table = -1;
+static int hf_ncp_drive_removable_flag = -1;
+static int hf_ncp_drive_size = -1;
+static int hf_ncp_driver_board_name = -1;
+static int hf_ncp_driver_log_name = -1;
+static int hf_ncp_driver_short_name = -1;
+static int hf_ncp_dsired_acc_rights_compat = -1;
+static int hf_ncp_dsired_acc_rights_del_file_cls = -1;
+static int hf_ncp_dsired_acc_rights_deny_r = -1;
+static int hf_ncp_dsired_acc_rights_deny_w = -1;
+static int hf_ncp_dsired_acc_rights_read_o = -1;
+static int hf_ncp_dsired_acc_rights_w_thru = -1;
+static int hf_ncp_dsired_acc_rights_write_o = -1;
+static int hf_ncp_dst_ea_flags = -1;
+static int hf_ncp_dst_ns_indicator = -1;
+static int hf_ncp_dst_queue_id = -1;
+static int hf_ncp_dup_is_being_sent = -1;
+static int hf_ncp_duplicate_replies_sent = -1;
+static int hf_ncp_dyn_mem_struct_cur = -1;
+static int hf_ncp_dyn_mem_struct_max = -1;
+static int hf_ncp_dyn_mem_struct_total = -1;
+static int hf_ncp_ea_access_flag = -1;
+static int hf_ncp_ea_bytes_written = -1;
+static int hf_ncp_ea_count = -1;
+static int hf_ncp_ea_data_size = -1;
+static int hf_ncp_ea_data_size_duplicated = -1;
+static int hf_ncp_ea_deep_freeze = -1;
+static int hf_ncp_ea_delete_privileges = -1;
+static int hf_ncp_ea_duplicate_count = -1;
+static int hf_ncp_ea_error_codes = -1;
+static int hf_ncp_ea_flags = -1;
+static int hf_ncp_ea_handle = -1;
+static int hf_ncp_ea_handle_or_netware_handle_or_volume = -1;
+static int hf_ncp_ea_header_being_enlarged = -1;
+static int hf_ncp_ea_in_progress = -1;
+static int hf_ncp_ea_key = -1;
+static int hf_ncp_ea_key_size = -1;
+static int hf_ncp_ea_key_size_duplicated = -1;
+static int hf_ncp_ea_need_bit_flag = -1;
+static int hf_ncp_ea_new_tally_used = -1;
+static int hf_ncp_ea_permanent_memory = -1;
+static int hf_ncp_ea_read_privileges = -1;
+static int hf_ncp_ea_score_card_present = -1;
+static int hf_ncp_ea_system_ea_only = -1;
+static int hf_ncp_ea_tally_need_update = -1;
+static int hf_ncp_ea_value = -1;
+static int hf_ncp_ea_value_length = -1;
+static int hf_ncp_ea_value_rep = -1;
+static int hf_ncp_ea_write_in_progress = -1;
+static int hf_ncp_ea_write_privileges = -1;
+static int hf_ncp_ecb_cxl_fails = -1;
+static int hf_ncp_echo_socket = -1;
+static int hf_ncp_effective_rights = -1;
+static int hf_ncp_effective_rights_create = -1;
+static int hf_ncp_effective_rights_delete = -1;
+static int hf_ncp_effective_rights_modify = -1;
+static int hf_ncp_effective_rights_open = -1;
+static int hf_ncp_effective_rights_parental = -1;
+static int hf_ncp_effective_rights_read = -1;
+static int hf_ncp_effective_rights_search = -1;
+static int hf_ncp_effective_rights_write = -1;
+static int hf_ncp_enable_brdcasts = -1;
+static int hf_ncp_enable_personal_brdcasts = -1;
+static int hf_ncp_enable_wdog_messages = -1;
+static int hf_ncp_encryption = -1;
+static int hf_ncp_enqueued_send_cnt = -1;
+static int hf_ncp_enum_info_account = -1;
+static int hf_ncp_enum_info_auth = -1;
+static int hf_ncp_enum_info_lock = -1;
+static int hf_ncp_enum_info_mask = -1;
+static int hf_ncp_enum_info_name = -1;
+static int hf_ncp_enum_info_print = -1;
+static int hf_ncp_enum_info_stats = -1;
+static int hf_ncp_enum_info_time = -1;
+static int hf_ncp_enum_info_transport = -1;
+static int hf_ncp_err_doing_async_read = -1;
+static int hf_ncp_error_read_last_fat = -1;
+static int hf_ncp_event_offset = -1;
+static int hf_ncp_event_time = -1;
+static int hf_ncp_expiration_time = -1;
+static int hf_ncp_ext_info = -1;
+static int hf_ncp_ext_info_64_bit_fs = -1;
+static int hf_ncp_ext_info_access = -1;
+static int hf_ncp_ext_info_dos_name = -1;
+static int hf_ncp_ext_info_effective = -1;
+static int hf_ncp_ext_info_flush = -1;
+static int hf_ncp_ext_info_mac_date = -1;
+static int hf_ncp_ext_info_mac_finder = -1;
+static int hf_ncp_ext_info_newstyle = -1;
+static int hf_ncp_ext_info_parental = -1;
+static int hf_ncp_ext_info_sibling = -1;
+static int hf_ncp_ext_info_update = -1;
+static int hf_ncp_ext_router_active_flag = -1;
+static int hf_ncp_extended_attribute_extants_used = -1;
+static int hf_ncp_extended_attributes_defined = -1;
+static int hf_ncp_extra_extra_use_count_node_count = -1;
+static int hf_ncp_extra_use_count_node_count = -1;
+static int hf_ncp_f_size_64bit = -1;
+static int hf_ncp_failed_alloc_req = -1;
+static int hf_ncp_fat_moved = -1;
+static int hf_ncp_fat_scan_errors = -1;
+static int hf_ncp_fat_write_err = -1;
+static int hf_ncp_fat_write_errors = -1;
+static int hf_ncp_fatal_fat_write_errors = -1;
+static int hf_ncp_fields_len_table = -1;
+static int hf_ncp_file_count = -1;
+static int hf_ncp_file_date = -1;
+static int hf_ncp_file_dir_win = -1;
+static int hf_ncp_file_execute_type = -1;
+static int hf_ncp_file_ext_attr = -1;
+static int hf_ncp_file_flags = -1;
+static int hf_ncp_file_handle = -1;
+static int hf_ncp_file_limbo = -1;
+static int hf_ncp_file_list_count = -1;
+static int hf_ncp_file_lock_count = -1;
+static int hf_ncp_file_mode = -1;
+static int hf_ncp_file_name = -1;
+static int hf_ncp_file_name_12 = -1;
+static int hf_ncp_file_name_14 = -1;
+static int hf_ncp_file_name_len = -1;
+static int hf_ncp_file_offset = -1;
+static int hf_ncp_file_path = -1;
+static int hf_ncp_file_size = -1;
+static int hf_ncp_file_system_id = -1;
+static int hf_ncp_file_time = -1;
+static int hf_ncp_file_write_flags = -1;
+static int hf_ncp_file_write_state = -1;
+static int hf_ncp_filler = -1;
+static int hf_ncp_finder_attr = -1;
+static int hf_ncp_finder_attr_bundle = -1;
+static int hf_ncp_finder_attr_desktop = -1;
+static int hf_ncp_finder_attr_invisible = -1;
+static int hf_ncp_first_packet_isnt_a_write = -1;
+static int hf_ncp_fixed_bit_mask = -1;
+static int hf_ncp_fixed_bits_defined = -1;
+static int hf_ncp_flag_bits = -1;
+static int hf_ncp_flags = -1;
+static int hf_ncp_flags_def = -1;
+static int hf_ncp_flush_time = -1;
+static int hf_ncp_folder_flag = -1;
+static int hf_ncp_force_flag = -1;
+static int hf_ncp_forged_detached_requests = -1;
+static int hf_ncp_forged_packet = -1;
+static int hf_ncp_fork_count = -1;
+static int hf_ncp_fork_indicator = -1;
+static int hf_ncp_form_type = -1;
+static int hf_ncp_form_type_count = -1;
+static int hf_ncp_found_some_mem = -1;
+static int hf_ncp_fractional_time = -1;
+static int hf_ncp_fragger_handle = -1;
+static int hf_ncp_fragment_write_occurred = -1;
+static int hf_ncp_free_blocks = -1;
+static int hf_ncp_free_directory_entries = -1;
+static int hf_ncp_freeable_limbo_sectors = -1;
+static int hf_ncp_freed_clusters = -1;
+static int hf_ncp_fs_engine_flag = -1;
+static int hf_ncp_full_name = -1;
+static int hf_ncp_generic_block_size = -1;
+static int hf_ncp_generic_capacity = -1;
+static int hf_ncp_generic_cartridge_type = -1;
+static int hf_ncp_generic_child_count = -1;
+static int hf_ncp_generic_ctl_mask = -1;
+static int hf_ncp_generic_func_mask = -1;
+static int hf_ncp_generic_ident_time = -1;
+static int hf_ncp_generic_ident_type = -1;
+static int hf_ncp_generic_label = -1;
+static int hf_ncp_generic_media_slot = -1;
+static int hf_ncp_generic_media_type = -1;
+static int hf_ncp_generic_name = -1;
+static int hf_ncp_generic_object_uniq_id = -1;
+static int hf_ncp_generic_parent_count = -1;
+static int hf_ncp_generic_pref_unit_size = -1;
+static int hf_ncp_generic_sib_count = -1;
+static int hf_ncp_generic_spec_info_sz = -1;
+static int hf_ncp_generic_status = -1;
+static int hf_ncp_generic_type = -1;
+static int hf_ncp_generic_unit_size = -1;
+static int hf_ncp_get_ecb_buf = -1;
+static int hf_ncp_get_ecb_fails = -1;
+static int hf_ncp_get_set_flag = -1;
+static int hf_ncp_guid = -1;
+static int hf_ncp_had_an_out_of_order = -1;
+static int hf_ncp_handle_flag = -1;
+static int hf_ncp_handle_info_level = -1;
+static int hf_ncp_hardware_rx_mismatch_count = -1;
+static int hf_ncp_held_bytes_read = -1;
+static int hf_ncp_held_bytes_write = -1;
+static int hf_ncp_held_conn_time = -1;
+static int hf_ncp_hold_amount = -1;
+static int hf_ncp_hold_cancel_amount = -1;
+static int hf_ncp_hold_time = -1;
+static int hf_ncp_holder_id = -1;
+static int hf_ncp_hops_to_net = -1;
+static int hf_ncp_horiz_location = -1;
+static int hf_ncp_host_address = -1;
+static int hf_ncp_hot_fix_blocks_available = -1;
+static int hf_ncp_hot_fix_disabled = -1;
+static int hf_ncp_hot_fix_table_size = -1;
+static int hf_ncp_hot_fix_table_start = -1;
+static int hf_ncp_huge_bit_mask = -1;
+static int hf_ncp_huge_bits_defined = -1;
+static int hf_ncp_huge_data = -1;
+static int hf_ncp_huge_data_used = -1;
+static int hf_ncp_huge_state_info = -1;
+static int hf_ncp_i_ran_out_someone_else_did_it_0 = -1;
+static int hf_ncp_i_ran_out_someone_else_did_it_1 = -1;
+static int hf_ncp_i_ran_out_someone_else_did_it_2 = -1;
+static int hf_ncp_id_get_no_read_no_wait = -1;
+static int hf_ncp_id_get_no_read_no_wait_alloc = -1;
+static int hf_ncp_id_get_no_read_no_wait_buffer = -1;
+static int hf_ncp_id_get_no_read_no_wait_no_alloc = -1;
+static int hf_ncp_id_get_no_read_no_wait_no_alloc_alloc = -1;
+static int hf_ncp_id_get_no_read_no_wait_no_alloc_sema = -1;
+static int hf_ncp_id_get_no_read_no_wait_sema = -1;
+static int hf_ncp_identification_number = -1;
+static int hf_ncp_ignored_rx_pkts = -1;
+static int hf_ncp_in_use = -1;
+static int hf_ncp_incoming_packet_discarded_no_dgroup = -1;
+static int hf_ncp_index_number = -1;
+static int hf_ncp_info_count = -1;
+static int hf_ncp_info_flags = -1;
+static int hf_ncp_info_flags_all_attr = -1;
+static int hf_ncp_info_flags_all_dirbase_num = -1;
+static int hf_ncp_info_flags_dos_attr = -1;
+static int hf_ncp_info_flags_dos_time = -1;
+static int hf_ncp_info_flags_ds_sizes = -1;
+static int hf_ncp_info_flags_ea_present = -1;
+static int hf_ncp_info_flags_effect_rights = -1;
+static int hf_ncp_info_flags_flags = -1;
+static int hf_ncp_info_flags_flush_time = -1;
+static int hf_ncp_info_flags_ids = -1;
+static int hf_ncp_info_flags_mac_finder = -1;
+static int hf_ncp_info_flags_mac_time = -1;
+static int hf_ncp_info_flags_max_access_mask = -1;
+static int hf_ncp_info_flags_name = -1;
+static int hf_ncp_info_flags_ns_attr = -1;
+static int hf_ncp_info_flags_prnt_base_id = -1;
+static int hf_ncp_info_flags_ref_count = -1;
+static int hf_ncp_info_flags_security = -1;
+static int hf_ncp_info_flags_sibling_cnt = -1;
+static int hf_ncp_info_flags_type = -1;
+static int hf_ncp_info_level_num = -1;
+static int hf_ncp_info_mask = -1;
+static int hf_ncp_info_mask_c_name_space = -1;
+static int hf_ncp_info_mask_dosname = -1;
+static int hf_ncp_info_mask_name = -1;
+static int hf_ncp_inh_revoke_create = -1;
+static int hf_ncp_inh_revoke_delete = -1;
+static int hf_ncp_inh_revoke_modify = -1;
+static int hf_ncp_inh_revoke_open = -1;
+static int hf_ncp_inh_revoke_parent = -1;
+static int hf_ncp_inh_revoke_read = -1;
+static int hf_ncp_inh_revoke_search = -1;
+static int hf_ncp_inh_revoke_supervisor = -1;
+static int hf_ncp_inh_revoke_write = -1;
+static int hf_ncp_inh_rights_create = -1;
+static int hf_ncp_inh_rights_delete = -1;
+static int hf_ncp_inh_rights_modify = -1;
+static int hf_ncp_inh_rights_open = -1;
+static int hf_ncp_inh_rights_parent = -1;
+static int hf_ncp_inh_rights_read = -1;
+static int hf_ncp_inh_rights_search = -1;
+static int hf_ncp_inh_rights_supervisor = -1;
+static int hf_ncp_inh_rights_write = -1;
+static int hf_ncp_inheritance_revoke_mask = -1;
+static int hf_ncp_inherited_rights_mask = -1;
+static int hf_ncp_initial_semaphore_value = -1;
+static int hf_ncp_inspect_size = -1;
+static int hf_ncp_internet_bridge_version = -1;
+static int hf_ncp_internl_dsk_get = -1;
+static int hf_ncp_internl_dsk_get_need_to_alloc = -1;
+static int hf_ncp_internl_dsk_get_no_read = -1;
+static int hf_ncp_internl_dsk_get_no_read_alloc = -1;
+static int hf_ncp_internl_dsk_get_no_read_someone_beat = -1;
+static int hf_ncp_internl_dsk_get_no_wait = -1;
+static int hf_ncp_internl_dsk_get_no_wait_need = -1;
+static int hf_ncp_internl_dsk_get_no_wait_no_blk = -1;
+static int hf_ncp_internl_dsk_get_part_read = -1;
+static int hf_ncp_internl_dsk_get_read_err = -1;
+static int hf_ncp_internl_dsk_get_someone_beat = -1;
+static int hf_ncp_internl_dsk_write = -1;
+static int hf_ncp_internl_dsk_write_alloc = -1;
+static int hf_ncp_internl_dsk_write_someone_beat = -1;
+static int hf_ncp_interrupt_numbers_used = -1;
+static int hf_ncp_invalid_control_req = -1;
+static int hf_ncp_invalid_req_type = -1;
+static int hf_ncp_invalid_sequence_number = -1;
+static int hf_ncp_invalid_slot = -1;
+static int hf_ncp_io_addresses_used = -1;
+static int hf_ncp_io_engine_flag = -1;
+static int hf_ncp_io_error_count = -1;
+static int hf_ncp_io_flag = -1;
+static int hf_ncp_ipx_aes_event = -1;
+static int hf_ncp_ipx_ecb_cancel_fail = -1;
+static int hf_ncp_ipx_get_ecb_fail = -1;
+static int hf_ncp_ipx_get_ecb_req = -1;
+static int hf_ncp_ipx_get_lcl_targ_fail = -1;
+static int hf_ncp_ipx_listen_ecb = -1;
+static int hf_ncp_ipx_malform_pkt = -1;
+static int hf_ncp_ipx_max_conf_sock = -1;
+static int hf_ncp_ipx_max_open_sock = -1;
+static int hf_ncp_ipx_not_my_network = -1;
+static int hf_ncp_ipx_open_sock_fail = -1;
+static int hf_ncp_ipx_postponed_aes = -1;
+static int hf_ncp_ipx_send_pkt = -1;
+static int hf_ncp_items_changed = -1;
+static int hf_ncp_items_checked = -1;
+static int hf_ncp_items_count = -1;
+static int hf_ncp_items_in_list = -1;
+static int hf_ncp_items_in_packet = -1;
+static int hf_ncp_job_control1_file_open = -1;
+static int hf_ncp_job_control1_job_recovery = -1;
+static int hf_ncp_job_control1_operator_hold = -1;
+static int hf_ncp_job_control1_reservice = -1;
+static int hf_ncp_job_control1_user_hold = -1;
+static int hf_ncp_job_control_file_open = -1;
+static int hf_ncp_job_control_flags = -1;
+static int hf_ncp_job_control_flags_word = -1;
+static int hf_ncp_job_control_job_recovery = -1;
+static int hf_ncp_job_control_operator_hold = -1;
+static int hf_ncp_job_control_reservice = -1;
+static int hf_ncp_job_control_user_hold = -1;
+static int hf_ncp_job_count = -1;
+static int hf_ncp_job_file_handle = -1;
+static int hf_ncp_job_file_handle_long = -1;
+static int hf_ncp_job_file_name = -1;
+static int hf_ncp_job_number = -1;
+static int hf_ncp_job_number_long = -1;
+static int hf_ncp_job_position = -1;
+static int hf_ncp_job_position_word = -1;
+static int hf_ncp_job_type = -1;
+static int hf_ncp_lan_driver_number = -1;
+static int hf_ncp_lan_drv_bd_inst = -1;
+static int hf_ncp_lan_drv_bd_num = -1;
+static int hf_ncp_lan_drv_card_id = -1;
+static int hf_ncp_lan_drv_card_name = -1;
+static int hf_ncp_lan_drv_dma_usage1 = -1;
+static int hf_ncp_lan_drv_dma_usage2 = -1;
+static int hf_ncp_lan_drv_flags = -1;
+static int hf_ncp_lan_drv_interrupt1 = -1;
+static int hf_ncp_lan_drv_interrupt2 = -1;
+static int hf_ncp_lan_drv_io_ports_and_ranges_1 = -1;
+static int hf_ncp_lan_drv_io_ports_and_ranges_2 = -1;
+static int hf_ncp_lan_drv_io_ports_and_ranges_3 = -1;
+static int hf_ncp_lan_drv_io_ports_and_ranges_4 = -1;
+static int hf_ncp_lan_drv_io_reserved = -1;
+static int hf_ncp_lan_drv_line_speed = -1;
+static int hf_ncp_lan_drv_link = -1;
+static int hf_ncp_lan_drv_log_name = -1;
+static int hf_ncp_lan_drv_major_ver = -1;
+static int hf_ncp_lan_drv_max_rcv_size = -1;
+static int hf_ncp_lan_drv_max_size = -1;
+static int hf_ncp_lan_drv_media_id = -1;
+static int hf_ncp_lan_drv_mem_decode_0 = -1;
+static int hf_ncp_lan_drv_mem_decode_1 = -1;
+static int hf_ncp_lan_drv_mem_length_0 = -1;
+static int hf_ncp_lan_drv_mem_length_1 = -1;
+static int hf_ncp_lan_drv_minor_ver = -1;
+static int hf_ncp_lan_drv_rcv_size = -1;
+static int hf_ncp_lan_drv_reserved = -1;
+static int hf_ncp_lan_drv_share = -1;
+static int hf_ncp_lan_drv_slot = -1;
+static int hf_ncp_lan_drv_snd_retries = -1;
+static int hf_ncp_lan_drv_src_route = -1;
+static int hf_ncp_lan_drv_trans_time = -1;
+static int hf_ncp_lan_dvr_cfg_major_vrs = -1;
+static int hf_ncp_lan_dvr_cfg_minor_vrs = -1;
+static int hf_ncp_lan_dvr_mode_flags = -1;
+static int hf_ncp_lan_dvr_node_addr = -1;
+static int hf_ncp_large_internet_packets = -1;
+static int hf_ncp_last_access_date = -1;
+static int hf_ncp_last_access_time = -1;
+static int hf_ncp_last_garbage_collect = -1;
+static int hf_ncp_last_instance = -1;
+static int hf_ncp_last_record_seen = -1;
+static int hf_ncp_last_search_index = -1;
+static int hf_ncp_last_seen = -1;
+static int hf_ncp_last_sequence_number = -1;
+static int hf_ncp_last_time_rx_buff_was_alloc = -1;
+static int hf_ncp_length_64bit = -1;
+static int hf_ncp_level = -1;
+static int hf_ncp_lfs_counters = -1;
+static int hf_ncp_limb_count = -1;
+static int hf_ncp_limbo_data_streams_count = -1;
+static int hf_ncp_limbo_used = -1;
+static int hf_ncp_loaded_name_spaces = -1;
+static int hf_ncp_local_connection_id = -1;
+static int hf_ncp_local_login_info_ccode = -1;
+static int hf_ncp_local_max_packet_size = -1;
+static int hf_ncp_local_max_recv_size = -1;
+static int hf_ncp_local_max_send_size = -1;
+static int hf_ncp_local_target_socket = -1;
+static int hf_ncp_lock_area_len = -1;
+static int hf_ncp_lock_areas_start_offset = -1;
+static int hf_ncp_lock_flag = -1;
+static int hf_ncp_lock_name = -1;
+static int hf_ncp_lock_status = -1;
+static int hf_ncp_lock_timeout = -1;
+static int hf_ncp_lock_type = -1;
+static int hf_ncp_locked = -1;
+static int hf_ncp_log_file_flag_high = -1;
+static int hf_ncp_log_file_flag_low = -1;
+static int hf_ncp_log_flag_call_back = -1;
+static int hf_ncp_log_flag_lock_file = -1;
+static int hf_ncp_log_ttl_rx_pkts = -1;
+static int hf_ncp_log_ttl_tx_pkts = -1;
+static int hf_ncp_logged_count = -1;
+static int hf_ncp_logged_object_id = -1;
+static int hf_ncp_logical_connection_number = -1;
+static int hf_ncp_logical_drive_count = -1;
+static int hf_ncp_logical_drive_number = -1;
+static int hf_ncp_logical_lock_threshold = -1;
+static int hf_ncp_logical_record_name = -1;
+static int hf_ncp_login_expiration_time = -1;
+static int hf_ncp_login_key = -1;
+static int hf_ncp_login_name = -1;
+static int hf_ncp_long_name = -1;
+static int hf_ncp_lru_block_was_dirty = -1;
+static int hf_ncp_lru_sit_time = -1;
+static int hf_ncp_mac_attr = -1;
+static int hf_ncp_mac_attr_archive = -1;
+static int hf_ncp_mac_attr_execute_only = -1;
+static int hf_ncp_mac_attr_hidden = -1;
+static int hf_ncp_mac_attr_index = -1;
+static int hf_ncp_mac_attr_r_audit = -1;
+static int hf_ncp_mac_attr_r_only = -1;
+static int hf_ncp_mac_attr_share = -1;
+static int hf_ncp_mac_attr_smode1 = -1;
+static int hf_ncp_mac_attr_smode2 = -1;
+static int hf_ncp_mac_attr_smode3 = -1;
+static int hf_ncp_mac_attr_subdirectory = -1;
+static int hf_ncp_mac_attr_system = -1;
+static int hf_ncp_mac_attr_transaction = -1;
+static int hf_ncp_mac_attr_w_audit = -1;
+static int hf_ncp_mac_backup_date = -1;
+static int hf_ncp_mac_backup_time = -1;
+static int hf_ncp_mac_base_directory_id = -1;
+static int hf_ncp_mac_create_date = -1;
+static int hf_ncp_mac_create_time = -1;
+static int hf_ncp_mac_destination_base_id = -1;
+static int hf_ncp_mac_finder_info = -1;
+static int hf_ncp_mac_last_seen_id = -1;
+static int hf_ncp_mac_root_ids = -1;
+static int hf_ncp_mac_source_base_id = -1;
+static int hf_ncp_major_version = -1;
+static int hf_ncp_map_hash_node_count = -1;
+static int hf_ncp_max_byte_cnt = -1;
+static int hf_ncp_max_bytes = -1;
+static int hf_ncp_max_data_streams = -1;
+static int hf_ncp_max_dir_depth = -1;
+static int hf_ncp_max_dirty_time = -1;
+static int hf_ncp_max_num_of_conn = -1;
+static int hf_ncp_max_num_of_dir_cache_buff = -1;
+static int hf_ncp_max_num_of_lans = -1;
+static int hf_ncp_max_num_of_media_types = -1;
+static int hf_ncp_max_num_of_medias = -1;
+static int hf_ncp_max_num_of_nme_sps = -1;
+static int hf_ncp_max_num_of_protocols = -1;
+static int hf_ncp_max_num_of_spool_pr = -1;
+static int hf_ncp_max_num_of_stacks = -1;
+static int hf_ncp_max_num_of_users = -1;
+static int hf_ncp_max_num_of_vol = -1;
+static int hf_ncp_max_phy_packet_size = -1;
+static int hf_ncp_max_space = -1;
+static int hf_ncp_maxspace = -1;
+static int hf_ncp_may_had_out_of_order = -1;
+static int hf_ncp_media_list = -1;
+static int hf_ncp_media_list_count = -1;
+static int hf_ncp_media_name = -1;
+static int hf_ncp_media_number = -1;
+static int hf_ncp_media_object_type = -1;
+static int hf_ncp_member_name = -1;
+static int hf_ncp_member_type = -1;
+static int hf_ncp_message_language = -1;
+static int hf_ncp_migrated_files = -1;
+static int hf_ncp_migrated_sectors = -1;
+static int hf_ncp_min_cache_report_thresh = -1;
+static int hf_ncp_min_num_of_cache_buff = -1;
+static int hf_ncp_min_num_of_dir_cache_buff = -1;
+static int hf_ncp_min_time_since_file_delete = -1;
+static int hf_ncp_minor_version = -1;
+static int hf_ncp_mixed_mode_path_flag = -1;
+static int hf_ncp_modified_counter = -1;
+static int hf_ncp_modified_date = -1;
+static int hf_ncp_modified_time = -1;
+static int hf_ncp_modifier_id = -1;
+static int hf_ncp_modify_dos_create = -1;
+static int hf_ncp_modify_dos_delete = -1;
+static int hf_ncp_modify_dos_info_mask = -1;
+static int hf_ncp_modify_dos_inheritance = -1;
+static int hf_ncp_modify_dos_laccess = -1;
+static int hf_ncp_modify_dos_max_space = -1;
+static int hf_ncp_modify_dos_mdate = -1;
+static int hf_ncp_modify_dos_mid = -1;
+static int hf_ncp_modify_dos_mtime = -1;
+static int hf_ncp_modify_dos_open = -1;
+static int hf_ncp_modify_dos_parent = -1;
+static int hf_ncp_modify_dos_read = -1;
+static int hf_ncp_modify_dos_search = -1;
+static int hf_ncp_modify_dos_write = -1;
+static int hf_ncp_more_flag = -1;
+static int hf_ncp_more_properties = -1;
+static int hf_ncp_move_cache_node = -1;
+static int hf_ncp_move_cache_node_from_avai = -1;
+static int hf_ncp_moved_the_ack_bit_dn = -1;
+static int hf_ncp_name = -1;
+static int hf_ncp_name12 = -1;
+static int hf_ncp_name_len = -1;
+static int hf_ncp_name_length = -1;
+static int hf_ncp_name_list = -1;
+static int hf_ncp_name_space = -1;
+static int hf_ncp_name_space_name = -1;
+static int hf_ncp_name_type = -1;
+static int hf_ncp_ncompletion_code = -1;
+static int hf_ncp_ncp_data_size = -1;
+static int hf_ncp_ncp_extension_major_version = -1;
+static int hf_ncp_ncp_extension_minor_version = -1;
+static int hf_ncp_ncp_extension_name = -1;
+static int hf_ncp_ncp_extension_number = -1;
+static int hf_ncp_ncp_extension_numbers = -1;
+static int hf_ncp_ncp_extension_revision_number = -1;
+static int hf_ncp_ncp_peak_sta_in_use = -1;
+static int hf_ncp_ncp_sta_in_use = -1;
+static int hf_ncp_ndirty_blocks = -1;
+static int hf_ncp_nds_request_flags = -1;
+static int hf_ncp_nds_request_flags_alias_ref = -1;
+static int hf_ncp_nds_request_flags_dn_ref = -1;
+static int hf_ncp_nds_request_flags_local_entry = -1;
+static int hf_ncp_nds_request_flags_no_such_entry = -1;
+static int hf_ncp_nds_request_flags_output = -1;
+static int hf_ncp_nds_request_flags_reply_data_size = -1;
+static int hf_ncp_nds_request_flags_req_cnt = -1;
+static int hf_ncp_nds_request_flags_req_data_size = -1;
+static int hf_ncp_nds_request_flags_trans_ref = -1;
+static int hf_ncp_nds_request_flags_trans_ref2 = -1;
+static int hf_ncp_nds_request_flags_type_ref = -1;
+static int hf_ncp_nds_request_flags_up_ref = -1;
+static int hf_ncp_nds_status = -1;
+static int hf_ncp_net_id_number = -1;
+static int hf_ncp_net_status = -1;
+static int hf_ncp_netbios_broadcast_was_propogated = -1;
+static int hf_ncp_netbios_progated = -1;
+static int hf_ncp_netware_access_handle = -1;
+static int hf_ncp_network_address = -1;
+static int hf_ncp_network_node_address = -1;
+static int hf_ncp_network_number = -1;
+static int hf_ncp_network_socket = -1;
+static int hf_ncp_new_access_rights_create = -1;
+static int hf_ncp_new_access_rights_delete = -1;
+static int hf_ncp_new_access_rights_mask = -1;
+static int hf_ncp_new_access_rights_modify = -1;
+static int hf_ncp_new_access_rights_open = -1;
+static int hf_ncp_new_access_rights_parental = -1;
+static int hf_ncp_new_access_rights_read = -1;
+static int hf_ncp_new_access_rights_search = -1;
+static int hf_ncp_new_access_rights_supervisor = -1;
+static int hf_ncp_new_access_rights_write = -1;
+static int hf_ncp_new_directory_id = -1;
+static int hf_ncp_new_ea_handle = -1;
+static int hf_ncp_new_file_name = -1;
+static int hf_ncp_new_file_name_len = -1;
+static int hf_ncp_new_file_size = -1;
+static int hf_ncp_new_object_name = -1;
+static int hf_ncp_new_password = -1;
+static int hf_ncp_new_path = -1;
+static int hf_ncp_new_position = -1;
+static int hf_ncp_next_cnt_block = -1;
+static int hf_ncp_next_huge_state_info = -1;
+static int hf_ncp_next_limb_scan_num = -1;
+static int hf_ncp_next_object_id = -1;
+static int hf_ncp_next_record = -1;
+static int hf_ncp_next_request_record = -1;
+static int hf_ncp_next_search_index = -1;
+static int hf_ncp_next_search_number = -1;
+static int hf_ncp_next_starting_number = -1;
+static int hf_ncp_next_trustee_entry = -1;
+static int hf_ncp_next_volume_number = -1;
+static int hf_ncp_nlm_count = -1;
+static int hf_ncp_nlm_flags = -1;
+static int hf_ncp_nlm_flags_multiple = -1;
+static int hf_ncp_nlm_flags_pseudo = -1;
+static int hf_ncp_nlm_flags_reentrant = -1;
+static int hf_ncp_nlm_flags_synchronize = -1;
+static int hf_ncp_nlm_load_options = -1;
+static int hf_ncp_nlm_name_stringz = -1;
+static int hf_ncp_nlm_number = -1;
+static int hf_ncp_nlm_numbers = -1;
+static int hf_ncp_nlm_start_num = -1;
+static int hf_ncp_nlm_type = -1;
+static int hf_ncp_nlms_in_list = -1;
+static int hf_ncp_no_avail_conns = -1;
+static int hf_ncp_no_ecb_available_count = -1;
+static int hf_ncp_no_mem_for_station = -1;
+static int hf_ncp_no_more_mem_avail = -1;
+static int hf_ncp_no_receive_buff = -1;
+static int hf_ncp_no_space_for_service = -1;
+static int hf_ncp_node = -1;
+static int hf_ncp_node_flags = -1;
+static int hf_ncp_non_ded_flag = -1;
+static int hf_ncp_non_freeable_avail_sub_alloc_sectors = -1;
+static int hf_ncp_non_freeable_limbo_sectors = -1;
+static int hf_ncp_not_my_network = -1;
+static int hf_ncp_not_supported_mask = -1;
+static int hf_ncp_not_usable_sub_alloc_sectors = -1;
+static int hf_ncp_not_yet_purgeable_blocks = -1;
+static int hf_ncp_ns_info_mask = -1;
+static int hf_ncp_ns_info_mask_acc_date = -1;
+static int hf_ncp_ns_info_mask_adate = -1;
+static int hf_ncp_ns_info_mask_aid = -1;
+static int hf_ncp_ns_info_mask_atime = -1;
+static int hf_ncp_ns_info_mask_cdate = -1;
+static int hf_ncp_ns_info_mask_ctime = -1;
+static int hf_ncp_ns_info_mask_fatt = -1;
+static int hf_ncp_ns_info_mask_max_acc_mask = -1;
+static int hf_ncp_ns_info_mask_max_space = -1;
+static int hf_ncp_ns_info_mask_modify = -1;
+static int hf_ncp_ns_info_mask_owner = -1;
+static int hf_ncp_ns_info_mask_udate = -1;
+static int hf_ncp_ns_info_mask_uid = -1;
+static int hf_ncp_ns_info_mask_utime = -1;
+static int hf_ncp_ns_specific_info = -1;
+static int hf_ncp_num_bytes = -1;
+static int hf_ncp_num_dir_cache_buff = -1;
+static int hf_ncp_num_of_allocs = -1;
+static int hf_ncp_num_of_cache_check_no_wait = -1;
+static int hf_ncp_num_of_cache_checks = -1;
+static int hf_ncp_num_of_cache_dirty_checks = -1;
+static int hf_ncp_num_of_cache_hits = -1;
+static int hf_ncp_num_of_cache_hits_no_wait = -1;
+static int hf_ncp_num_of_cc_in_pkt = -1;
+static int hf_ncp_num_of_checks = -1;
+static int hf_ncp_num_of_dir_cache_buff = -1;
+static int hf_ncp_num_of_dirty_cache_checks = -1;
+static int hf_ncp_num_of_entries = -1;
+static int hf_ncp_num_of_files_migrated = -1;
+static int hf_ncp_num_of_garb_coll = -1;
+static int hf_ncp_num_of_ncp_reqs = -1;
+static int hf_ncp_num_of_ref_publics = -1;
+static int hf_ncp_num_of_segments = -1;
+static int hf_ncp_number_of_attributes = -1;
+static int hf_ncp_number_of_cpus = -1;
+static int hf_ncp_number_of_data_streams = -1;
+static int hf_ncp_number_of_dynamic_memory_areas = -1;
+static int hf_ncp_number_of_entries = -1;
+static int hf_ncp_number_of_locks = -1;
+static int hf_ncp_number_of_minutes_to_delay = -1;
+static int hf_ncp_number_of_ncp_extensions = -1;
+static int hf_ncp_number_of_ns_loaded = -1;
+static int hf_ncp_number_of_protocols = -1;
+static int hf_ncp_number_of_records = -1;
+static int hf_ncp_number_of_semaphores = -1;
+static int hf_ncp_number_of_service_processes = -1;
+static int hf_ncp_number_of_set_categories = -1;
+static int hf_ncp_number_of_sms = -1;
+static int hf_ncp_number_of_stations = -1;
+static int hf_ncp_nxt_search_num = -1;
+static int hf_ncp_o_c_ret_flags = -1;
+static int hf_ncp_object_count = -1;
+static int hf_ncp_object_flags = -1;
+static int hf_ncp_object_has_properites = -1;
+static int hf_ncp_object_id = -1;
+static int hf_ncp_object_id_count = -1;
+static int hf_ncp_object_id_info = -1;
+static int hf_ncp_object_info_rtn_count = -1;
+static int hf_ncp_object_name = -1;
+static int hf_ncp_object_name_len = -1;
+static int hf_ncp_object_name_stringz = -1;
+static int hf_ncp_object_number = -1;
+static int hf_ncp_object_security = -1;
+static int hf_ncp_object_type = -1;
+static int hf_ncp_old_file_name = -1;
+static int hf_ncp_old_file_size = -1;
+static int hf_ncp_oldest_deleted_file_age_in_ticks = -1;
+static int hf_ncp_open_count = -1;
+static int hf_ncp_open_create_action = -1;
+static int hf_ncp_open_create_action_compressed = -1;
+static int hf_ncp_open_create_action_created = -1;
+static int hf_ncp_open_create_action_opened = -1;
+static int hf_ncp_open_create_action_read_only = -1;
+static int hf_ncp_open_create_action_replaced = -1;
+static int hf_ncp_open_create_mode = -1;
+static int hf_ncp_open_create_mode_create = -1;
+static int hf_ncp_open_create_mode_open = -1;
+static int hf_ncp_open_create_mode_oplock = -1;
+static int hf_ncp_open_create_mode_replace = -1;
+static int hf_ncp_open_for_read_count = -1;
+static int hf_ncp_open_for_write_count = -1;
+static int hf_ncp_open_rights = -1;
+static int hf_ncp_open_rights_compat = -1;
+static int hf_ncp_open_rights_deny_read = -1;
+static int hf_ncp_open_rights_deny_write = -1;
+static int hf_ncp_open_rights_read_only = -1;
+static int hf_ncp_open_rights_write_only = -1;
+static int hf_ncp_open_rights_write_thru = -1;
+static int hf_ncp_option_number = -1;
+static int hf_ncp_orig_num_cache_buff = -1;
+static int hf_ncp_original_size = -1;
+static int hf_ncp_os_language_id = -1;
+static int hf_ncp_os_major_version = -1;
+static int hf_ncp_os_minor_version = -1;
+static int hf_ncp_os_revision = -1;
+static int hf_ncp_other_file_fork_fat = -1;
+static int hf_ncp_other_file_fork_size = -1;
+static int hf_ncp_outgoing_packet_discarded_no_turbo_buffer = -1;
+static int hf_ncp_outstanding_compression_ios = -1;
+static int hf_ncp_outstanding_ios = -1;
+static int hf_ncp_packet_rs_too_small_count = -1;
+static int hf_ncp_packet_rx_misc_error_count = -1;
+static int hf_ncp_packet_rx_overflow_count = -1;
+static int hf_ncp_packet_rx_too_big_count = -1;
+static int hf_ncp_packet_tx_misc_error_count = -1;
+static int hf_ncp_packet_tx_too_big_count = -1;
+static int hf_ncp_packet_tx_too_small_count = -1;
+static int hf_ncp_packets_discarded_by_hop_count = -1;
+static int hf_ncp_packets_discarded_unknown_net = -1;
+static int hf_ncp_packets_from_invalid_connection = -1;
+static int hf_ncp_packets_received_during_processing = -1;
+static int hf_ncp_packets_with_bad_request_type = -1;
+static int hf_ncp_packets_with_bad_sequence_number = -1;
+static int hf_ncp_page_table_owner_flag = -1;
+static int hf_ncp_parent_base_id = -1;
+static int hf_ncp_parent_directory_base = -1;
+static int hf_ncp_parent_dos_directory_base = -1;
+static int hf_ncp_parent_id = -1;
+static int hf_ncp_parent_object_number = -1;
+static int hf_ncp_password = -1;
+static int hf_ncp_path = -1;
+static int hf_ncp_path_and_name = -1;
+static int hf_ncp_path_base = -1;
+static int hf_ncp_path_component_count = -1;
+static int hf_ncp_path_component_size = -1;
+static int hf_ncp_path_cookie_flags = -1;
+static int hf_ncp_path_count = -1;
+static int hf_ncp_pending_io_commands = -1;
+static int hf_ncp_percent_of_vol_used_by_dirs = -1;
+static int hf_ncp_physical_disk_channel = -1;
+static int hf_ncp_physical_disk_number = -1;
+static int hf_ncp_physical_drive_count = -1;
+static int hf_ncp_physical_drive_type = -1;
+static int hf_ncp_physical_lock_threshold = -1;
+static int hf_ncp_physical_read_errors = -1;
+static int hf_ncp_physical_read_requests = -1;
+static int hf_ncp_physical_write_errors = -1;
+static int hf_ncp_physical_write_requests = -1;
+static int hf_ncp_poll_abort_conn = -1;
+static int hf_ncp_poll_rem_old_out_of_order = -1;
+static int hf_ncp_positive_acknowledges_sent = -1;
+static int hf_ncp_post_poned_events = -1;
+static int hf_ncp_pre_compressed_sectors = -1;
+static int hf_ncp_previous_control_packet = -1;
+static int hf_ncp_previous_record = -1;
+static int hf_ncp_primary_entry = -1;
+static int hf_ncp_print_flags = -1;
+static int hf_ncp_print_flags_banner = -1;
+static int hf_ncp_print_flags_cr = -1;
+static int hf_ncp_print_flags_del_spool = -1;
+static int hf_ncp_print_flags_exp_tabs = -1;
+static int hf_ncp_print_flags_ff = -1;
+static int hf_ncp_print_server_version = -1;
+static int hf_ncp_print_to_file_flag = -1;
+static int hf_ncp_printer_halted = -1;
+static int hf_ncp_printer_offline = -1;
+static int hf_ncp_priority = -1;
+static int hf_ncp_privileges = -1;
+static int hf_ncp_pro_dos_info = -1;
+static int hf_ncp_processor_type = -1;
+static int hf_ncp_product_major_version = -1;
+static int hf_ncp_product_minor_version = -1;
+static int hf_ncp_product_revision_version = -1;
+static int hf_ncp_projected_comp_size = -1;
+static int hf_ncp_property_data = -1;
+static int hf_ncp_property_has_more_segments = -1;
+static int hf_ncp_property_name = -1;
+static int hf_ncp_property_name_16 = -1;
+static int hf_ncp_property_segment = -1;
+static int hf_ncp_property_type = -1;
+static int hf_ncp_property_value = -1;
+static int hf_ncp_proposed_max_size = -1;
+static int hf_ncp_protocol_board_num = -1;
+static int hf_ncp_protocol_flags = -1;
+static int hf_ncp_protocol_id = -1;
+static int hf_ncp_protocol_name = -1;
+static int hf_ncp_protocol_number = -1;
+static int hf_ncp_purge_c_code = -1;
+static int hf_ncp_purge_count = -1;
+static int hf_ncp_purge_flags = -1;
+static int hf_ncp_purge_list = -1;
+static int hf_ncp_purgeable_blocks = -1;
+static int hf_ncp_qms_version = -1;
+static int hf_ncp_queue_id = -1;
+static int hf_ncp_queue_name = -1;
+static int hf_ncp_queue_start_position = -1;
+static int hf_ncp_queue_status = -1;
+static int hf_ncp_queue_status_new_jobs = -1;
+static int hf_ncp_queue_status_pserver = -1;
+static int hf_ncp_queue_status_svc_jobs = -1;
+static int hf_ncp_queue_type = -1;
+static int hf_ncp_r_tag_num = -1;
+static int hf_ncp_re_mirror_current_offset = -1;
+static int hf_ncp_re_mirror_drive_number = -1;
+static int hf_ncp_read_beyond_write = -1;
+static int hf_ncp_read_exist_blck = -1;
+static int hf_ncp_read_exist_part_read = -1;
+static int hf_ncp_read_exist_read_err = -1;
+static int hf_ncp_read_exist_write_wait = -1;
+static int hf_ncp_realloc_slot = -1;
+static int hf_ncp_realloc_slot_came_too_soon = -1;
+static int hf_ncp_rec_lock_count = -1;
+static int hf_ncp_record_end = -1;
+static int hf_ncp_record_in_use = -1;
+static int hf_ncp_record_start = -1;
+static int hf_ncp_redirected_printer = -1;
+static int hf_ncp_reexecute_request = -1;
+static int hf_ncp_reference_count = -1;
+static int hf_ncp_relations_count = -1;
+static int hf_ncp_rem_cache_node = -1;
+static int hf_ncp_rem_cache_node_from_avail = -1;
+static int hf_ncp_remote_max_packet_size = -1;
+static int hf_ncp_remote_target_id = -1;
+static int hf_ncp_removable_flag = -1;
+static int hf_ncp_remove_open_rights = -1;
+static int hf_ncp_remove_open_rights_comp = -1;
+static int hf_ncp_remove_open_rights_dr = -1;
+static int hf_ncp_remove_open_rights_dw = -1;
+static int hf_ncp_remove_open_rights_ro = -1;
+static int hf_ncp_remove_open_rights_wo = -1;
+static int hf_ncp_remove_open_rights_write_thru = -1;
+static int hf_ncp_rename_flag = -1;
+static int hf_ncp_rename_flag_comp = -1;
+static int hf_ncp_rename_flag_no = -1;
+static int hf_ncp_rename_flag_ren = -1;
+static int hf_ncp_replies_cancelled = -1;
+static int hf_ncp_reply_canceled = -1;
+static int hf_ncp_reply_queue_job_numbers = -1;
+static int hf_ncp_request_bit_map = -1;
+static int hf_ncp_request_bit_map_ratt = -1;
+static int hf_ncp_request_bit_map_ret_acc_date = -1;
+static int hf_ncp_request_bit_map_ret_acc_priv = -1;
+static int hf_ncp_request_bit_map_ret_afp_ent = -1;
+static int hf_ncp_request_bit_map_ret_afp_parent = -1;
+static int hf_ncp_request_bit_map_ret_bak_date = -1;
+static int hf_ncp_request_bit_map_ret_cr_date = -1;
+static int hf_ncp_request_bit_map_ret_data_fork = -1;
+static int hf_ncp_request_bit_map_ret_finder = -1;
+static int hf_ncp_request_bit_map_ret_long_nm = -1;
+static int hf_ncp_request_bit_map_ret_mod_date = -1;
+static int hf_ncp_request_bit_map_ret_num_off = -1;
+static int hf_ncp_request_bit_map_ret_owner = -1;
+static int hf_ncp_request_bit_map_ret_res_fork = -1;
+static int hf_ncp_request_bit_map_ret_short = -1;
+static int hf_ncp_request_code = -1;
+static int hf_ncp_requests_reprocessed = -1;
+static int hf_ncp_reserved = -1;
+static int hf_ncp_reserved10 = -1;
+static int hf_ncp_reserved12 = -1;
+static int hf_ncp_reserved120 = -1;
+static int hf_ncp_reserved16 = -1;
+static int hf_ncp_reserved2 = -1;
+static int hf_ncp_reserved20 = -1;
+static int hf_ncp_reserved28 = -1;
+static int hf_ncp_reserved3 = -1;
+static int hf_ncp_reserved36 = -1;
+static int hf_ncp_reserved4 = -1;
+static int hf_ncp_reserved44 = -1;
+static int hf_ncp_reserved48 = -1;
+static int hf_ncp_reserved50 = -1;
+static int hf_ncp_reserved56 = -1;
+static int hf_ncp_reserved6 = -1;
+static int hf_ncp_reserved64 = -1;
+static int hf_ncp_reserved8 = -1;
+static int hf_ncp_reserved_or_directory_number = -1;
+static int hf_ncp_resource_count = -1;
+static int hf_ncp_resource_fork_len = -1;
+static int hf_ncp_resource_fork_size = -1;
+static int hf_ncp_resource_name = -1;
+static int hf_ncp_resource_sig = -1;
+static int hf_ncp_restore_time = -1;
+static int hf_ncp_restriction = -1;
+static int hf_ncp_restrictions_enforced = -1;
+static int hf_ncp_ret_info_mask = -1;
+static int hf_ncp_ret_info_mask_actual = -1;
+static int hf_ncp_ret_info_mask_alloc = -1;
+static int hf_ncp_ret_info_mask_arch = -1;
+static int hf_ncp_ret_info_mask_attr = -1;
+static int hf_ncp_ret_info_mask_create = -1;
+static int hf_ncp_ret_info_mask_dir = -1;
+static int hf_ncp_ret_info_mask_eattr = -1;
+static int hf_ncp_ret_info_mask_fname = -1;
+static int hf_ncp_ret_info_mask_id = -1;
+static int hf_ncp_ret_info_mask_logical = -1;
+static int hf_ncp_ret_info_mask_mod = -1;
+static int hf_ncp_ret_info_mask_ns = -1;
+static int hf_ncp_ret_info_mask_ns_attr = -1;
+static int hf_ncp_ret_info_mask_rights = -1;
+static int hf_ncp_ret_info_mask_size = -1;
+static int hf_ncp_ret_info_mask_tspace = -1;
+static int hf_ncp_retry_tx_count = -1;
+static int hf_ncp_return_info_count = -1;
+static int hf_ncp_returned_list_count = -1;
+static int hf_ncp_rev_query_flag = -1;
+static int hf_ncp_revision = -1;
+static int hf_ncp_revision_number = -1;
+static int hf_ncp_rights_grant_mask = -1;
+static int hf_ncp_rights_grant_mask_create = -1;
+static int hf_ncp_rights_grant_mask_del = -1;
+static int hf_ncp_rights_grant_mask_mod = -1;
+static int hf_ncp_rights_grant_mask_open = -1;
+static int hf_ncp_rights_grant_mask_parent = -1;
+static int hf_ncp_rights_grant_mask_read = -1;
+static int hf_ncp_rights_grant_mask_search = -1;
+static int hf_ncp_rights_grant_mask_write = -1;
+static int hf_ncp_rights_revoke_mask = -1;
+static int hf_ncp_rights_revoke_mask_create = -1;
+static int hf_ncp_rights_revoke_mask_del = -1;
+static int hf_ncp_rights_revoke_mask_mod = -1;
+static int hf_ncp_rights_revoke_mask_open = -1;
+static int hf_ncp_rights_revoke_mask_parent = -1;
+static int hf_ncp_rights_revoke_mask_read = -1;
+static int hf_ncp_rights_revoke_mask_search = -1;
+static int hf_ncp_rights_revoke_mask_write = -1;
+static int hf_ncp_rip_socket_num = -1;
+static int hf_ncp_route_hops = -1;
+static int hf_ncp_route_time = -1;
+static int hf_ncp_router_dn_flag = -1;
+static int hf_ncp_rpc_c_code = -1;
+static int hf_ncp_rpy_nearest_srv_flag = -1;
+static int hf_ncp_rx_buffer_size = -1;
+static int hf_ncp_rx_buffers = -1;
+static int hf_ncp_rx_buffers_75 = -1;
+static int hf_ncp_rx_buffers_checked_out = -1;
+static int hf_ncp_s_day = -1;
+static int hf_ncp_s_day_of_week = -1;
+static int hf_ncp_s_hour = -1;
+static int hf_ncp_s_m_info = -1;
+static int hf_ncp_s_minute = -1;
+static int hf_ncp_s_module_name = -1;
+static int hf_ncp_s_month = -1;
+static int hf_ncp_s_offset_64bit = -1;
+static int hf_ncp_s_second = -1;
+static int hf_ncp_salvageable_file_entry_number = -1;
+static int hf_ncp_sap_socket_number = -1;
+static int hf_ncp_sattr = -1;
+static int hf_ncp_sattr_archive = -1;
+static int hf_ncp_sattr_execute_confirm = -1;
+static int hf_ncp_sattr_exonly = -1;
+static int hf_ncp_sattr_hid = -1;
+static int hf_ncp_sattr_ronly = -1;
+static int hf_ncp_sattr_shareable = -1;
+static int hf_ncp_sattr_sub = -1;
+static int hf_ncp_sattr_sys = -1;
+static int hf_ncp_saved_an_out_of_order_packet = -1;
+static int hf_ncp_scan_items = -1;
+static int hf_ncp_search_att_archive = -1;
+static int hf_ncp_search_att_execute_confirm = -1;
+static int hf_ncp_search_att_execute_only = -1;
+static int hf_ncp_search_att_hidden = -1;
+static int hf_ncp_search_att_low = -1;
+static int hf_ncp_search_att_read_only = -1;
+static int hf_ncp_search_att_shareable = -1;
+static int hf_ncp_search_att_sub = -1;
+static int hf_ncp_search_att_system = -1;
+static int hf_ncp_search_attr_all_files = -1;
+static int hf_ncp_search_bit_map = -1;
+static int hf_ncp_search_bit_map_files = -1;
+static int hf_ncp_search_bit_map_hidden = -1;
+static int hf_ncp_search_bit_map_sub = -1;
+static int hf_ncp_search_bit_map_sys = -1;
+static int hf_ncp_search_conn_number = -1;
+static int hf_ncp_search_instance = -1;
+static int hf_ncp_search_number = -1;
+static int hf_ncp_search_pattern = -1;
+static int hf_ncp_search_sequence = -1;
+static int hf_ncp_search_sequence_word = -1;
+static int hf_ncp_sec_rel_to_y2k = -1;
+static int hf_ncp_sector_size = -1;
+static int hf_ncp_sectors_per_block = -1;
+static int hf_ncp_sectors_per_cluster = -1;
+static int hf_ncp_sectors_per_cluster_long = -1;
+static int hf_ncp_sectors_per_track = -1;
+static int hf_ncp_security_equiv_list = -1;
+static int hf_ncp_security_flag = -1;
+static int hf_ncp_security_restriction_version = -1;
+static int hf_ncp_semaphore_handle = -1;
+static int hf_ncp_semaphore_name = -1;
+static int hf_ncp_semaphore_name_len = -1;
+static int hf_ncp_semaphore_open_count = -1;
+static int hf_ncp_semaphore_share_count = -1;
+static int hf_ncp_semaphore_time_out = -1;
+static int hf_ncp_semaphore_value = -1;
+static int hf_ncp_send_hold_off_message = -1;
+static int hf_ncp_send_status = -1;
+static int hf_ncp_sent_a_dup_reply = -1;
+static int hf_ncp_sent_pos_ack = -1;
+static int hf_ncp_sequence_byte = -1;
+static int hf_ncp_sequence_number = -1;
+static int hf_ncp_server_address = -1;
+static int hf_ncp_server_app_num = -1;
+static int hf_ncp_server_id_number = -1;
+static int hf_ncp_server_info_flags = -1;
+static int hf_ncp_server_list_flags = -1;
+static int hf_ncp_server_name = -1;
+static int hf_ncp_server_name_len = -1;
+static int hf_ncp_server_name_stringz = -1;
+static int hf_ncp_server_network_address = -1;
+static int hf_ncp_server_node = -1;
+static int hf_ncp_server_serial_number = -1;
+static int hf_ncp_server_station = -1;
+static int hf_ncp_server_station_list = -1;
+static int hf_ncp_server_station_long = -1;
+static int hf_ncp_server_status_record = -1;
+static int hf_ncp_server_task_number = -1;
+static int hf_ncp_server_task_number_long = -1;
+static int hf_ncp_server_type = -1;
+static int hf_ncp_server_utilization = -1;
+static int hf_ncp_server_utilization_percentage = -1;
+static int hf_ncp_set_cmd_category = -1;
+static int hf_ncp_set_cmd_flags = -1;
+static int hf_ncp_set_cmd_name = -1;
+static int hf_ncp_set_cmd_type = -1;
+static int hf_ncp_set_cmd_value_num = -1;
+static int hf_ncp_set_parm_name = -1;
+static int hf_ncp_sft_error_table = -1;
+static int hf_ncp_sft_support_level = -1;
+static int hf_ncp_shareable_lock_count = -1;
+static int hf_ncp_shared_memory_addresses = -1;
+static int hf_ncp_short_name = -1;
+static int hf_ncp_short_stack_name = -1;
+static int hf_ncp_shouldnt_be_ack_here = -1;
+static int hf_ncp_sibling_count = -1;
+static int hf_ncp_signature = -1;
+static int hf_ncp_sm_info_size = -1;
+static int hf_ncp_smids = -1;
+static int hf_ncp_software_description = -1;
+static int hf_ncp_software_driver_type = -1;
+static int hf_ncp_software_major_version_number = -1;
+static int hf_ncp_software_minor_version_number = -1;
+static int hf_ncp_someone_else_did_it_0 = -1;
+static int hf_ncp_someone_else_did_it_1 = -1;
+static int hf_ncp_someone_else_did_it_2 = -1;
+static int hf_ncp_someone_else_using_this_file = -1;
+static int hf_ncp_source_component_count = -1;
+static int hf_ncp_source_dir_handle = -1;
+static int hf_ncp_source_originate_time = -1;
+static int hf_ncp_source_path = -1;
+static int hf_ncp_source_return_time = -1;
+static int hf_ncp_space_migrated = -1;
+static int hf_ncp_space_restriction_node_count = -1;
+static int hf_ncp_space_used = -1;
+static int hf_ncp_spx_abort_conn = -1;
+static int hf_ncp_spx_bad_in_pkt = -1;
+static int hf_ncp_spx_bad_listen = -1;
+static int hf_ncp_spx_bad_send = -1;
+static int hf_ncp_spx_est_conn_fail = -1;
+static int hf_ncp_spx_est_conn_req = -1;
+static int hf_ncp_spx_incoming_pkt = -1;
+static int hf_ncp_spx_listen_con_fail = -1;
+static int hf_ncp_spx_listen_con_req = -1;
+static int hf_ncp_spx_listen_pkt = -1;
+static int hf_ncp_spx_max_conn = -1;
+static int hf_ncp_spx_max_used_conn = -1;
+static int hf_ncp_spx_no_ses_listen = -1;
+static int hf_ncp_spx_send = -1;
+static int hf_ncp_spx_send_fail = -1;
+static int hf_ncp_spx_supp_pkt = -1;
+static int hf_ncp_spx_watch_dog = -1;
+static int hf_ncp_spx_window_choke = -1;
+static int hf_ncp_src_name_space = -1;
+static int hf_ncp_stack_count = -1;
+static int hf_ncp_stack_full_name_str = -1;
+static int hf_ncp_stack_major_vn = -1;
+static int hf_ncp_stack_minor_vn = -1;
+static int hf_ncp_stack_number = -1;
+static int hf_ncp_stack_short_name = -1;
+static int hf_ncp_start_conn_num = -1;
+static int hf_ncp_start_number = -1;
+static int hf_ncp_start_number_flag = -1;
+static int hf_ncp_start_search_number = -1;
+static int hf_ncp_start_station_error = -1;
+static int hf_ncp_start_volume_number = -1;
+static int hf_ncp_starting_block = -1;
+static int hf_ncp_starting_number = -1;
+static int hf_ncp_stat_major_version = -1;
+static int hf_ncp_stat_minor_version = -1;
+static int hf_ncp_stat_table_major_version = -1;
+static int hf_ncp_stat_table_minor_version = -1;
+static int hf_ncp_station_list = -1;
+static int hf_ncp_station_number = -1;
+static int hf_ncp_status = -1;
+static int hf_ncp_status_flag_bits = -1;
+static int hf_ncp_status_flag_bits_audit = -1;
+static int hf_ncp_status_flag_bits_comp = -1;
+static int hf_ncp_status_flag_bits_im_purge = -1;
+static int hf_ncp_status_flag_bits_migrate = -1;
+static int hf_ncp_status_flag_bits_nss = -1;
+static int hf_ncp_status_flag_bits_ro = -1;
+static int hf_ncp_status_flag_bits_suballoc = -1;
+static int hf_ncp_still_doing_the_last_req = -1;
+static int hf_ncp_still_transmitting = -1;
+static int hf_ncp_sub_alloc_clusters = -1;
+static int hf_ncp_sub_alloc_freeable_clusters = -1;
+static int hf_ncp_sub_directory = -1;
+static int hf_ncp_suggested_file_size = -1;
+static int hf_ncp_support_module_id = -1;
+static int hf_ncp_synch_name = -1;
+static int hf_ncp_system_interval_marker = -1;
+static int hf_ncp_tab_size = -1;
+static int hf_ncp_target_client_list = -1;
+static int hf_ncp_target_connection_number = -1;
+static int hf_ncp_target_dir_handle = -1;
+static int hf_ncp_target_entry_id = -1;
+static int hf_ncp_target_execution_time = -1;
+static int hf_ncp_target_file_handle = -1;
+static int hf_ncp_target_file_offset = -1;
+static int hf_ncp_target_message = -1;
+static int hf_ncp_target_ptr = -1;
+static int hf_ncp_target_receive_time = -1;
+static int hf_ncp_target_server_id_number = -1;
+static int hf_ncp_target_transmit_time = -1;
+static int hf_ncp_task_num_byte = -1;
+static int hf_ncp_task_number_word = -1;
+static int hf_ncp_text_job_description = -1;
+static int hf_ncp_thrashing_count = -1;
+static int hf_ncp_time_to_net = -1;
+static int hf_ncp_timeout_limit = -1;
+static int hf_ncp_timesync_status_active = -1;
+static int hf_ncp_timesync_status_ext_sync = -1;
+static int hf_ncp_timesync_status_external = -1;
+static int hf_ncp_timesync_status_flags = -1;
+static int hf_ncp_timesync_status_net_sync = -1;
+static int hf_ncp_timesync_status_server_type = -1;
+static int hf_ncp_timesync_status_sync = -1;
+static int hf_ncp_too_many_ack_frag = -1;
+static int hf_ncp_too_many_hops = -1;
+static int hf_ncp_total_blks_to_dcompress = -1;
+static int hf_ncp_total_blocks = -1;
+static int hf_ncp_total_cache_writes = -1;
+static int hf_ncp_total_changed_fats = -1;
+static int hf_ncp_total_cnt_blocks = -1;
+static int hf_ncp_total_common_cnts = -1;
+static int hf_ncp_total_dir_entries = -1;
+static int hf_ncp_total_directory_slots = -1;
+static int hf_ncp_total_extended_directory_extants = -1;
+static int hf_ncp_total_file_service_packets = -1;
+static int hf_ncp_total_files_opened = -1;
+static int hf_ncp_total_lfs_counters = -1;
+static int hf_ncp_total_offspring = -1;
+static int hf_ncp_total_other_packets = -1;
+static int hf_ncp_total_queue_jobs = -1;
+static int hf_ncp_total_read_requests = -1;
+static int hf_ncp_total_request = -1;
+static int hf_ncp_total_request_packets = -1;
+static int hf_ncp_total_routed_packets = -1;
+static int hf_ncp_total_rx_packet_count = -1;
+static int hf_ncp_total_rx_packets = -1;
+static int hf_ncp_total_rx_pkts = -1;
+static int hf_ncp_total_server_memory = -1;
+static int hf_ncp_total_stream_size_struct_space_alloc = -1;
+static int hf_ncp_total_trans_backed_out = -1;
+static int hf_ncp_total_trans_performed = -1;
+static int hf_ncp_total_tx_packet_count = -1;
+static int hf_ncp_total_tx_packets = -1;
+static int hf_ncp_total_tx_pkts = -1;
+static int hf_ncp_total_unfilled_backout_requests = -1;
+static int hf_ncp_total_volume_clusters = -1;
+static int hf_ncp_total_write_requests = -1;
+static int hf_ncp_total_write_trans_performed = -1;
+static int hf_ncp_track_on_flag = -1;
+static int hf_ncp_transaction_disk_space = -1;
+static int hf_ncp_transaction_fat_allocations = -1;
+static int hf_ncp_transaction_file_size_changes = -1;
+static int hf_ncp_transaction_files_truncated = -1;
+static int hf_ncp_transaction_number = -1;
+static int hf_ncp_transaction_tracking_enabled = -1;
+static int hf_ncp_transaction_tracking_supported = -1;
+static int hf_ncp_transaction_volume_number = -1;
+static int hf_ncp_transport_addr = -1;
+static int hf_ncp_transport_type = -1;
+static int hf_ncp_trustee_id_set = -1;
+static int hf_ncp_trustee_list_node_count = -1;
+static int hf_ncp_trustee_rights_create = -1;
+static int hf_ncp_trustee_rights_del = -1;
+static int hf_ncp_trustee_rights_low = -1;
+static int hf_ncp_trustee_rights_modify = -1;
+static int hf_ncp_trustee_rights_open = -1;
+static int hf_ncp_trustee_rights_parent = -1;
+static int hf_ncp_trustee_rights_read = -1;
+static int hf_ncp_trustee_rights_search = -1;
+static int hf_ncp_trustee_rights_super = -1;
+static int hf_ncp_trustee_rights_write = -1;
+static int hf_ncp_trustee_set_number = -1;
+static int hf_ncp_try_to_write_too_much = -1;
+static int hf_ncp_ttl_comp_blks = -1;
+static int hf_ncp_ttl_ds_disk_space_alloc = -1;
+static int hf_ncp_ttl_eas = -1;
+static int hf_ncp_ttl_eas_data_size = -1;
+static int hf_ncp_ttl_eas_key_size = -1;
+static int hf_ncp_ttl_inter_blks = -1;
+static int hf_ncp_ttl_migrated_size = -1;
+static int hf_ncp_ttl_num_of_r_tags = -1;
+static int hf_ncp_ttl_num_of_set_cmds = -1;
+static int hf_ncp_ttl_pckts_routed = -1;
+static int hf_ncp_ttl_pckts_srvcd = -1;
+static int hf_ncp_ttl_values_length = -1;
+static int hf_ncp_ttl_write_data_size = -1;
+static int hf_ncp_tts_flag = -1;
+static int hf_ncp_tts_level = -1;
+static int hf_ncp_turbo_fat_build_failed = -1;
+static int hf_ncp_turbo_used_for_file_service = -1;
+static int hf_ncp_un_claimed_packets = -1;
+static int hf_ncp_un_compressable_data_streams_count = -1;
+static int hf_ncp_un_used = -1;
+static int hf_ncp_un_used_directory_entries = -1;
+static int hf_ncp_un_used_extended_directory_extants = -1;
+static int hf_ncp_unclaimed_packets = -1;
+static int hf_ncp_undefined_28 = -1;
+static int hf_ncp_undefined_8 = -1;
+static int hf_ncp_unique_id = -1;
+static int hf_ncp_unknown_network = -1;
+static int hf_ncp_unused_disk_blocks = -1;
+static int hf_ncp_update_date = -1;
+static int hf_ncp_update_id = -1;
+static int hf_ncp_update_time = -1;
+static int hf_ncp_used_blocks = -1;
+static int hf_ncp_used_space = -1;
+static int hf_ncp_user_id = -1;
+static int hf_ncp_user_info_audit_conn = -1;
+static int hf_ncp_user_info_audited = -1;
+static int hf_ncp_user_info_being_abort = -1;
+static int hf_ncp_user_info_bindery = -1;
+static int hf_ncp_user_info_dsaudit_conn = -1;
+static int hf_ncp_user_info_held_req = -1;
+static int hf_ncp_user_info_int_login = -1;
+static int hf_ncp_user_info_logged_in = -1;
+static int hf_ncp_user_info_logout = -1;
+static int hf_ncp_user_info_mac_station = -1;
+static int hf_ncp_user_info_need_sec = -1;
+static int hf_ncp_user_info_temp_authen = -1;
+static int hf_ncp_user_info_ttl_bytes_rd = -1;
+static int hf_ncp_user_info_ttl_bytes_wrt = -1;
+static int hf_ncp_user_info_use_count = -1;
+static int hf_ncp_user_login_allowed = -1;
+static int hf_ncp_user_name = -1;
+static int hf_ncp_user_name_16 = -1;
+static int hf_ncp_uts_time_in_seconds = -1;
+static int hf_ncp_valid_bfrs_reused = -1;
+static int hf_ncp_value_available = -1;
+static int hf_ncp_vap_version = -1;
+static int hf_ncp_variable_bit_mask = -1;
+static int hf_ncp_variable_bits_defined = -1;
+static int hf_ncp_vconsole_rev = -1;
+static int hf_ncp_vconsole_ver = -1;
+static int hf_ncp_verb = -1;
+static int hf_ncp_verb_data = -1;
+static int hf_ncp_version = -1;
+static int hf_ncp_version_number = -1;
+static int hf_ncp_vert_location = -1;
+static int hf_ncp_virtual_console_version = -1;
+static int hf_ncp_vol_info_reply_len = -1;
+static int hf_ncp_volume_active_count = -1;
+static int hf_ncp_volume_cached_flag = -1;
+static int hf_ncp_volume_hashed_flag = -1;
+static int hf_ncp_volume_id = -1;
+static int hf_ncp_volume_last_modified_date = -1;
+static int hf_ncp_volume_last_modified_time = -1;
+static int hf_ncp_volume_mounted_flag = -1;
+static int hf_ncp_volume_name = -1;
+static int hf_ncp_volume_name_len = -1;
+static int hf_ncp_volume_name_stringz = -1;
+static int hf_ncp_volume_number = -1;
+static int hf_ncp_volume_number_long = -1;
+static int hf_ncp_volume_reference_count = -1;
+static int hf_ncp_volume_removable_flag = -1;
+static int hf_ncp_volume_request_flags = -1;
+static int hf_ncp_volume_segment_dev_num = -1;
+static int hf_ncp_volume_segment_offset = -1;
+static int hf_ncp_volume_segment_size = -1;
+static int hf_ncp_volume_size_in_clusters = -1;
+static int hf_ncp_volume_type = -1;
+static int hf_ncp_volume_use_count = -1;
+static int hf_ncp_volumes_supported_max = -1;
+static int hf_ncp_wait_node = -1;
+static int hf_ncp_wait_node_alloc_fail = -1;
+static int hf_ncp_wait_on_sema = -1;
+static int hf_ncp_wait_till_dirty_blcks_dec = -1;
+static int hf_ncp_wait_time = -1;
+static int hf_ncp_wasted_server_memory = -1;
+static int hf_ncp_write_curr_trans = -1;
+static int hf_ncp_write_didnt_need_but_req_ack = -1;
+static int hf_ncp_write_didnt_need_this_frag = -1;
+static int hf_ncp_write_dup_req = -1;
+static int hf_ncp_write_err = -1;
+static int hf_ncp_write_got_an_ack0 = -1;
+static int hf_ncp_write_got_an_ack1 = -1;
+static int hf_ncp_write_held_off = -1;
+static int hf_ncp_write_held_off_with_dup = -1;
+static int hf_ncp_write_incon_packet_len = -1;
+static int hf_ncp_write_out_of_mem_for_ctl_nodes = -1;
+static int hf_ncp_write_timeout = -1;
+static int hf_ncp_write_too_many_buf_check = -1;
+static int hf_ncp_write_trash_dup_req = -1;
+static int hf_ncp_write_trash_packet = -1;
+static int hf_ncp_wrt_blck_cnt = -1;
+static int hf_ncp_wrt_entire_blck = -1;
+static int hf_ncp_year = -1;
+static int hf_ncp_zero_ack_frag = -1;
+
+static const value_string ncp_64_bit_flag_vals[] = {
+	{ 0x00,	"No support for 64 bit offsets" },
+	{ 0x01,	"64 bit offsets supported" },
+	{ 0x00,	NULL },
+};
+
+
+static const value_string ncp_Service_type_vals[] = {
+	{ 0x0000,	"Unknown" },
+	{ 0x0001,	"User" },
+	{ 0x0002,	"User group" },
+	{ 0x0003,	"Print queue" },
+	{ 0x0004,	"NetWare file server" },
+	{ 0x0005,	"Job server" },
+	{ 0x0006,	"Gateway" },
+	{ 0x0007,	"Print server" },
+	{ 0x0008,	"Archive queue" },
+	{ 0x0009,	"Archive server" },
+	{ 0x000a,	"Job queue" },
+	{ 0x000b,	"Administration" },
+	{ 0x0021,	"NAS SNA gateway" },
+	{ 0x0026,	"Remote bridge server" },
+	{ 0x0027,	"TCP/IP gateway" },
+	{ 0x0000,	NULL },
+};
+
+
+static const value_string ncp_abort_q_flag_vals[] = {
+	{ 0x00,	"Place at End of Queue" },
+	{ 0x01,	"Do Not Place Spool File, Examine Flags" },
+	{ 0x00,	NULL },
+};
+
+
+static const value_string ncp_access_control_vals[] = {
+	{ 0x00,	"Open for read by this client" },
+	{ 0x01,	"Open for write by this client" },
+	{ 0x02,	"Deny read requests from other stations" },
+	{ 0x03,	"Deny write requests from other stations" },
+	{ 0x04,	"File detached" },
+	{ 0x05,	"TTS holding detach" },
+	{ 0x06,	"TTS holding open" },
+	{ 0x00,	NULL },
+};
+
+
+static const value_string ncp_allocate_mode_vals[] = {
+	{ 0x0000,	"Permanent Directory Handle" },
+	{ 0x0001,	"Temporary Directory Handle" },
+	{ 0x0002,	"Special Temporary Directory Handle" },
+	{ 0x0000,	NULL },
+};
+
+
+static const value_string ncp_audit_enable_flag_vals[] = {
+	{ 0x0000,	"Auditing Disabled" },
+	{ 0x0100,	"Auditing Enabled" },
+	{ 0x0000,	NULL },
+};
+
+
+static const value_string ncp_audit_flag_vals[] = {
+	{ 0x00,	"Do NOT audit object" },
+	{ 0x01,	"Audit object" },
+	{ 0x00,	NULL },
+};
+
+
+static const value_string ncp_audit_id_type_vals[] = {
+	{ 0x0000,	"Volume" },
+	{ 0x0001,	"Container" },
+	{ 0x0000,	NULL },
+};
+
+
+static const value_string ncp_bus_type_vals[] = {
+	{ 0x00,	"ISA" },
+	{ 0x01,	"Micro Channel" },
+	{ 0x02,	"EISA" },
+	{ 0x04,	"PCI" },
+	{ 0x08,	"PCMCIA" },
+	{ 0x10,	"ISA" },
+	{ 0x14,	"ISA" },
+	{ 0x00,	NULL },
+};
+
+
+static const value_string ncp_cc_function_vals[] = {
+	{ 0x01,	"Clear OP-Lock" },
+	{ 0x02,	"Acknowledge Callback" },
+	{ 0x03,	"Decline Callback" },
+	{ 0x04,	"Level 2" },
+	{ 0x00,	NULL },
+};
+
+
+static const value_string ncp_channel_state_vals[] = {
+	{ 0x00,	"Channel is running" },
+	{ 0x01,	"Channel is stopping" },
+	{ 0x02,	"Channel is stopped" },
+	{ 0x03,	"Channel is not functional" },
+	{ 0x00,	NULL },
+};
+
+
+static const value_string ncp_channel_synchronization_state_vals[] = {
+	{ 0x00,	"Channel is not being used" },
+	{ 0x02,	"NetWare is using the channel; no one else wants it" },
+	{ 0x04,	"NetWare is using the channel; someone else wants it" },
+	{ 0x06,	"Someone else is using the channel; NetWare does not need it" },
+	{ 0x08,	"Someone else is using the channel; NetWare needs it" },
+	{ 0x0a,	"Someone else has released the channel; NetWare should use it" },
+	{ 0x00,	NULL },
+};
+
+
+static const value_string ncp_client_comp_flag_vals[] = {
+	{ 0x0000,	"Successful" },
+	{ 0x0001,	"Illegal Station Number" },
+	{ 0x0002,	"Client Not Logged In" },
+	{ 0x0003,	"Client Not Accepting Messages" },
+	{ 0x0004,	"Client Already has a Message" },
+	{ 0x0096,	"No Alloc Space for the Message" },
+	{ 0x00fd,	"Bad Station Number" },
+	{ 0x00ff,	"Failure" },
+	{ 0x0000,	NULL },
+};
+
+
+static const value_string ncp_connection_service_type_vals[] = {
+	{ 0x01,	"CLIB backward Compatibility" },
+	{ 0x02,	"NCP Connection" },
+	{ 0x03,	"NLM Connection" },
+	{ 0x04,	"AFP Connection" },
+	{ 0x05,	"FTAM Connection" },
+	{ 0x06,	"ANCP Connection" },
+	{ 0x07,	"ACP Connection" },
+	{ 0x08,	"SMB Connection" },
+	{ 0x09,	"Winsock Connection" },
+	{ 0x00,	NULL },
+};
+
+
+static const value_string ncp_connection_type_vals[] = {
+	{ 0x00,	"Not in use" },
+	{ 0x02,	"NCP" },
+	{ 0x11,	"UDP (for IP)" },
+	{ 0x00,	NULL },
+};
+
+
+static const value_string ncp_control_flags_vals[] = {
+	{ 0x00,	"Forced Record Locking is Off" },
+	{ 0x01,	"Forced Record Locking is On" },
+	{ 0x00,	NULL },
+};
+
+
+static const value_string ncp_counter_mask_vals[] = {
+	{ 0x00,	"Counter is Valid" },
+	{ 0x01,	"Counter is not Valid" },
+	{ 0x00,	NULL },
+};
+
+
+static const value_string ncp_cpu_type_vals[] = {
+	{ 0x00,	"80386" },
+	{ 0x01,	"80486" },
+	{ 0x02,	"Pentium" },
+	{ 0x03,	"Pentium Pro" },
+	{ 0x00,	NULL },
+};
+
+
+static const value_string ncp_creator_name_space_number_vals[] = {
+	{ 0x00,	"DOS Name Space" },
+	{ 0x01,	"MAC Name Space" },
+	{ 0x02,	"NFS Name Space" },
+	{ 0x04,	"Long Name Space" },
+	{ 0x00,	NULL },
+};
+
+
+static const value_string ncp_ctrl_flags_vals[] = {
+	{ 0x0000,	"Do Not Return File Name" },
+	{ 0x0001,	"Return File Name" },
+	{ 0x0000,	NULL },
+};
+
+
+static const value_string ncp_data_stream_vals[] = {
+	{ 0x00,	"Resource Fork or DOS" },
+	{ 0x01,	"Data Fork" },
+	{ 0x00,	NULL },
+};
+
+
+static const value_string ncp_delete_existing_file_flag_vals[] = {
+	{ 0x00,	"Do Not Delete Existing File" },
+	{ 0x01,	"Delete Existing File" },
+	{ 0x00,	NULL },
+};
+
+
+static const value_string ncp_dest_name_space_vals[] = {
+	{ 0x00,	"DOS Name Space" },
+	{ 0x01,	"MAC Name Space" },
+	{ 0x02,	"NFS Name Space" },
+	{ 0x04,	"Long Name Space" },
+	{ 0x00,	NULL },
+};
+
+
+static const value_string ncp_disk_channel_table_vals[] = {
+	{ 0x01,	"XT" },
+	{ 0x02,	"AT" },
+	{ 0x03,	"SCSI" },
+	{ 0x04,	"Disk Coprocessor" },
+	{ 0x00,	NULL },
+};
+
+
+static const value_string ncp_dm_flags_vals[] = {
+	{ 0x00,	"OnLine Media" },
+	{ 0x01,	"OffLine Media" },
+	{ 0x00,	NULL },
+};
+
+
+static const value_string ncp_dm_info_level_vals[] = {
+	{ 0x00,	"Return Detailed DM Support Module Information" },
+	{ 0x01,	"Return Number of DM Support Modules" },
+	{ 0x02,	"Return DM Support Modules Names" },
+	{ 0x00,	NULL },
+};
+
+
+static const value_string ncp_dm_present_flag_vals[] = {
+	{ 0x00,	"Data Migration NLM is not loaded" },
+	{ 0x01,	"Data Migration NLM has been loaded and is running" },
+	{ 0x00,	NULL },
+};
+
+
+static const value_string ncp_drive_removable_flag_vals[] = {
+	{ 0x00,	"Nonremovable" },
+	{ 0xff,	"Removable" },
+	{ 0x00,	NULL },
+};
+
+
+static const value_string ncp_dst_ea_flags_vals[] = {
+	{ 0x0000,	"Return EAHandle,Information Level 0" },
+	{ 0x0001,	"Return NetWareHandle,Information Level 0" },
+	{ 0x0002,	"Return Volume/Directory Number,Information Level 0" },
+	{ 0x0004,	"Return EAHandle,Close Handle on Error,Information Level 0" },
+	{ 0x0005,	"Return NetWareHandle,Close Handle on Error,Information Level 0" },
+	{ 0x0006,	"Return Volume/Directory Number,Close Handle on Error,Information Level 0" },
+	{ 0x0010,	"Return EAHandle,Information Level 1" },
+	{ 0x0011,	"Return NetWareHandle,Information Level 1" },
+	{ 0x0012,	"Return Volume/Directory Number,Information Level 1" },
+	{ 0x0014,	"Return EAHandle,Close Handle on Error,Information Level 1" },
+	{ 0x0015,	"Return NetWareHandle,Close Handle on Error,Information Level 1" },
+	{ 0x0016,	"Return Volume/Directory Number,Close Handle on Error,Information Level 1" },
+	{ 0x0020,	"Return EAHandle,Information Level 2" },
+	{ 0x0021,	"Return NetWareHandle,Information Level 2" },
+	{ 0x0022,	"Return Volume/Directory Number,Information Level 2" },
+	{ 0x0024,	"Return EAHandle,Close Handle on Error,Information Level 2" },
+	{ 0x0025,	"Return NetWareHandle,Close Handle on Error,Information Level 2" },
+	{ 0x0026,	"Return Volume/Directory Number,Close Handle on Error,Information Level 2" },
+	{ 0x0030,	"Return EAHandle,Information Level 3" },
+	{ 0x0031,	"Return NetWareHandle,Information Level 3" },
+	{ 0x0032,	"Return Volume/Directory Number,Information Level 3" },
+	{ 0x0034,	"Return EAHandle,Close Handle on Error,Information Level 3" },
+	{ 0x0035,	"Return NetWareHandle,Close Handle on Error,Information Level 3" },
+	{ 0x0036,	"Return Volume/Directory Number,Close Handle on Error,Information Level 3" },
+	{ 0x0040,	"Return EAHandle,Information Level 4" },
+	{ 0x0041,	"Return NetWareHandle,Information Level 4" },
+	{ 0x0042,	"Return Volume/Directory Number,Information Level 4" },
+	{ 0x0044,	"Return EAHandle,Close Handle on Error,Information Level 4" },
+	{ 0x0045,	"Return NetWareHandle,Close Handle on Error,Information Level 4" },
+	{ 0x0046,	"Return Volume/Directory Number,Close Handle on Error,Information Level 4" },
+	{ 0x0050,	"Return EAHandle,Information Level 5" },
+	{ 0x0051,	"Return NetWareHandle,Information Level 5" },
+	{ 0x0052,	"Return Volume/Directory Number,Information Level 5" },
+	{ 0x0054,	"Return EAHandle,Close Handle on Error,Information Level 5" },
+	{ 0x0055,	"Return NetWareHandle,Close Handle on Error,Information Level 5" },
+	{ 0x0056,	"Return Volume/Directory Number,Close Handle on Error,Information Level 5" },
+	{ 0x0060,	"Return EAHandle,Information Level 6" },
+	{ 0x0061,	"Return NetWareHandle,Information Level 6" },
+	{ 0x0062,	"Return Volume/Directory Number,Information Level 6" },
+	{ 0x0064,	"Return EAHandle,Close Handle on Error,Information Level 6" },
+	{ 0x0065,	"Return NetWareHandle,Close Handle on Error,Information Level 6" },
+	{ 0x0066,	"Return Volume/Directory Number,Close Handle on Error,Information Level 6" },
+	{ 0x0070,	"Return EAHandle,Information Level 7" },
+	{ 0x0071,	"Return NetWareHandle,Information Level 7" },
+	{ 0x0072,	"Return Volume/Directory Number,Information Level 7" },
+	{ 0x0074,	"Return EAHandle,Close Handle on Error,Information Level 7" },
+	{ 0x0075,	"Return NetWareHandle,Close Handle on Error,Information Level 7" },
+	{ 0x0076,	"Return Volume/Directory Number,Close Handle on Error,Information Level 7" },
+	{ 0x0080,	"Return EAHandle,Information Level 0,Immediate Close Handle" },
+	{ 0x0081,	"Return NetWareHandle,Information Level 0,Immediate Close Handle" },
+	{ 0x0082,	"Return Volume/Directory Number,Information Level 0,Immediate Close Handle" },
+	{ 0x0084,	"Return EAHandle,Close Handle on Error,Information Level 0,Immediate Close Handle" },
+	{ 0x0085,	"Return NetWareHandle,Close Handle on Error,Information Level 0,Immediate Close Handle" },
+	{ 0x0086,	"Return Volume/Directory Number,Close Handle on Error,Information Level 0,Immediate Close Handle" },
+	{ 0x0090,	"Return EAHandle,Information Level 1,Immediate Close Handle" },
+	{ 0x0091,	"Return NetWareHandle,Information Level 1,Immediate Close Handle" },
+	{ 0x0092,	"Return Volume/Directory Number,Information Level 1,Immediate Close Handle" },
+	{ 0x0094,	"Return EAHandle,Close Handle on Error,Information Level 1,Immediate Close Handle" },
+	{ 0x0095,	"Return NetWareHandle,Close Handle on Error,Information Level 1,Immediate Close Handle" },
+	{ 0x0096,	"Return Volume/Directory Number,Close Handle on Error,Information Level 1,Immediate Close Handle" },
+	{ 0x00a0,	"Return EAHandle,Information Level 2,Immediate Close Handle" },
+	{ 0x00a1,	"Return NetWareHandle,Information Level 2,Immediate Close Handle" },
+	{ 0x00a2,	"Return Volume/Directory Number,Information Level 2,Immediate Close Handle" },
+	{ 0x00a4,	"Return EAHandle,Close Handle on Error,Information Level 2,Immediate Close Handle" },
+	{ 0x00a5,	"Return NetWareHandle,Close Handle on Error,Information Level 2,Immediate Close Handle" },
+	{ 0x00a6,	"Return Volume/Directory Number,Close Handle on Error,Information Level 2,Immediate Close Handle" },
+	{ 0x00b0,	"Return EAHandle,Information Level 3,Immediate Close Handle" },
+	{ 0x00b1,	"Return NetWareHandle,Information Level 3,Immediate Close Handle" },
+	{ 0x00b2,	"Return Volume/Directory Number,Information Level 3,Immediate Close Handle" },
+	{ 0x00b4,	"Return EAHandle,Close Handle on Error,Information Level 3,Immediate Close Handle" },
+	{ 0x00b5,	"Return NetWareHandle,Close Handle on Error,Information Level 3,Immediate Close Handle" },
+	{ 0x00b6,	"Return Volume/Directory Number,Close Handle on Error,Information Level 3,Immediate Close Handle" },
+	{ 0x00c0,	"Return EAHandle,Information Level 4,Immediate Close Handle" },
+	{ 0x00c1,	"Return NetWareHandle,Information Level 4,Immediate Close Handle" },
+	{ 0x00c2,	"Return Volume/Directory Number,Information Level 4,Immediate Close Handle" },
+	{ 0x00c4,	"Return EAHandle,Close Handle on Error,Information Level 4,Immediate Close Handle" },
+	{ 0x00c5,	"Return NetWareHandle,Close Handle on Error,Information Level 4,Immediate Close Handle" },
+	{ 0x00c6,	"Return Volume/Directory Number,Close Handle on Error,Information Level 4,Immediate Close Handle" },
+	{ 0x00d0,	"Return EAHandle,Information Level 5,Immediate Close Handle" },
+	{ 0x00d1,	"Return NetWareHandle,Information Level 5,Immediate Close Handle" },
+	{ 0x00d2,	"Return Volume/Directory Number,Information Level 5,Immediate Close Handle" },
+	{ 0x00d4,	"Return EAHandle,Close Handle on Error,Information Level 5,Immediate Close Handle" },
+	{ 0x00d5,	"Return NetWareHandle,Close Handle on Error,Information Level 5,Immediate Close Handle" },
+	{ 0x00d6,	"Return Volume/Directory Number,Close Handle on Error,Information Level 5,Immediate Close Handle" },
+	{ 0x00e0,	"Return EAHandle,Information Level 6,Immediate Close Handle" },
+	{ 0x00e1,	"Return NetWareHandle,Information Level 6,Immediate Close Handle" },
+	{ 0x00e2,	"Return Volume/Directory Number,Information Level 6,Immediate Close Handle" },
+	{ 0x00e4,	"Return EAHandle,Close Handle on Error,Information Level 6,Immediate Close Handle" },
+	{ 0x00e5,	"Return NetWareHandle,Close Handle on Error,Information Level 6,Immediate Close Handle" },
+	{ 0x00e6,	"Return Volume/Directory Number,Close Handle on Error,Information Level 6,Immediate Close Handle" },
+	{ 0x00f0,	"Return EAHandle,Information Level 7,Immediate Close Handle" },
+	{ 0x00f1,	"Return NetWareHandle,Information Level 7,Immediate Close Handle" },
+	{ 0x00f2,	"Return Volume/Directory Number,Information Level 7,Immediate Close Handle" },
+	{ 0x00f4,	"Return EAHandle,Close Handle on Error,Information Level 7,Immediate Close Handle" },
+	{ 0x00f5,	"Return NetWareHandle,Close Handle on Error,Information Level 7,Immediate Close Handle" },
+	{ 0x00f6,	"Return Volume/Directory Number,Close Handle on Error,Information Level 7,Immediate Close Handle" },
+	{ 0x0000,	NULL },
+};
+
+
+static const value_string ncp_dst_ns_indicator_vals[] = {
+	{ 0x0000,	"Return Source Name Space Information" },
+	{ 0x0001,	"Return Destination Name Space Information" },
+	{ 0x0000,	NULL },
+};
+
+
+static const value_string ncp_ea_error_codes_vals[] = {
+	{ 0x0000,	"SUCCESSFUL" },
+	{ 0x00c8,	"ERR_MISSING_EA_KEY" },
+	{ 0x00c9,	"ERR_EA_NOT_FOUND" },
+	{ 0x00ca,	"ERR_INVALID_EA_HANDLE_TYPE" },
+	{ 0x00cb,	"ERR_EA_NO_KEY_NO_DATA" },
+	{ 0x00cc,	"ERR_EA_NUMBER_MISMATCH" },
+	{ 0x00cd,	"ERR_EXTENT_NUMBER_OUT_OF_RANGE" },
+	{ 0x00ce,	"ERR_EA_BAD_DIR_NUM" },
+	{ 0x00cf,	"ERR_INVALID_EA_HANDLE" },
+	{ 0x00d0,	"ERR_EA_POSITION_OUT_OF_RANGE" },
+	{ 0x00d1,	"ERR_EA_ACCESS_DENIED" },
+	{ 0x00d2,	"ERR_DATA_PAGE_ODD_SIZE" },
+	{ 0x00d3,	"ERR_EA_VOLUME_NOT_MOUNTED" },
+	{ 0x00d4,	"ERR_BAD_PAGE_BOUNDARY" },
+	{ 0x00d5,	"ERR_INSPECT_FAILURE" },
+	{ 0x00d6,	"ERR_EA_ALREADY_CLAIMED" },
+	{ 0x00d7,	"ERR_ODD_BUFFER_SIZE" },
+	{ 0x00d8,	"ERR_NO_SCORECARDS" },
+	{ 0x00d9,	"ERR_BAD_EDS_SIGNATURE" },
+	{ 0x00da,	"ERR_EA_SPACE_LIMIT" },
+	{ 0x00db,	"ERR_EA_KEY_CORRUPT" },
+	{ 0x00dc,	"ERR_EA_KEY_LIMIT" },
+	{ 0x00dd,	"ERR_TALLY_CORRUPT" },
+	{ 0x0000,	NULL },
+};
+
+
+static const value_string ncp_ea_flags_vals[] = {
+	{ 0x0000,	"Return EAHandle,Information Level 0" },
+	{ 0x0001,	"Return NetWareHandle,Information Level 0" },
+	{ 0x0002,	"Return Volume/Directory Number,Information Level 0" },
+	{ 0x0004,	"Return EAHandle,Close Handle on Error,Information Level 0" },
+	{ 0x0005,	"Return NetWareHandle,Close Handle on Error,Information Level 0" },
+	{ 0x0006,	"Return Volume/Directory Number,Close Handle on Error,Information Level 0" },
+	{ 0x0010,	"Return EAHandle,Information Level 1" },
+	{ 0x0011,	"Return NetWareHandle,Information Level 1" },
+	{ 0x0012,	"Return Volume/Directory Number,Information Level 1" },
+	{ 0x0014,	"Return EAHandle,Close Handle on Error,Information Level 1" },
+	{ 0x0015,	"Return NetWareHandle,Close Handle on Error,Information Level 1" },
+	{ 0x0016,	"Return Volume/Directory Number,Close Handle on Error,Information Level 1" },
+	{ 0x0020,	"Return EAHandle,Information Level 2" },
+	{ 0x0021,	"Return NetWareHandle,Information Level 2" },
+	{ 0x0022,	"Return Volume/Directory Number,Information Level 2" },
+	{ 0x0024,	"Return EAHandle,Close Handle on Error,Information Level 2" },
+	{ 0x0025,	"Return NetWareHandle,Close Handle on Error,Information Level 2" },
+	{ 0x0026,	"Return Volume/Directory Number,Close Handle on Error,Information Level 2" },
+	{ 0x0030,	"Return EAHandle,Information Level 3" },
+	{ 0x0031,	"Return NetWareHandle,Information Level 3" },
+	{ 0x0032,	"Return Volume/Directory Number,Information Level 3" },
+	{ 0x0034,	"Return EAHandle,Close Handle on Error,Information Level 3" },
+	{ 0x0035,	"Return NetWareHandle,Close Handle on Error,Information Level 3" },
+	{ 0x0036,	"Return Volume/Directory Number,Close Handle on Error,Information Level 3" },
+	{ 0x0040,	"Return EAHandle,Information Level 4" },
+	{ 0x0041,	"Return NetWareHandle,Information Level 4" },
+	{ 0x0042,	"Return Volume/Directory Number,Information Level 4" },
+	{ 0x0044,	"Return EAHandle,Close Handle on Error,Information Level 4" },
+	{ 0x0045,	"Return NetWareHandle,Close Handle on Error,Information Level 4" },
+	{ 0x0046,	"Return Volume/Directory Number,Close Handle on Error,Information Level 4" },
+	{ 0x0050,	"Return EAHandle,Information Level 5" },
+	{ 0x0051,	"Return NetWareHandle,Information Level 5" },
+	{ 0x0052,	"Return Volume/Directory Number,Information Level 5" },
+	{ 0x0054,	"Return EAHandle,Close Handle on Error,Information Level 5" },
+	{ 0x0055,	"Return NetWareHandle,Close Handle on Error,Information Level 5" },
+	{ 0x0056,	"Return Volume/Directory Number,Close Handle on Error,Information Level 5" },
+	{ 0x0060,	"Return EAHandle,Information Level 6" },
+	{ 0x0061,	"Return NetWareHandle,Information Level 6" },
+	{ 0x0062,	"Return Volume/Directory Number,Information Level 6" },
+	{ 0x0064,	"Return EAHandle,Close Handle on Error,Information Level 6" },
+	{ 0x0065,	"Return NetWareHandle,Close Handle on Error,Information Level 6" },
+	{ 0x0066,	"Return Volume/Directory Number,Close Handle on Error,Information Level 6" },
+	{ 0x0070,	"Return EAHandle,Information Level 7" },
+	{ 0x0071,	"Return NetWareHandle,Information Level 7" },
+	{ 0x0072,	"Return Volume/Directory Number,Information Level 7" },
+	{ 0x0074,	"Return EAHandle,Close Handle on Error,Information Level 7" },
+	{ 0x0075,	"Return NetWareHandle,Close Handle on Error,Information Level 7" },
+	{ 0x0076,	"Return Volume/Directory Number,Close Handle on Error,Information Level 7" },
+	{ 0x0080,	"Return EAHandle,Information Level 0,Immediate Close Handle" },
+	{ 0x0081,	"Return NetWareHandle,Information Level 0,Immediate Close Handle" },
+	{ 0x0082,	"Return Volume/Directory Number,Information Level 0,Immediate Close Handle" },
+	{ 0x0084,	"Return EAHandle,Close Handle on Error,Information Level 0,Immediate Close Handle" },
+	{ 0x0085,	"Return NetWareHandle,Close Handle on Error,Information Level 0,Immediate Close Handle" },
+	{ 0x0086,	"Return Volume/Directory Number,Close Handle on Error,Information Level 0,Immediate Close Handle" },
+	{ 0x0090,	"Return EAHandle,Information Level 1,Immediate Close Handle" },
+	{ 0x0091,	"Return NetWareHandle,Information Level 1,Immediate Close Handle" },
+	{ 0x0092,	"Return Volume/Directory Number,Information Level 1,Immediate Close Handle" },
+	{ 0x0094,	"Return EAHandle,Close Handle on Error,Information Level 1,Immediate Close Handle" },
+	{ 0x0095,	"Return NetWareHandle,Close Handle on Error,Information Level 1,Immediate Close Handle" },
+	{ 0x0096,	"Return Volume/Directory Number,Close Handle on Error,Information Level 1,Immediate Close Handle" },
+	{ 0x00a0,	"Return EAHandle,Information Level 2,Immediate Close Handle" },
+	{ 0x00a1,	"Return NetWareHandle,Information Level 2,Immediate Close Handle" },
+	{ 0x00a2,	"Return Volume/Directory Number,Information Level 2,Immediate Close Handle" },
+	{ 0x00a4,	"Return EAHandle,Close Handle on Error,Information Level 2,Immediate Close Handle" },
+	{ 0x00a5,	"Return NetWareHandle,Close Handle on Error,Information Level 2,Immediate Close Handle" },
+	{ 0x00a6,	"Return Volume/Directory Number,Close Handle on Error,Information Level 2,Immediate Close Handle" },
+	{ 0x00b0,	"Return EAHandle,Information Level 3,Immediate Close Handle" },
+	{ 0x00b1,	"Return NetWareHandle,Information Level 3,Immediate Close Handle" },
+	{ 0x00b2,	"Return Volume/Directory Number,Information Level 3,Immediate Close Handle" },
+	{ 0x00b4,	"Return EAHandle,Close Handle on Error,Information Level 3,Immediate Close Handle" },
+	{ 0x00b5,	"Return NetWareHandle,Close Handle on Error,Information Level 3,Immediate Close Handle" },
+	{ 0x00b6,	"Return Volume/Directory Number,Close Handle on Error,Information Level 3,Immediate Close Handle" },
+	{ 0x00c0,	"Return EAHandle,Information Level 4,Immediate Close Handle" },
+	{ 0x00c1,	"Return NetWareHandle,Information Level 4,Immediate Close Handle" },
+	{ 0x00c2,	"Return Volume/Directory Number,Information Level 4,Immediate Close Handle" },
+	{ 0x00c4,	"Return EAHandle,Close Handle on Error,Information Level 4,Immediate Close Handle" },
+	{ 0x00c5,	"Return NetWareHandle,Close Handle on Error,Information Level 4,Immediate Close Handle" },
+	{ 0x00c6,	"Return Volume/Directory Number,Close Handle on Error,Information Level 4,Immediate Close Handle" },
+	{ 0x00d0,	"Return EAHandle,Information Level 5,Immediate Close Handle" },
+	{ 0x00d1,	"Return NetWareHandle,Information Level 5,Immediate Close Handle" },
+	{ 0x00d2,	"Return Volume/Directory Number,Information Level 5,Immediate Close Handle" },
+	{ 0x00d4,	"Return EAHandle,Close Handle on Error,Information Level 5,Immediate Close Handle" },
+	{ 0x00d5,	"Return NetWareHandle,Close Handle on Error,Information Level 5,Immediate Close Handle" },
+	{ 0x00d6,	"Return Volume/Directory Number,Close Handle on Error,Information Level 5,Immediate Close Handle" },
+	{ 0x00e0,	"Return EAHandle,Information Level 6,Immediate Close Handle" },
+	{ 0x00e1,	"Return NetWareHandle,Information Level 6,Immediate Close Handle" },
+	{ 0x00e2,	"Return Volume/Directory Number,Information Level 6,Immediate Close Handle" },
+	{ 0x00e4,	"Return EAHandle,Close Handle on Error,Information Level 6,Immediate Close Handle" },
+	{ 0x00e5,	"Return NetWareHandle,Close Handle on Error,Information Level 6,Immediate Close Handle" },
+	{ 0x00e6,	"Return Volume/Directory Number,Close Handle on Error,Information Level 6,Immediate Close Handle" },
+	{ 0x00f0,	"Return EAHandle,Information Level 7,Immediate Close Handle" },
+	{ 0x00f1,	"Return NetWareHandle,Information Level 7,Immediate Close Handle" },
+	{ 0x00f2,	"Return Volume/Directory Number,Information Level 7,Immediate Close Handle" },
+	{ 0x00f4,	"Return EAHandle,Close Handle on Error,Information Level 7,Immediate Close Handle" },
+	{ 0x00f5,	"Return NetWareHandle,Close Handle on Error,Information Level 7,Immediate Close Handle" },
+	{ 0x00f6,	"Return Volume/Directory Number,Close Handle on Error,Information Level 7,Immediate Close Handle" },
+	{ 0x0000,	NULL },
+};
+
+
+static const value_string ncp_file_ext_attr_vals[] = {
+	{ 0x00,	"Search On All Read Only Opens" },
+	{ 0x01,	"Search On Read Only Opens With No Path" },
+	{ 0x02,	"Shell Default Search Mode" },
+	{ 0x03,	"Search On All Opens With No Path" },
+	{ 0x04,	"Do Not Search" },
+	{ 0x05,	"Reserved" },
+	{ 0x06,	"Search On All Opens" },
+	{ 0x07,	"Reserved" },
+	{ 0x08,	"Search On All Read Only Opens/Indexed" },
+	{ 0x09,	"Search On Read Only Opens With No Path/Indexed" },
+	{ 0x0a,	"Shell Default Search Mode/Indexed" },
+	{ 0x0b,	"Search On All Opens With No Path/Indexed" },
+	{ 0x0c,	"Do Not Search/Indexed" },
+	{ 0x0d,	"Indexed" },
+	{ 0x0e,	"Search On All Opens/Indexed" },
+	{ 0x0f,	"Indexed" },
+	{ 0x10,	"Search On All Read Only Opens/Transactional" },
+	{ 0x11,	"Search On Read Only Opens With No Path/Transactional" },
+	{ 0x12,	"Shell Default Search Mode/Transactional" },
+	{ 0x13,	"Search On All Opens With No Path/Transactional" },
+	{ 0x14,	"Do Not Search/Transactional" },
+	{ 0x15,	"Transactional" },
+	{ 0x16,	"Search On All Opens/Transactional" },
+	{ 0x17,	"Transactional" },
+	{ 0x18,	"Search On All Read Only Opens/Indexed/Transactional" },
+	{ 0x19,	"Search On Read Only Opens With No Path/Indexed/Transactional" },
+	{ 0x1a,	"Shell Default Search Mode/Indexed/Transactional" },
+	{ 0x1b,	"Search On All Opens With No Path/Indexed/Transactional" },
+	{ 0x1c,	"Do Not Search/Indexed/Transactional" },
+	{ 0x1d,	"Indexed/Transactional" },
+	{ 0x1e,	"Search On All Opens/Indexed/Transactional" },
+	{ 0x1f,	"Indexed/Transactional" },
+	{ 0x40,	"Search On All Read Only Opens/Read Audit" },
+	{ 0x41,	"Search On Read Only Opens With No Path/Read Audit" },
+	{ 0x42,	"Shell Default Search Mode/Read Audit" },
+	{ 0x43,	"Search On All Opens With No Path/Read Audit" },
+	{ 0x44,	"Do Not Search/Read Audit" },
+	{ 0x45,	"Read Audit" },
+	{ 0x46,	"Search On All Opens/Read Audit" },
+	{ 0x47,	"Read Audit" },
+	{ 0x48,	"Search On All Read Only Opens/Indexed/Read Audit" },
+	{ 0x49,	"Search On Read Only Opens With No Path/Indexed/Read Audit" },
+	{ 0x4a,	"Shell Default Search Mode/Indexed/Read Audit" },
+	{ 0x4b,	"Search On All Opens With No Path/Indexed/Read Audit" },
+	{ 0x4c,	"Do Not Search/Indexed/Read Audit" },
+	{ 0x4d,	"Indexed/Read Audit" },
+	{ 0x4e,	"Search On All Opens/Indexed/Read Audit" },
+	{ 0x4f,	"Indexed/Read Audit" },
+	{ 0x50,	"Search On All Read Only Opens/Transactional/Read Audit" },
+	{ 0x51,	"Search On Read Only Opens With No Path/Transactional/Read Audit" },
+	{ 0x52,	"Shell Default Search Mode/Transactional/Read Audit" },
+	{ 0x53,	"Search On All Opens With No Path/Transactional/Read Audit" },
+	{ 0x54,	"Do Not Search/Transactional/Read Audit" },
+	{ 0x55,	"Transactional/Read Audit" },
+	{ 0x56,	"Search On All Opens/Transactional/Read Audit" },
+	{ 0x57,	"Transactional/Read Audit" },
+	{ 0x58,	"Search On All Read Only Opens/Indexed/Transactional/Read Audit" },
+	{ 0x59,	"Search On Read Only Opens With No Path/Indexed/Transactional/Read Audit" },
+	{ 0x5a,	"Shell Default Search Mode/Indexed/Transactional/Read Audit" },
+	{ 0x5b,	"Search On All Opens With No Path/Indexed/Transactional/Read Audit" },
+	{ 0x5c,	"Do Not Search/Indexed/Transactional/Read Audit" },
+	{ 0x5d,	"Indexed/Transactional/Read Audit" },
+	{ 0x5e,	"Search On All Opens/Indexed/Transactional/Read Audit" },
+	{ 0x5f,	"Indexed/Transactional/Read Audit" },
+	{ 0x80,	"Search On All Read Only Opens/Write Audit" },
+	{ 0x81,	"Search On Read Only Opens With No Path/Write Audit" },
+	{ 0x82,	"Shell Default Search Mode/Write Audit" },
+	{ 0x83,	"Search On All Opens With No Path/Write Audit" },
+	{ 0x84,	"Do Not Search/Write Audit" },
+	{ 0x85,	"Write Audit" },
+	{ 0x86,	"Search On All Opens/Write Audit" },
+	{ 0x87,	"Write Audit" },
+	{ 0x88,	"Search On All Read Only Opens/Indexed/Write Audit" },
+	{ 0x89,	"Search On Read Only Opens With No Path/Indexed/Write Audit" },
+	{ 0x8a,	"Shell Default Search Mode/Indexed/Write Audit" },
+	{ 0x8b,	"Search On All Opens With No Path/Indexed/Write Audit" },
+	{ 0x8c,	"Do Not Search/Indexed/Write Audit" },
+	{ 0x8d,	"Indexed/Write Audit" },
+	{ 0x8e,	"Search On All Opens/Indexed/Write Audit" },
+	{ 0x8f,	"Indexed/Write Audit" },
+	{ 0x90,	"Search On All Read Only Opens/Transactional/Write Audit" },
+	{ 0x91,	"Search On Read Only Opens With No Path/Transactional/Write Audit" },
+	{ 0x92,	"Shell Default Search Mode/Transactional/Write Audit" },
+	{ 0x93,	"Search On All Opens With No Path/Transactional/Write Audit" },
+	{ 0x94,	"Do Not Search/Transactional/Write Audit" },
+	{ 0x95,	"Transactional/Write Audit" },
+	{ 0x96,	"Search On All Opens/Transactional/Write Audit" },
+	{ 0x97,	"Transactional/Write Audit" },
+	{ 0x98,	"Search On All Read Only Opens/Indexed/Transactional/Write Audit" },
+	{ 0x99,	"Search On Read Only Opens With No Path/Indexed/Transactional/Write Audit" },
+	{ 0x9a,	"Shell Default Search Mode/Indexed/Transactional/Write Audit" },
+	{ 0x9b,	"Search On All Opens With No Path/Indexed/Transactional/Write Audit" },
+	{ 0x9c,	"Do Not Search/Indexed/Transactional/Write Audit" },
+	{ 0x9d,	"Indexed/Transactional/Write Audit" },
+	{ 0x9e,	"Search On All Opens/Indexed/Transactional/Write Audit" },
+	{ 0x9f,	"Indexed/Transactional/Write Audit" },
+	{ 0xa0,	"Search On All Read Only Opens/Read Audit/Write Audit" },
+	{ 0xa1,	"Search On Read Only Opens With No Path/Read Audit/Write Audit" },
+	{ 0xa2,	"Shell Default Search Mode/Read Audit/Write Audit" },
+	{ 0xa3,	"Search On All Opens With No Path/Read Audit/Write Audit" },
+	{ 0xa4,	"Do Not Search/Read Audit/Write Audit" },
+	{ 0xa5,	"Read Audit/Write Audit" },
+	{ 0xa6,	"Search On All Opens/Read Audit/Write Audit" },
+	{ 0xa7,	"Read Audit/Write Audit" },
+	{ 0xa8,	"Search On All Read Only Opens/Indexed/Read Audit/Write Audit" },
+	{ 0xa9,	"Search On Read Only Opens With No Path/Indexed/Read Audit/Write Audit" },
+	{ 0xaa,	"Shell Default Search Mode/Indexed/Read Audit/Write Audit" },
+	{ 0xab,	"Search On All Opens With No Path/Indexed/Read Audit/Write Audit" },
+	{ 0xac,	"Do Not Search/Indexed/Read Audit/Write Audit" },
+	{ 0xad,	"Indexed/Read Audit/Write Audit" },
+	{ 0xae,	"Search On All Opens/Indexed/Read Audit/Write Audit" },
+	{ 0xaf,	"Indexed/Read Audit/Write Audit" },
+	{ 0xb0,	"Search On All Read Only Opens/Transactional/Read Audit/Write Audit" },
+	{ 0xb1,	"Search On Read Only Opens With No Path/Transactional/Read Audit/Write Audit" },
+	{ 0xb2,	"Shell Default Search Mode/Transactional/Read Audit/Write Audit" },
+	{ 0xb3,	"Search On All Opens With No Path/Transactional/Read Audit/Write Audit" },
+	{ 0xb4,	"Do Not Search/Transactional/Read Audit/Write Audit" },
+	{ 0xb5,	"Transactional/Read Audit/Write Audit" },
+	{ 0xb6,	"Search On All Opens/Transactional/Read Audit/Write Audit" },
+	{ 0xb7,	"Transactional/Read Audit/Write Audit" },
+	{ 0xb8,	"Search On All Read Only Opens/Indexed/Transactional/Read Audit/Write Audit" },
+	{ 0xb9,	"Search On Read Only Opens With No Path/Indexed/Transactional/Read Audit/Write Audit" },
+	{ 0xba,	"Shell Default Search Mode/Indexed/Transactional/Read Audit/Write Audit" },
+	{ 0xbb,	"Search On All Opens With No Path/Indexed/Transactional/Read Audit/Write Audit" },
+	{ 0xbc,	"Do Not Search/Indexed/Transactional/Read Audit/Write Audit" },
+	{ 0xbd,	"Indexed/Transactional/Read Audit/Write Audit" },
+	{ 0xbe,	"Search On All Opens/Indexed/Transactional/Read Audit/Write Audit" },
+	{ 0xbf,	"Indexed/Transactional/Read Audit/Write Audit" },
+	{ 0x00,	NULL },
+};
+
+
+static const value_string ncp_file_write_flags_vals[] = {
+	{ 0x01,	"Writing" },
+	{ 0x02,	"Write aborted" },
+	{ 0x00,	NULL },
+};
+
+
+static const value_string ncp_file_write_state_vals[] = {
+	{ 0x00,	"Not Writing" },
+	{ 0x01,	"Write in Progress" },
+	{ 0x02,	"Write Being Stopped" },
+	{ 0x00,	NULL },
+};
+
+
+static const value_string ncp_folder_flag_vals[] = {
+	{ 0x00,	"Not a Folder" },
+	{ 0x01,	"Folder" },
+	{ 0x00,	NULL },
+};
+
+
+static const value_string ncp_force_flag_vals[] = {
+	{ 0x00,	"Down Server if No Files Are Open" },
+	{ 0xff,	"Down Server Immediately, Auto-Close Open Files" },
+	{ 0x00,	NULL },
+};
+
+
+static const value_string ncp_fork_indicator_vals[] = {
+	{ 0x00,	"Data Fork" },
+	{ 0x01,	"Resource Fork" },
+	{ 0x00,	NULL },
+};
+
+
+static const value_string ncp_get_set_flag_vals[] = {
+	{ 0x00,	"Get the default support module ID" },
+	{ 0x01,	"Set the default support module ID" },
+	{ 0x00,	NULL },
+};
+
+
+static const value_string ncp_handle_flag_vals[] = {
+	{ 0x00,	"Short Directory Handle" },
+	{ 0x01,	"Directory Base" },
+	{ 0xff,	"No Handle Present" },
+	{ 0x00,	NULL },
+};
+
+
+static const value_string ncp_handle_info_level_vals[] = {
+	{ 0x00,	"Get Limited Information from a File Handle" },
+	{ 0x01,	"Get Limited Information from a File Handle Using a Name Space" },
+	{ 0x02,	"Get Information from a File Handle" },
+	{ 0x03,	"Get Information from a Directory Handle" },
+	{ 0x04,	"Get Complete Information from a Directory Handle" },
+	{ 0x05,	"Get Complete Information from a File Handle" },
+	{ 0x00,	NULL },
+};
+
+
+static const value_string ncp_hot_fix_disabled_vals[] = {
+	{ 0x00,	"Enabled" },
+	{ 0x01,	"Disabled" },
+	{ 0x00,	NULL },
+};
+
+
+static const value_string ncp_info_level_num_vals[] = {
+	{ 0x01,	"Volume Information Definition" },
+	{ 0x02,	"Volume Information 2 Definition" },
+	{ 0x00,	NULL },
+};
+
+
+static const value_string ncp_lan_dvr_mode_flags_vals[] = {
+	{ 0x80,	"Canonical Address" },
+	{ 0x81,	"Canonical Address" },
+	{ 0x82,	"Canonical Address" },
+	{ 0x83,	"Canonical Address" },
+	{ 0x84,	"Canonical Address" },
+	{ 0x85,	"Canonical Address" },
+	{ 0x86,	"Canonical Address" },
+	{ 0x87,	"Canonical Address" },
+	{ 0x88,	"Canonical Address" },
+	{ 0x89,	"Canonical Address" },
+	{ 0x8a,	"Canonical Address" },
+	{ 0x8b,	"Canonical Address" },
+	{ 0x8c,	"Canonical Address" },
+	{ 0x8d,	"Canonical Address" },
+	{ 0x8e,	"Canonical Address" },
+	{ 0x8f,	"Canonical Address" },
+	{ 0x90,	"Canonical Address" },
+	{ 0x91,	"Canonical Address" },
+	{ 0x92,	"Canonical Address" },
+	{ 0x93,	"Canonical Address" },
+	{ 0x94,	"Canonical Address" },
+	{ 0x95,	"Canonical Address" },
+	{ 0x96,	"Canonical Address" },
+	{ 0x97,	"Canonical Address" },
+	{ 0x98,	"Canonical Address" },
+	{ 0x99,	"Canonical Address" },
+	{ 0x9a,	"Canonical Address" },
+	{ 0x9b,	"Canonical Address" },
+	{ 0x9c,	"Canonical Address" },
+	{ 0x9d,	"Canonical Address" },
+	{ 0x9e,	"Canonical Address" },
+	{ 0x9f,	"Canonical Address" },
+	{ 0xa0,	"Canonical Address" },
+	{ 0xa1,	"Canonical Address" },
+	{ 0xa2,	"Canonical Address" },
+	{ 0xa3,	"Canonical Address" },
+	{ 0xa4,	"Canonical Address" },
+	{ 0xa5,	"Canonical Address" },
+	{ 0xa6,	"Canonical Address" },
+	{ 0xa7,	"Canonical Address" },
+	{ 0xa8,	"Canonical Address" },
+	{ 0xa9,	"Canonical Address" },
+	{ 0xaa,	"Canonical Address" },
+	{ 0xab,	"Canonical Address" },
+	{ 0xac,	"Canonical Address" },
+	{ 0xad,	"Canonical Address" },
+	{ 0xae,	"Canonical Address" },
+	{ 0xaf,	"Canonical Address" },
+	{ 0xb0,	"Canonical Address" },
+	{ 0xb1,	"Canonical Address" },
+	{ 0xb2,	"Canonical Address" },
+	{ 0xb3,	"Canonical Address" },
+	{ 0xb4,	"Canonical Address" },
+	{ 0xb5,	"Canonical Address" },
+	{ 0xb6,	"Canonical Address" },
+	{ 0xb7,	"Canonical Address" },
+	{ 0xb8,	"Canonical Address" },
+	{ 0xb9,	"Canonical Address" },
+	{ 0xba,	"Canonical Address" },
+	{ 0xbb,	"Canonical Address" },
+	{ 0xbc,	"Canonical Address" },
+	{ 0xbd,	"Canonical Address" },
+	{ 0xbe,	"Canonical Address" },
+	{ 0xbf,	"Canonical Address" },
+	{ 0xc0,	"Non-Canonical Address" },
+	{ 0xc1,	"Non-Canonical Address" },
+	{ 0xc2,	"Non-Canonical Address" },
+	{ 0xc3,	"Non-Canonical Address" },
+	{ 0xc4,	"Non-Canonical Address" },
+	{ 0xc5,	"Non-Canonical Address" },
+	{ 0xc6,	"Non-Canonical Address" },
+	{ 0xc7,	"Non-Canonical Address" },
+	{ 0xc8,	"Non-Canonical Address" },
+	{ 0xc9,	"Non-Canonical Address" },
+	{ 0xca,	"Non-Canonical Address" },
+	{ 0xcb,	"Non-Canonical Address" },
+	{ 0xcc,	"Non-Canonical Address" },
+	{ 0xcd,	"Non-Canonical Address" },
+	{ 0xce,	"Non-Canonical Address" },
+	{ 0xcf,	"Non-Canonical Address" },
+	{ 0xd0,	"Non-Canonical Address" },
+	{ 0xd1,	"Non-Canonical Address" },
+	{ 0xd2,	"Non-Canonical Address" },
+	{ 0xd3,	"Non-Canonical Address" },
+	{ 0xd4,	"Non-Canonical Address" },
+	{ 0xd5,	"Non-Canonical Address" },
+	{ 0xd6,	"Non-Canonical Address" },
+	{ 0xd7,	"Non-Canonical Address" },
+	{ 0xd8,	"Non-Canonical Address" },
+	{ 0xd9,	"Non-Canonical Address" },
+	{ 0xda,	"Non-Canonical Address" },
+	{ 0xdb,	"Non-Canonical Address" },
+	{ 0xdc,	"Non-Canonical Address" },
+	{ 0xdd,	"Non-Canonical Address" },
+	{ 0xde,	"Non-Canonical Address" },
+	{ 0xdf,	"Non-Canonical Address" },
+	{ 0xe0,	"Non-Canonical Address" },
+	{ 0xe1,	"Non-Canonical Address" },
+	{ 0xe2,	"Non-Canonical Address" },
+	{ 0xe3,	"Non-Canonical Address" },
+	{ 0xe4,	"Non-Canonical Address" },
+	{ 0xe5,	"Non-Canonical Address" },
+	{ 0xe6,	"Non-Canonical Address" },
+	{ 0xe7,	"Non-Canonical Address" },
+	{ 0xe8,	"Non-Canonical Address" },
+	{ 0xe9,	"Non-Canonical Address" },
+	{ 0xea,	"Non-Canonical Address" },
+	{ 0xeb,	"Non-Canonical Address" },
+	{ 0xec,	"Non-Canonical Address" },
+	{ 0xed,	"Non-Canonical Address" },
+	{ 0xee,	"Non-Canonical Address" },
+	{ 0xef,	"Non-Canonical Address" },
+	{ 0xf0,	"Non-Canonical Address" },
+	{ 0xf1,	"Non-Canonical Address" },
+	{ 0xf2,	"Non-Canonical Address" },
+	{ 0xf3,	"Non-Canonical Address" },
+	{ 0xf4,	"Non-Canonical Address" },
+	{ 0xf5,	"Non-Canonical Address" },
+	{ 0xf6,	"Non-Canonical Address" },
+	{ 0xf7,	"Non-Canonical Address" },
+	{ 0xf8,	"Non-Canonical Address" },
+	{ 0xf9,	"Non-Canonical Address" },
+	{ 0xfa,	"Non-Canonical Address" },
+	{ 0xfb,	"Non-Canonical Address" },
+	{ 0xfc,	"Non-Canonical Address" },
+	{ 0xfd,	"Non-Canonical Address" },
+	{ 0xfe,	"Non-Canonical Address" },
+	{ 0xff,	"Non-Canonical Address" },
+	{ 0x00,	NULL },
+};
+
+
+static const value_string ncp_lock_flag_vals[] = {
+	{ 0x00,	"Not Locked, Log for Future Exclusive Lock" },
+	{ 0x01,	"Exclusive Lock (Read/Write)" },
+	{ 0x02,	"Log for Future Shared Lock" },
+	{ 0x03,	"Shareable Lock (Read-Only)" },
+	{ 0xfe,	"Locked by a File Lock" },
+	{ 0xff,	"Locked by Begin Share File Set" },
+	{ 0x00,	NULL },
+};
+
+
+static const value_string ncp_lock_status_vals[] = {
+	{ 0x00,	"Locked Exclusive" },
+	{ 0x01,	"Locked Shareable" },
+	{ 0x02,	"Logged" },
+	{ 0x06,	"Lock is Held by TTS" },
+	{ 0x00,	NULL },
+};
+
+
+static const value_string ncp_lock_type_vals[] = {
+	{ 0x00,	"Locked" },
+	{ 0x01,	"Open Shareable" },
+	{ 0x02,	"Logged" },
+	{ 0x03,	"Open Normal" },
+	{ 0x06,	"TTS Holding Lock" },
+	{ 0x07,	"Transaction Flag Set on This File" },
+	{ 0x00,	NULL },
+};
+
+
+static const value_string ncp_locked_vals[] = {
+	{ 0x00,	"Not Locked Exclusively" },
+	{ 0x01,	"Locked Exclusively" },
+	{ 0x00,	NULL },
+};
+
+
+static const value_string ncp_media_object_type_vals[] = {
+	{ 0x00,	"Adapter" },
+	{ 0x01,	"Changer" },
+	{ 0x02,	"Removable Device" },
+	{ 0x03,	"Device" },
+	{ 0x04,	"Removable Media" },
+	{ 0x05,	"Partition" },
+	{ 0x06,	"Slot" },
+	{ 0x07,	"Hotfix" },
+	{ 0x08,	"Mirror" },
+	{ 0x09,	"Parity" },
+	{ 0x0a,	"Volume Segment" },
+	{ 0x0b,	"Volume" },
+	{ 0x0c,	"Clone" },
+	{ 0x0d,	"Fixed Media" },
+	{ 0x0e,	"Unknown" },
+	{ 0x00,	NULL },
+};
+
+
+static const value_string ncp_member_type_vals[] = {
+	{ 0x0000,	"Unknown" },
+	{ 0x0001,	"User" },
+	{ 0x0002,	"User group" },
+	{ 0x0003,	"Print queue" },
+	{ 0x0004,	"NetWare file server" },
+	{ 0x0005,	"Job server" },
+	{ 0x0006,	"Gateway" },
+	{ 0x0007,	"Print server" },
+	{ 0x0008,	"Archive queue" },
+	{ 0x0009,	"Archive server" },
+	{ 0x000a,	"Job queue" },
+	{ 0x000b,	"Administration" },
+	{ 0x0021,	"NAS SNA gateway" },
+	{ 0x0026,	"Remote bridge server" },
+	{ 0x0027,	"TCP/IP gateway" },
+	{ 0x0000,	NULL },
+};
+
+
+static const value_string ncp_mixed_mode_path_flag_vals[] = {
+	{ 0x00,	"Mixed mode path handling is not available" },
+	{ 0x01,	"Mixed mode path handling is available" },
+	{ 0x00,	NULL },
+};
+
+
+static const value_string ncp_more_flag_vals[] = {
+	{ 0x00,	"No More Segments/Entries Available" },
+	{ 0x01,	"More Segments/Entries Available" },
+	{ 0xff,	"More Segments/Entries Available" },
+	{ 0x00,	NULL },
+};
+
+
+static const value_string ncp_more_properties_vals[] = {
+	{ 0x00,	"No More Properties Available" },
+	{ 0x01,	"No More Properties Available" },
+	{ 0xff,	"More Properties Available" },
+	{ 0x00,	NULL },
+};
+
+
+static const value_string ncp_name_space_vals[] = {
+	{ 0x00,	"DOS" },
+	{ 0x01,	"MAC" },
+	{ 0x02,	"NFS" },
+	{ 0x03,	"FTAM" },
+	{ 0x04,	"OS/2, Long" },
+	{ 0x00,	NULL },
+};
+
+
+static const value_string ncp_nlm_type_vals[] = {
+	{ 0x00,	"Generic NLM (.NLM)" },
+	{ 0x01,	"LAN Driver (.LAN)" },
+	{ 0x02,	"Disk Driver (.DSK)" },
+	{ 0x03,	"Name Space Support Module (.NAM)" },
+	{ 0x04,	"Utility or Support Program (.NLM)" },
+	{ 0x05,	"Mirrored Server Link (.MSL)" },
+	{ 0x06,	"OS NLM (.NLM)" },
+	{ 0x07,	"Paged High OS NLM (.NLM)" },
+	{ 0x08,	"Host Adapter Module (.HAM)" },
+	{ 0x09,	"Custom Device Module (.CDM)" },
+	{ 0x0a,	"File System Engine (.NLM)" },
+	{ 0x0b,	"Real Mode NLM (.NLM)" },
+	{ 0x0c,	"Hidden NLM (.NLM)" },
+	{ 0x15,	"NICI Support (.NLM)" },
+	{ 0x16,	"NICI Support (.NLM)" },
+	{ 0x17,	"Cryptography (.NLM)" },
+	{ 0x18,	"Encryption (.NLM)" },
+	{ 0x19,	"NICI Support (.NLM)" },
+	{ 0x1c,	"NICI Support (.NLM)" },
+	{ 0x00,	NULL },
+};
+
+
+static const value_string ncp_o_c_ret_flags_vals[] = {
+	{ 0x00,	"No CallBack has been registered (No Op-Lock)" },
+	{ 0x01,	"Request has been registered for CallBack (Op-Lock)" },
+	{ 0x00,	NULL },
+};
+
+
+static const value_string ncp_object_flags_vals[] = {
+	{ 0x00,	"Dynamic object" },
+	{ 0x01,	"Static object" },
+	{ 0x00,	NULL },
+};
+
+
+static const value_string ncp_object_has_properites_vals[] = {
+	{ 0x00,	"No properties" },
+	{ 0xff,	"One or more properties" },
+	{ 0x00,	NULL },
+};
+
+
+static const value_string ncp_object_security_vals[] = {
+	{ 0x00,	"Object Read (Anyone) / Object Write (Anyone)" },
+	{ 0x01,	"Object Read (Logged in) / Object Write (Anyone)" },
+	{ 0x02,	"Object Read (Logged in as Object) / Object Write (Anyone)" },
+	{ 0x03,	"Object Read (Supervisor) / Object Write (Anyone)" },
+	{ 0x04,	"Object Read (Operating System Only) / Object Write (Anyone)" },
+	{ 0x10,	"Object Read (Anyone) / Object Write (Logged in)" },
+	{ 0x11,	"Object Read (Logged in) / Object Write (Logged in)" },
+	{ 0x12,	"Object Read (Logged in as Object) / Object Write (Logged in)" },
+	{ 0x13,	"Object Read (Supervisor) / Object Write (Logged in)" },
+	{ 0x14,	"Object Read (Operating System Only) / Object Write (Logged in)" },
+	{ 0x20,	"Object Read (Anyone) / Object Write (Logged in as Object)" },
+	{ 0x21,	"Object Read (Logged in) / Object Write (Logged in as Object)" },
+	{ 0x22,	"Object Read (Logged in as Object) / Object Write (Logged in as Object)" },
+	{ 0x23,	"Object Read (Supervisor) / Object Write (Logged in as Object)" },
+	{ 0x24,	"Object Read (Operating System Only) / Object Write (Logged in as Object)" },
+	{ 0x30,	"Object Read (Anyone) / Object Write (Supervisor)" },
+	{ 0x31,	"Object Read (Logged in) / Object Write (Supervisor)" },
+	{ 0x32,	"Object Read (Logged in as Object) / Object Write (Supervisor)" },
+	{ 0x33,	"Object Read (Supervisor) / Object Write (Supervisor)" },
+	{ 0x34,	"Object Read (Operating System Only) / Object Write (Supervisor)" },
+	{ 0x40,	"Object Read (Anyone) / Object Write (Operating System Only)" },
+	{ 0x41,	"Object Read (Logged in) / Object Write (Operating System Only)" },
+	{ 0x42,	"Object Read (Logged in as Object) / Object Write (Operating System Only)" },
+	{ 0x43,	"Object Read (Supervisor) / Object Write (Operating System Only)" },
+	{ 0x44,	"Object Read (Operating System Only) / Object Write (Operating System Only)" },
+	{ 0x00,	NULL },
+};
+
+
+static const value_string ncp_object_type_vals[] = {
+	{ 0x0000,	"Unknown" },
+	{ 0x0001,	"User" },
+	{ 0x0002,	"User group" },
+	{ 0x0003,	"Print queue" },
+	{ 0x0004,	"NetWare file server" },
+	{ 0x0005,	"Job server" },
+	{ 0x0006,	"Gateway" },
+	{ 0x0007,	"Print server" },
+	{ 0x0008,	"Archive queue" },
+	{ 0x0009,	"Archive server" },
+	{ 0x000a,	"Job queue" },
+	{ 0x000b,	"Administration" },
+	{ 0x0021,	"NAS SNA gateway" },
+	{ 0x0026,	"Remote bridge server" },
+	{ 0x0027,	"TCP/IP gateway" },
+	{ 0x0047,	"Novell Print Server" },
+	{ 0x004b,	"Btrieve Server" },
+	{ 0x004c,	"NetWare SQL Server" },
+	{ 0x0064,	"ARCserve" },
+	{ 0x0066,	"ARCserve 3.0" },
+	{ 0x0076,	"NetWare SQL" },
+	{ 0x00a0,	"Gupta SQL Base Server" },
+	{ 0x00a1,	"Powerchute" },
+	{ 0x0107,	"NetWare Remote Console" },
+	{ 0x01cb,	"Shiva NetModem/E" },
+	{ 0x01cc,	"Shiva LanRover/E" },
+	{ 0x01cd,	"Shiva LanRover/T" },
+	{ 0x01d8,	"Castelle FAXPress Server" },
+	{ 0x01da,	"Castelle Print Server" },
+	{ 0x01dc,	"Castelle Fax Server" },
+	{ 0x0200,	"Novell SQL Server" },
+	{ 0x023a,	"NetWare Lanalyzer Agent" },
+	{ 0x023c,	"DOS Target Service Agent" },
+	{ 0x023f,	"NetWare Server Target Service Agent" },
+	{ 0x024f,	"Appletalk Remote Access Service" },
+	{ 0x0263,	"NetWare Management Agent" },
+	{ 0x0264,	"Global MHS" },
+	{ 0x0265,	"SNMP" },
+	{ 0x026a,	"NetWare Management/NMS Console" },
+	{ 0x026b,	"NetWare Time Synchronization" },
+	{ 0x0273,	"Nest Device" },
+	{ 0x0274,	"GroupWise Message Multiple Servers" },
+	{ 0x0278,	"NDS Replica Server" },
+	{ 0x0282,	"NDPS Service Registry Service" },
+	{ 0x028a,	"MPR/IPX Address Mapping Gateway" },
+	{ 0x028b,	"ManageWise" },
+	{ 0x0293,	"NetWare 6" },
+	{ 0x030c,	"HP JetDirect" },
+	{ 0x0328,	"Watcom SQL Server" },
+	{ 0x0355,	"Backup Exec" },
+	{ 0x039b,	"Lotus Notes" },
+	{ 0x03e1,	"Univel Server" },
+	{ 0x03f5,	"Microsoft SQL Server" },
+	{ 0x055e,	"Lexmark Print Server" },
+	{ 0x0640,	"Microsoft Gateway Services for NetWare" },
+	{ 0x064e,	"Microsoft Internet Information Server" },
+	{ 0x077b,	"Advantage Database Server" },
+	{ 0x07a7,	"Backup Exec Job Queue" },
+	{ 0x07a8,	"Backup Exec Job Manager" },
+	{ 0x07a9,	"Backup Exec Job Service" },
+	{ 0x5555,	"Site Lock" },
+	{ 0x8202,	"NDPS Broker" },
+	{ 0x0000,	NULL },
+};
+
+
+static const value_string ncp_path_cookie_flags_vals[] = {
+	{ 0x0000,	"Last component is Not a File Name" },
+	{ 0x0001,	"Last component is a File Name" },
+	{ 0x0000,	NULL },
+};
+
+
+static const value_string ncp_physical_drive_type_vals[] = {
+	{ 0x01,	"XT" },
+	{ 0x02,	"AT" },
+	{ 0x03,	"SCSI" },
+	{ 0x04,	"Disk Coprocessor" },
+	{ 0x05,	"PS/2 with MFM Controller" },
+	{ 0x06,	"PS/2 with ESDI Controller" },
+	{ 0x07,	"Convergent Technology SBIC" },
+	{ 0x00,	NULL },
+};
+
+
+static const value_string ncp_printer_halted_vals[] = {
+	{ 0x00,	"Printer is not Halted" },
+	{ 0xff,	"Printer is Halted" },
+	{ 0x00,	NULL },
+};
+
+
+static const value_string ncp_printer_offline_vals[] = {
+	{ 0x00,	"Printer is On-Line" },
+	{ 0xff,	"Printer is Off-Line" },
+	{ 0x00,	NULL },
+};
+
+
+static const value_string ncp_processor_type_vals[] = {
+	{ 0x00,	"Motorola 68000" },
+	{ 0x01,	"Intel 8088 or 8086" },
+	{ 0x02,	"Intel 80286" },
+	{ 0x00,	NULL },
+};
+
+
+static const value_string ncp_property_has_more_segments_vals[] = {
+	{ 0x00,	"Is last segment" },
+	{ 0xff,	"More segments are available" },
+	{ 0x00,	NULL },
+};
+
+
+static const value_string ncp_property_type_vals[] = {
+	{ 0x00,	"Display Static property" },
+	{ 0x01,	"Display Dynamic property" },
+	{ 0x02,	"Set Static property" },
+	{ 0x03,	"Set Dynamic property" },
+	{ 0x00,	NULL },
+};
+
+
+static const value_string ncp_purge_flags_vals[] = {
+	{ 0x0000,	"Do not Purge All" },
+	{ 0x0001,	"Purge All" },
+	{ 0xffff,	"Do not Purge All" },
+	{ 0x0000,	NULL },
+};
+
+
+static const value_string ncp_record_in_use_vals[] = {
+	{ 0x0000,	"Record In Use" },
+	{ 0xffff,	"Record Not In Use" },
+	{ 0x0000,	NULL },
+};
+
+
+static const value_string ncp_request_code_vals[] = {
+	{ 0x00,	"Change Logged in to Temporary Authenticated" },
+	{ 0x01,	"Change Temporary Authenticated to Logged in" },
+	{ 0x00,	NULL },
+};
+
+
+static const value_string ncp_restrictions_enforced_vals[] = {
+	{ 0x00,	"Enforced" },
+	{ 0xff,	"Not Enforced" },
+	{ 0x00,	NULL },
+};
+
+
+static const value_string ncp_rev_query_flag_vals[] = {
+	{ 0x00,	"Do not query the locks engine for access rights" },
+	{ 0x01,	"Query the locks engine and return the access rights" },
+	{ 0x00,	NULL },
+};
+
+
+static const value_string ncp_rpc_c_code_vals[] = {
+	{ 0x0000,	"Successful" },
+	{ 0x0000,	NULL },
+};
+
+
+static const value_string ncp_s_day_of_week_vals[] = {
+	{ 0x00,	"Sunday" },
+	{ 0x01,	"Monday" },
+	{ 0x02,	"Tuesday" },
+	{ 0x03,	"Wednesday" },
+	{ 0x04,	"Thursday" },
+	{ 0x05,	"Friday" },
+	{ 0x06,	"Saturday" },
+	{ 0x00,	NULL },
+};
+
+
+static const value_string ncp_s_month_vals[] = {
+	{ 0x01,	"January" },
+	{ 0x02,	"Febuary" },
+	{ 0x03,	"March" },
+	{ 0x04,	"April" },
+	{ 0x05,	"May" },
+	{ 0x06,	"June" },
+	{ 0x07,	"July" },
+	{ 0x08,	"August" },
+	{ 0x09,	"September" },
+	{ 0x0a,	"October" },
+	{ 0x0b,	"November" },
+	{ 0x0c,	"December" },
+	{ 0x00,	NULL },
+};
+
+
+static const value_string ncp_send_status_vals[] = {
+	{ 0x00,	"Successful" },
+	{ 0x01,	"Illegal Station Number" },
+	{ 0x02,	"Client Not Logged In" },
+	{ 0x03,	"Client Not Accepting Messages" },
+	{ 0x04,	"Client Already has a Message" },
+	{ 0x96,	"No Alloc Space for the Message" },
+	{ 0xfd,	"Bad Station Number" },
+	{ 0xff,	"Failure" },
+	{ 0x00,	NULL },
+};
+
+
+static const value_string ncp_server_info_flags_vals[] = {
+	{ 0x0000,	"This server is not a member of a Cluster" },
+	{ 0x0001,	"This server is a member of a Cluster" },
+	{ 0x0000,	NULL },
+};
+
+
+static const value_string ncp_set_cmd_category_vals[] = {
+	{ 0x00,	"Communications" },
+	{ 0x01,	"Memory" },
+	{ 0x02,	"File Cache" },
+	{ 0x03,	"Directory Cache" },
+	{ 0x04,	"File System" },
+	{ 0x05,	"Locks" },
+	{ 0x06,	"Transaction Tracking" },
+	{ 0x07,	"Disk" },
+	{ 0x08,	"Time" },
+	{ 0x09,	"NCP" },
+	{ 0x0a,	"Miscellaneous" },
+	{ 0x0b,	"Error Handling" },
+	{ 0x0c,	"Directory Services" },
+	{ 0x0d,	"MultiProcessor" },
+	{ 0x0e,	"Service Location Protocol" },
+	{ 0x0f,	"Licensing Services" },
+	{ 0x00,	NULL },
+};
+
+
+static const value_string ncp_set_cmd_type_vals[] = {
+	{ 0x00,	"Numeric Value" },
+	{ 0x01,	"Boolean Value" },
+	{ 0x02,	"Ticks Value" },
+	{ 0x04,	"Time Value" },
+	{ 0x05,	"String Value" },
+	{ 0x06,	"Trigger Value" },
+	{ 0x07,	"Numeric Value" },
+	{ 0x00,	NULL },
+};
+
+
+static const value_string ncp_sft_support_level_vals[] = {
+	{ 0x01,	"Server Offers Hot Disk Error Fixing" },
+	{ 0x02,	"Server Offers Disk Mirroring and Transaction Tracking" },
+	{ 0x03,	"Server Offers Physical Server Mirroring" },
+	{ 0x00,	NULL },
+};
+
+
+static const value_string ncp_src_name_space_vals[] = {
+	{ 0x00,	"DOS Name Space" },
+	{ 0x01,	"MAC Name Space" },
+	{ 0x02,	"NFS Name Space" },
+	{ 0x04,	"Long Name Space" },
+	{ 0x00,	NULL },
+};
+
+
+static const value_string ncp_timesync_status_server_type_vals[] = {
+	{ 0x00000001,	"Client Time Server" },
+	{ 0x00000002,	"Secondary Time Server" },
+	{ 0x00000003,	"Primary Time Server" },
+	{ 0x00000004,	"Reference Time Server" },
+	{ 0x00000005,	"Single Reference Time Server" },
+	{ 0x00000000,	NULL },
+};
+
+
+static const value_string ncp_transport_type_vals[] = {
+	{ 0x01,	"Internet Packet Exchange (IPX)" },
+	{ 0x05,	"User Datagram Protocol (UDP)" },
+	{ 0x06,	"Transmission Control Protocol (TCP)" },
+	{ 0x00,	NULL },
+};
+
+
+static const value_string ncp_user_info_use_count_vals[] = {
+	{ 0x0000,	"Connection is not in use" },
+	{ 0x0001,	"Connection is in use" },
+	{ 0x0000,	NULL },
+};
+
+
+static const value_string ncp_user_login_allowed_vals[] = {
+	{ 0x00,	"Client Login Disabled" },
+	{ 0x01,	"Client Login Enabled" },
+	{ 0x00,	NULL },
+};
+
+
+static const value_string ncp_value_available_vals[] = {
+	{ 0x00,	"Has No Value" },
+	{ 0xff,	"Has Value" },
+	{ 0x00,	NULL },
+};
+
+
+static const value_string ncp_volume_cached_flag_vals[] = {
+	{ 0x00,	"Volume is Not Cached" },
+	{ 0xff,	"Volume is Cached" },
+	{ 0x00,	NULL },
+};
+
+
+static const value_string ncp_volume_hashed_flag_vals[] = {
+	{ 0x00,	"Volume is Not Hashed" },
+	{ 0xff,	"Volume is Hashed" },
+	{ 0x00,	NULL },
+};
+
+
+static const value_string ncp_volume_mounted_flag_vals[] = {
+	{ 0x00,	"Volume is Not Mounted" },
+	{ 0xff,	"Volume is Mounted" },
+	{ 0x00,	NULL },
+};
+
+
+static const value_string ncp_volume_removable_flag_vals[] = {
+	{ 0x00,	"Disk Cannot be Removed from Server" },
+	{ 0xff,	"Disk Can be Removed from Server" },
+	{ 0x00,	NULL },
+};
+
+
+static const value_string ncp_volume_request_flags_vals[] = {
+	{ 0x0000,	"Return name with volume number" },
+	{ 0x0001,	"Do not return name with volume number" },
+	{ 0x0000,	NULL },
+};
+
+
+static const value_string ncp_volume_type_vals[] = {
+	{ 0x0000,	"NetWare 386" },
+	{ 0x0001,	"NetWare 286" },
+	{ 0x0002,	"NetWare 386 Version 30" },
+	{ 0x0003,	"NetWare 386 Version 31" },
+	{ 0x0000,	NULL },
+};
+
+
+static const value_string ncp_year_vals[] = {
+	{ 0x50,	"1980" },
+	{ 0x51,	"1981" },
+	{ 0x52,	"1982" },
+	{ 0x53,	"1983" },
+	{ 0x54,	"1984" },
+	{ 0x55,	"1985" },
+	{ 0x56,	"1986" },
+	{ 0x57,	"1987" },
+	{ 0x58,	"1988" },
+	{ 0x59,	"1989" },
+	{ 0x5a,	"1990" },
+	{ 0x5b,	"1991" },
+	{ 0x5c,	"1992" },
+	{ 0x5d,	"1993" },
+	{ 0x5e,	"1994" },
+	{ 0x5f,	"1995" },
+	{ 0x60,	"1996" },
+	{ 0x61,	"1997" },
+	{ 0x62,	"1998" },
+	{ 0x63,	"1999" },
+	{ 0x64,	"2000" },
+	{ 0x65,	"2001" },
+	{ 0x66,	"2002" },
+	{ 0x67,	"2003" },
+	{ 0x68,	"2004" },
+	{ 0x69,	"2005" },
+	{ 0x6a,	"2006" },
+	{ 0x6b,	"2007" },
+	{ 0x6c,	"2008" },
+	{ 0x6d,	"2009" },
+	{ 0x6e,	"2010" },
+	{ 0x6f,	"2011" },
+	{ 0x70,	"2012" },
+	{ 0x71,	"2013" },
+	{ 0x72,	"2014" },
+	{ 0x73,	"2015" },
+	{ 0x74,	"2016" },
+	{ 0x75,	"2017" },
+	{ 0x76,	"2018" },
+	{ 0x77,	"2019" },
+	{ 0x78,	"2020" },
+	{ 0x79,	"2021" },
+	{ 0x7a,	"2022" },
+	{ 0x7b,	"2023" },
+	{ 0x7c,	"2024" },
+	{ 0x7d,	"2025" },
+	{ 0x7e,	"2026" },
+	{ 0x7f,	"2027" },
+	{ 0xc0,	"1984" },
+	{ 0xc1,	"1985" },
+	{ 0xc2,	"1986" },
+	{ 0xc3,	"1987" },
+	{ 0xc4,	"1988" },
+	{ 0xc5,	"1989" },
+	{ 0xc6,	"1990" },
+	{ 0xc7,	"1991" },
+	{ 0xc8,	"1992" },
+	{ 0xc9,	"1993" },
+	{ 0xca,	"1994" },
+	{ 0xcb,	"1995" },
+	{ 0xcc,	"1996" },
+	{ 0xcd,	"1997" },
+	{ 0xce,	"1998" },
+	{ 0xcf,	"1999" },
+	{ 0xd0,	"2000" },
+	{ 0xd1,	"2001" },
+	{ 0xd2,	"2002" },
+	{ 0xd3,	"2003" },
+	{ 0xd4,	"2004" },
+	{ 0xd5,	"2005" },
+	{ 0xd6,	"2006" },
+	{ 0xd7,	"2007" },
+	{ 0xd8,	"2008" },
+	{ 0xd9,	"2009" },
+	{ 0xda,	"2010" },
+	{ 0xdb,	"2011" },
+	{ 0xdc,	"2012" },
+	{ 0xdd,	"2013" },
+	{ 0xde,	"2014" },
+	{ 0xdf,	"2015" },
+	{ 0x00,	NULL },
+};
+
+/* Error 0x0002 not used: Ok. The data has been written */
+/* Error 0x0100 not used: One or more of the Connection Numbers in the send list are invalid */
+/* Error 0x0103 not used: Queue server cannot add jobs */
+/* Error 0x0105 not used: Semaphore overflow */
+/* Error 0x0200 not used: One or more clients in the send list are not logged in */
+/* Error 0x0201 not used: Queue server cannot attach */
+/* Error 0x0400 not used: Client already has message */
+/* Error 0x0401 not used: Queue server cannot service job */
+/* Error 0x8c02 not used: Unauthorized to change the restriction on this volume */
+/* Error 0x8d01 not used: The affected file is in use */
+/* Error 0x9100 not used: Some of the affected files already exist */
+/* Error 0x9601 not used: No alloc space for message */
+/* Error 0x9801 not used: The volume associated with Volume Number is not mounted */
+/* Error 0x9803 not used: The destination volume is not mounted */
+/* Error 0x9b01 not used: A resulting directory handle is not associated with a valid directory path */
+/* Error 0x9b02 not used: The directory associated with DirHandle does not exist */
+/* Error 0x9c01 not used: The resulting file path is not valid */
+/* Error 0x9c02 not used: The resulting directory path is not valid */
+/* Error 0x9e01 not used: The new directory name does not conform to a legal name for this name space */
+/* Error 0xa200 not used: The request attempted to read from a file region that is physically locked */
+/* Error 0xc100 not used: The ACCOUNT_BALANCE property does not exist */
+/* Error 0xc300 not used: Too many holds have been placed against this account */
+/* Error 0xc502 not used: Server Login Locked */
+/* Error 0xc600 not used: The caller does not have operator priviliges */
+/* Error 0xca00 not used: Invalid EA Handle Type */
+/* Error 0xcc00 not used: EA Number Mismatch */
+/* Error 0xcd00 not used: Extent Number Out of Range */
+/* Error 0xd001 not used: EA Position Out of Range */
+/* Error 0xd201 not used: A queue server is not associated with the selected queue */
+/* Error 0xd401 not used: The queue associated with ObjectId is full and cannot accept another request */
+/* Error 0xd501 not used: No queue job */
+/* Error 0xd502 not used: The job associated with JobNumber does not exist in this queue */
+/* Error 0xd503 not used: Inspect Failure */
+/* Error 0xd602 not used: EA Already Claimed */
+/* Error 0xd702 not used: The job is currently being serviced */
+/* Error 0xd704 not used: Queue servicing */
+/* Error 0xd705 not used: Odd Buffer Size */
+/* Error 0xd801 not used: No Scorecards */
+/* Error 0xd901 not used: The client is not security equivalent to one of the objects in the Q_SERVERS group property of the target queue */
+/* Error 0xd903 not used: Bad EDS Signature */
+/* Error 0xda02 not used: EA Space Limit */
+/* Error 0xdb01 not used: The queue cannot attach another queue server */
+/* Error 0xdb03 not used: EA Key Corrupt */
+/* Error 0xdc01 not used: EA Key Limit */
+/* Error 0xdd00 not used: Tally Corrupt */
+/* Error 0xea01 not used: The bindery object is not a member of the set */
+/* Error 0xea02 not used: Non-existent member */
+/* Error 0xed01 not used: The property already exists */
+/* Error 0xed02 not used: An attempt was made to create a bindery object property that already exists */
+/* Error 0xee01 not used: The bindery object already exists */
+/* Error 0xef02 not used: Invalid name */
+/* Error 0xf102 not used: Invalid bindery security */
+/* Error 0xf401 not used: No object delete privileges */
+/* Error 0xf402 not used: Unauthorized to delete this queue */
+/* Error 0xf500 not used: Unauthorized to create this object */
+/* Error 0xf601 not used: Unauthorized to delete the property of this object */
+/* Error 0xf602 not used: Unauthorized to delete this property */
+/* Error 0xf701 not used: No property create privilege */
+/* Error 0xfb03 not used: The PASSWORD property does not exist for this bindery object */
+/* Error 0xfc00 not used: The message queue cannot accept another message */
+/* Error 0xfc04 not used: A bindery object does not exist that matches */
+/* Error 0xfc05 not used: The specified queue does not exist */
+/* Error 0xfe03 not used: No more restrictions were found */
+/* Error 0xfe05 not used: The file server was unable to lock all files within the specified time limit */
+/* Error 0xfe06 not used: The bindery object associated with ObjectID is not a valid trustee */
+/* Error 0xfe08 not used: Bindery locked */
+/* Error 0xfe09 not used: Invalid semaphore name length */
+/* Error 0xfe0a not used: The file server was unable to complete the operation within the specified time limit */
+/* Error 0xff02 not used: File not found */
+/* Error 0xff04 not used: Record not found */
+/* Error 0xff05 not used: The logical record was not found */
+/* Error 0xff07 not used: No such printer */
+/* Error 0xff08 not used: Unable to complete the request */
+/* Error 0xff0b not used: A file matching the search criteria was not found */
+/* Error 0xff0d not used: Object associated with ObjectID is not a manager */
+/* Error 0xff0e not used: Invalid initial semaphore value */
+/* Error 0xff0f not used: The semaphore handle is not valid */
+/* Error 0xff10 not used: SemaphoreHandle is not associated with a valid sempahore */
+/* Error 0xff11 not used: Invalid semaphore handle */
+/* Error 0xff13 not used: The transaction has not yet been written to disk */
+/* Error 0xff14 not used: Directory already exists */
+/* Error 0xff15 not used: The file already exists and the deletion flag was not set */
+/* Error 0xff1c not used: Not Accepting Messages */
+
+
+/* Error strings. */
+static const char *ncp_errors[] = {
+	/* 00 (0x0000) */ "Ok",
+	/* 01 (0xff00) */ "Failure",
+	/* 02 (0x8200) */ "Unauthorized to open the file",
+	/* 03 (0x9600) */ "The file server has run out of memory to service this request",
+	/* 04 (0xfe0d) */ "Timeout",
+	/* 05 (0xff01) */ "Lock error",
+	/* 06 (0x9b00) */ "DirHandle is not associated with a valid directory path",
+	/* 07 (0x9c03) */ "Invalid path",
+	/* 08 (0xff1a) */ "Unlock Error",
+	/* 09 (0x9804) */ "Disk Map Error",
+	/* 10 (0x9b03) */ "Bad directory handle",
+	/* 11 (0xa100) */ "An unrecoverable error occured on the affected directory",
+	/* 12 (0xfd00) */ "Bad station number",
+	/* 13 (0x0104) */ "Out of disk space",
+	/* 14 (0x8000) */ "Lock fail",
+	/* 15 (0x8101) */ "Out of File Handles",
+	/* 16 (0x8701) */ "Create Filename Error",
+	/* 17 (0x8800) */ "Invalid file handle",
+	/* 18 (0x8d00) */ "Some of the affected files are in use by another client",
+	/* 19 (0x8e00) */ "All of the affected files are in use by another client",
+	/* 20 (0x8f00) */ "Some of the affected files are read-only",
+	/* 21 (0x9001) */ "All of the affected files are read-only",
+	/* 22 (0x9400) */ "Unauthorized to write to this file",
+	/* 23 (0x9500) */ "The affected file is detached",
+	/* 24 (0x9900) */ "The file server has run out of directory space on the affected volume",
+	/* 25 (0xa201) */ "I/O Lock Error",
+	/* 26 (0xff19) */ "Failure, No files found",
+	/* 27 (0x9300) */ "Unauthorized to read from this file",
+	/* 28 (0x9d00) */ "A directory handle was not available for allocation",
+	/* 29 (0xd000) */ "Queue error",
+	/* 30 (0xd100) */ "The queue does not exist",
+	/* 31 (0xd202) */ "No queue server",
+	/* 32 (0xd300) */ "No queue rights",
+	/* 33 (0xd400) */ "The queue is full and cannot accept another request",
+	/* 34 (0xda01) */ "Queue halted",
+	/* 35 (0xe800) */ "Write to group",
+	/* 36 (0xea00) */ "No such member",
+	/* 37 (0xeb00) */ "The property is not a set property",
+	/* 38 (0xec00) */ "No such set",
+	/* 39 (0xfc06) */ "No such object",
+	/* 40 (0xfe07) */ "Directory locked",
+	/* 41 (0xff06) */ "The printer associated with Printer Number does not exist",
+	/* 42 (0xfb05) */ "Bad Directory Handle",
+	/* 43 (0x8400) */ "Unauthorized to create the directory",
+	/* 44 (0xfb0a) */ "Station Not Logged In",
+	/* 45 (0xfa00) */ "Temporary remap error",
+	/* 46 (0x9c00) */ "The resulting path is not valid",
+	/* 47 (0x8c00) */ "No set privileges",
+	/* 48 (0x9e00) */ "The name of the directory does not conform to a legal name for this name space",
+	/* 49 (0x8a00) */ "Unauthorized to delete this file/directory",
+	/* 50 (0x9f00) */ "The request attempted to delete a directory that is in use by another client",
+	/* 51 (0xa000) */ "The request attempted to delete a directory that is not empty",
+	/* 52 (0x8b00) */ "Unauthorized to rename a file in this directory",
+	/* 53 (0x9200) */ "Directory with the new name already exists",
+	/* 54 (0xef00) */ "Illegal name",
+	/* 55 (0x8100) */ "A file handle could not be allocated by the file server",
+	/* 56 (0xff16) */ "No matching files or directories were found",
+	/* 57 (0xfb01) */ "The file server does not support this request",
+	/* 58 (0xff1d) */ "No More Salvageable Files in Directory",
+	/* 59 (0x8401) */ "Unauthorized to create the file",
+	/* 60 (0xfe02) */ "A file with the specified name already exists in this directory",
+	/* 61 (0x8500) */ "Unauthorized to delete the specified file",
+	/* 62 (0x8900) */ "Unauthorized to search this file/directory",
+	/* 63 (0xbf00) */ "Requests for this name space are not valid on this volume",
+	/* 64 (0xfb00) */ "No such property",
+	/* 65 (0x9800) */ "The affected volume is not mounted",
+	/* 66 (0xfe0e) */ "User Not Found",
+	/* 67 (0x0101) */ "Invalid space limit",
+	/* 68 (0x0106) */ "Invalid Parameter",
+	/* 69 (0x9000) */ "An attempt to modify a read-only volume occurred",
+	/* 70 (0x9802) */ "The resulting volume does not exist",
+	/* 71 (0x9002) */ "Read Only Access to Volume",
+	/* 72 (0xfe0f) */ "Trustee Not Found",
+	/* 73 (0xff09) */ "Unauthorized to change privileges of this trustee",
+	/* 74 (0x0102) */ "Insufficient disk space",
+	/* 75 (0x9101) */ "Some Names Exist",
+	/* 76 (0x9201) */ "All of the affected files already exist",
+	/* 77 (0x9a00) */ "Invalid request to rename the affected file to another volume",
+	/* 78 (0xa400) */ "Invalid directory rename attempted",
+	/* 79 (0xff17) */ "A file or directory matching the search criteria was not found",
+	/* 80 (0xbe00) */ "Invalid Data Stream",
+	/* 81 (0x7e01) */ "Invalid Length",
+	/* 82 (0xfb08) */ "Attempt to use an invalid parameter (drive number, path, or flag value) during a set drive path call",
+	/* 83 (0x9602) */ "Server Out of Space",
+	/* 84 (0xc101) */ "No Account Balance",
+	/* 85 (0xc200) */ "The object has exceeded its credit limit",
+	/* 86 (0xc501) */ "Login lockout",
+	/* 87 (0xd700) */ "Bad account",
+	/* 88 (0xd900) */ "The file server cannot accept another connection as it has reached its limit",
+	/* 89 (0xda00) */ "Attempted to login to the file server during a restricted time period",
+	/* 90 (0xdb00) */ "Attempted to login to the file server from an unauthorized workstation or network",
+	/* 91 (0xde00) */ "Attempted to login to the file server with an incorrect password",
+	/* 92 (0xdf00) */ "Attempted to login to the file server with a password that has expired",
+	/* 93 (0xed00) */ "Property exists",
+	/* 94 (0xf001) */ "An illegal wildcard was detected in ObjectName",
+	/* 95 (0xf100) */ "The client does not have the rights to access this bindery object",
+	/* 96 (0xf200) */ "Unauthorized to read from this object",
+	/* 97 (0xf600) */ "No property delete",
+	/* 98 (0xd600) */ "The file server does not allow unencrypted passwords",
+	/* 99 (0xf101) */ "Bindery security",
+	/* 100 (0xf501) */ "No object create",
+	/* 101 (0xc500) */ "Access to the account has been denied because of intruder detection",
+	/* 102 (0xd904) */ "Attempt to log in using an account which has limits on the number of concurrent connections and that number has been reached.",
+	/* 103 (0xdc00) */ "Account Expired",
+	/* 104 (0xfb02) */ "The specified property does not exist",
+	/* 105 (0x0109) */ "Cannot Obtain License",
+	/* 106 (0x7a00) */ "Connection Already Temporary",
+	/* 107 (0x7b00) */ "Connection Already Logged in",
+	/* 108 (0x7c00) */ "Connection Not Authenticated",
+	/* 109 (0xe000) */ "No Login Connections Available",
+	/* 110 (0xfb06) */ "Unknown Request",
+	/* 111 (0x0107) */ "Invalid Number of Minutes to Delay",
+	/* 112 (0xef01) */ "Illegal characters in ObjectName field",
+	/* 113 (0xfc02) */ "The specified bindery object does not exist",
+	/* 114 (0xfe01) */ "The files containing the bindery on the file server are locked",
+	/* 115 (0xe700) */ "No disk track",
+	/* 116 (0xee00) */ "The object already exists",
+	/* 117 (0xf000) */ "A wildcard was detected in a field that does not support wildcards",
+	/* 118 (0xf400) */ "Unauthorized to delete this object",
+	/* 119 (0xf300) */ "Unauthorized to rename this object",
+	/* 120 (0xf700) */ "Unauthorized to create this property",
+	/* 121 (0xec01) */ "The set property does not exist",
+	/* 122 (0xf900) */ "Unauthorized to read this property",
+	/* 123 (0xf800) */ "Unauthorized to write to this property",
+	/* 124 (0xfc03) */ "The bindery object associated with ObjectID does not exist",
+	/* 125 (0xd701) */ "The old and new password strings are identical",
+	/* 126 (0xe900) */ "The object is already a member of the group property",
+	/* 127 (0x0003) */ "Calling Station is a Manager",
+	/* 128 (0xff1e) */ "Calling Station is Not a Manager",
+	/* 129 (0xff0c) */ "Verification failed",
+	/* 130 (0xd200) */ "A queue server is not associated with this queue",
+	/* 131 (0xd500) */ "A job does not exist in this queue",
+	/* 132 (0xd601) */ "No job right",
+	/* 133 (0xd703) */ "The queue is currently servicing a job",
+	/* 134 (0xd800) */ "Queue not active",
+	/* 135 (0xd902) */ "Station is not a server",
+	/* 136 (0xdb02) */ "Maximum queue servers",
+	/* 137 (0xfc07) */ "The queue associated with ObjectID does not exist",
+	/* 138 (0xff18) */ "The file already exists",
+	/* 139 (0xff1f) */ "Bindery Failure",
+	/* 140 (0xc000) */ "Unauthorized to retrieve accounting data",
+	/* 141 (0xc400) */ "The client account has been disabled",
+	/* 142 (0xc601) */ "The client does not have operator priviliges",
+	/* 143 (0xfd02) */ "Lock collision",
+	/* 144 (0xfe04) */ "The file server was unable to lock the file within the specified time limit",
+	/* 145 (0xff03) */ "The file not found or cannot be unlocked",
+	/* 146 (0x0001) */ "Transaction tracking is available",
+	/* 147 (0xfd03) */ "Transaction tracking is disabled",
+	/* 148 (0xff12) */ "Transaction tracking is not available",
+	/* 149 (0xfe0b) */ "Transaction restart",
+	/* 150 (0x8301) */ "Hard I/O Error",
+	/* 151 (0x9e02) */ "Bad File Name",
+	/* 152 (0xff0a) */ "No files matching the search criteria were found",
+	/* 153 (0xfe00) */ "I/O failure",
+	/* 154 (0xff20) */ "NCP Extension Not Found",
+	/* 155 (0xd504) */ "Unknown NCP Extension Number",
+	/* 156 (0x8501) */ "Unauthorized to overwrite an existing file in this directory",
+	/* 157 (0x8300) */ "Unable to read/write the volume. Possible bad sector on the file server",
+	/* 158 (0xff1b) */ "I/O Bound Error",
+	/* 159 (0xcf00) */ "Invalid EA Handle",
+	/* 160 (0xd301) */ "EA Volume Not Mounted",
+	/* 161 (0xc800) */ "Missing EA Key",
+	/* 162 (0xc900) */ "EA Not Found",
+	/* 163 (0xcb00) */ "EA No Key No Data",
+	/* 164 (0xce00) */ "EA Bad Directory Number",
+	/* 165 (0xd101) */ "EA Access Denied",
+	/* 166 (0xd203) */ "Data Page Odd Size",
+	/* 167 (0xd402) */ "Bad Page Boundary",
+	/* 168 (0x7f00) */ "Lock Waiting",
+	/* 169 (0x8001) */ "File in Use",
+	/* 170 (0xa500) */ "Invalid open create mode",
+	/* 171 (0xa802) */ "No Access Rights",
+	/* 172 (0x8700) */ "An unexpected character was encountered in the filename",
+	/* 173 (0x8c01) */ "Unauthorized to modify a file in this directory",
+	/* 174 (0xfc01) */ "The trustee associated with ObjectId does not exist",
+	/* 175 (0x7300) */ "Revoke Handle Rights Not Found",
+	/* 176 (0xa600) */ "Auditor Access has been Removed",
+	/* 177 (0xa801) */ "No Auditing Access Rights",
+	/* 178 (0x0300) */ "One or more clients in the send list are not accepting messages",
+	/* 179 (0xa800) */ "Invalid Support Module ID",
+	/* 180 (0xfb0b) */ "Secret Store not running on this server, NCP Not supported",
+	/* 181 (0xfb09) */ "NMAS not running on this server, NCP NOT Supported",
+	/* 182 (0xfb04) */ "NDS NCP not available",
+	/* 183 (0xfe0c) */ "Bad packet",
+	/* 184 (0xfd01) */ "The connection associated with ConnectionNumber is not active",
+	/* 185 (0xa700) */ "Error Auditing Version",
+	/* 186 (0x7e00) */ "NCP failed boundary check",
+	/* 187 (0x7900) */ "Invalid Parameter in Request Packet",
+	/* 188 (0x0108) */ "Invalid Start or Network Number",
+	/* 189 (0x7901) */ "Nothing being Compressed",
+	/* 190 (0xfb07) */ "Invalid Subfunction Request",
+};
+
+/* Group not used: directory = Directory */
+/* Group not used: extended = Extended Attribute */
+/* Group not used: migration = Data Migration */
+/* Group not used: misc = Miscellaneous */
+/* Group not used: name = Name Space */
+/* Group not used: print = Print */
+/* Group not used: queue = Queue */
+/* Group not used: sync = Synchronization */
+/* Group not used: unknown = Unknown */
+
+
+/* Group strings. */
+static const char *ncp_groups[] = {
+	/* 00 (file) */ "File",
+	/* 01 (qms) */ "Queue Management System (QMS)",
+	/* 02 (connection) */ "Connection",
+	/* 03 (fileserver) */ "File Server",
+	/* 04 (message) */ "Message",
+	/* 05 (bindery) */ "Bindery",
+	/* 06 (nds) */ "NetWare Directory",
+	/* 07 (accounting) */ "Accounting",
+	/* 08 (stats) */ "Server Statistics",
+	/* 09 (tts) */ "Transaction Tracking",
+	/* 10 (afp) */ "AFP",
+	/* 11 (auditing) */ "Auditing",
+	/* 12 (nmas) */ "Novell Modular Authentication Service",
+	/* 13 (sss) */ "SecretStore Services",
+	/* 14 (comm) */ "Communication",
+};
+
+#define NCP_GROUP_FILE	0
+#define NCP_GROUP_QMS	1
+#define NCP_GROUP_CONNECTION	2
+#define NCP_GROUP_FILESERVER	3
+#define NCP_GROUP_MESSAGE	4
+#define NCP_GROUP_BINDERY	5
+#define NCP_GROUP_NDS	6
+#define NCP_GROUP_ACCOUNTING	7
+#define NCP_GROUP_STATS	8
+#define NCP_GROUP_TTS	9
+#define NCP_GROUP_AFP	10
+#define NCP_GROUP_AUDITING	11
+#define NCP_GROUP_NMAS	12
+#define NCP_GROUP_SSS	13
+#define NCP_GROUP_COMM	14
+
+
+/* Request-Condition dfilter records. The NULL pointer
+   is replaced by a pointer to the created dfilter_t. */
+static conditional_record req_conds[] = {
+	{ "(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_mod == 1)", NULL },
+	{ "ncp.enum_info_name==TRUE", NULL },
+	{ "(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_create == 1)", NULL },
+	{ "(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_arch == 1)", NULL },
+	{ "ncp.ns_info_mask_max_acc_mask == TRUE", NULL },
+	{ "(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_fname == 1)", NULL },
+	{ "ncp.handle_info_level==0x03", NULL },
+	{ "ncp.enum_info_auth==TRUE", NULL },
+	{ "(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_arch == 1)", NULL },
+	{ "ncp.ns_info_mask_modify == TRUE", NULL },
+	{ "ncp.enum_info_lock==TRUE", NULL },
+	{ "(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_eattr == 1)", NULL },
+	{ "(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_attr == 1)", NULL },
+	{ "ncp.enum_info_account==TRUE", NULL },
+	{ "(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_rights == 0)", NULL },
+	{ "ncp.ext_info_mac_finder == 1", NULL },
+	{ "ncp.info_flags_name == TRUE", NULL },
+	{ "(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_mod == 1)", NULL },
+	{ "(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_arch == 0)", NULL },
+	{ "ncp.sattr_sub!=TRUE", NULL },
+	{ "(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_fname == 1)", NULL },
+	{ "ncp.ext_info_dos_name == 1", NULL },
+	{ "ncp.search_att_sub == TRUE", NULL },
+	{ "ncp.enum_info_time==TRUE", NULL },
+	{ "ncp.ns_info_mask_aid == TRUE", NULL },
+	{ "(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_eattr == 0)", NULL },
+	{ "ncp.ns_info_mask_udate == TRUE", NULL },
+	{ "(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_eattr == 0)", NULL },
+	{ "(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_ns == 0)", NULL },
+	{ "(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_alloc == 0)", NULL },
+	{ "ncp.ret_info_mask_fname == 1", NULL },
+	{ "ncp.info_level_num==0x02", NULL },
+	{ "(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_attr == 0)", NULL },
+	{ "(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_ns == 0)", NULL },
+	{ "(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_size == 1)", NULL },
+	{ "ncp.ns_info_mask_uid == TRUE", NULL },
+	{ "(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_create == 1)", NULL },
+	{ "(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_rights == 1)", NULL },
+	{ "(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_ns == 1)", NULL },
+	{ "ncp.ns_info_mask_atime == TRUE", NULL },
+	{ "(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_alloc == 0)", NULL },
+	{ "(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_mod == 1)", NULL },
+	{ "(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_rights == 1)", NULL },
+	{ "(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_alloc == 1)", NULL },
+	{ "(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_ns == 1)", NULL },
+	{ "(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_ns == 1)", NULL },
+	{ "(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_attr == 1)", NULL },
+	{ "ncp.sattr_sub==TRUE", NULL },
+	{ "(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_create == 0)", NULL },
+	{ "(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_attr == 0)", NULL },
+	{ "ncp.ext_info_mac_date == 1", NULL },
+	{ "(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_create == 1)", NULL },
+	{ "ncp.dm_info_level == 0x01", NULL },
+	{ "ncp.dm_info_level == 0x00", NULL },
+	{ "(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_alloc == 1)", NULL },
+	{ "ncp.dm_info_level == 0x02", NULL },
+	{ "ncp.ext_info_update == 1", NULL },
+	{ "(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_mod == 0)", NULL },
+	{ "ncp.info_flags_flags == TRUE", NULL },
+	{ "(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_mod == 0)", NULL },
+	{ "ncp.ext_info_parental == 1", NULL },
+	{ "ncp.handle_info_level==0x04", NULL },
+	{ "ncp.handle_info_level==0x05", NULL },
+	{ "ncp.handle_info_level==0x02", NULL },
+	{ "(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_attr == 1)", NULL },
+	{ "ncp.handle_info_level==0x00", NULL },
+	{ "ncp.handle_info_level==0x01", NULL },
+	{ "(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_arch == 1)", NULL },
+	{ "(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_size == 0)", NULL },
+	{ "ncp.ext_info_access == 1", NULL },
+	{ "ncp.ns_info_mask_owner == TRUE", NULL },
+	{ "ncp.info_flags_security == TRUE", NULL },
+	{ "ncp.ext_info_sibling == 1", NULL },
+	{ "(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_tspace == 1)", NULL },
+	{ "ncp.ns_info_mask_cdate == TRUE", NULL },
+	{ "(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_create == 0)", NULL },
+	{ "(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_rights == 1)", NULL },
+	{ "(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_dir == 0)", NULL },
+	{ "ncp.enum_info_transport==TRUE", NULL },
+	{ "ncp.enum_info_stats==TRUE", NULL },
+	{ "(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_tspace == 1)", NULL },
+	{ "ncp.info_level_num==0x01", NULL },
+	{ "(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_eattr == 1)", NULL },
+	{ "ncp.ns_info_mask_adate == TRUE", NULL },
+	{ "(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_arch == 0)", NULL },
+	{ "(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_size == 1)", NULL },
+	{ "ncp.ctrl_flags==0x0000", NULL },
+	{ "(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_dir == 0)", NULL },
+	{ "(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_tspace == 0)", NULL },
+	{ "ncp.ns_info_mask_ctime == TRUE", NULL },
+	{ "ncp.ret_info_mask_actual == 1", NULL },
+	{ "ncp.ext_info_flush == 1", NULL },
+	{ "(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_size == 0)", NULL },
+	{ "(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_dir == 1)", NULL },
+	{ "(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_size == 1)", NULL },
+	{ "ncp.ext_info_effective == 1", NULL },
+	{ "(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_tspace == 1)", NULL },
+	{ "(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_eattr == 1)", NULL },
+	{ "ncp.enum_info_print==TRUE", NULL },
+	{ "(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_dir == 1)", NULL },
+	{ "ncp.ns_info_mask_fatt == TRUE", NULL },
+	{ "ncp.search_att_sub == FALSE", NULL },
+	{ "(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_dir == 1)", NULL },
+	{ "ncp.ns_info_mask_acc_date == TRUE", NULL },
+	{ "ncp.ns_info_mask_utime == TRUE", NULL },
+	{ "(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_alloc  == 1)", NULL },
+	{ "(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_tspace == 0)", NULL },
+	{ "ncp.info_flags_type == TRUE", NULL },
+	{ "ncp.ret_info_mask_ns_attr == 1", NULL },
+	{ "(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_rights == 0)", NULL },
+	{ "ncp.ret_info_mask_id == 1", NULL },
+	{ "ncp.ret_info_mask_logical == 1", NULL },
+	{ "ncp.ctrl_flags==0x0001", NULL },
+};
+#define NUM_REQ_CONDS 113
+#define NO_REQ_COND   NUM_REQ_CONDS
+
+
+/* PTVC records for bit-fields. */
+/* ncp_access_mode_bitfield */
+static gint ett_ncp_access_mode_bitfield;
+static const ptvc_record ptvc_ncp_access_mode_bitfield[] = {
+	{ &hf_ncp_acc_mode_comp, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_acc_mode_deny_write, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_acc_mode_deny_read, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_acc_mode_write, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_acc_mode_read, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+static const sub_ptvc_record ncp_access_mode_bitfield = {
+	&ett_ncp_access_mode_bitfield,
+	NULL,
+	ptvc_ncp_access_mode_bitfield,
+};
+
+/* ncp_access_privileges_bitfield */
+static gint ett_ncp_access_privileges_bitfield;
+static const ptvc_record ptvc_ncp_access_privileges_bitfield[] = {
+	{ &hf_ncp_acc_priv_modify, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_acc_priv_search, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_acc_priv_parent, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_acc_priv_delete, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_acc_priv_create, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_acc_priv_open, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_acc_priv_write, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_acc_priv_read, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+static const sub_ptvc_record ncp_access_privileges_bitfield = {
+	&ett_ncp_access_privileges_bitfield,
+	NULL,
+	ptvc_ncp_access_privileges_bitfield,
+};
+
+/* ncp_access_rights_mask_bitfield */
+static gint ett_ncp_access_rights_mask_bitfield;
+static const ptvc_record ptvc_ncp_access_rights_mask_bitfield[] = {
+	{ &hf_ncp_acc_rights_modify, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_acc_rights_search, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_acc_rights_parent, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_acc_rights_delete, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_acc_rights_create, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_acc_rights_open, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_acc_rights_write, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_acc_rights_read, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+static const sub_ptvc_record ncp_access_rights_mask_bitfield = {
+	&ett_ncp_access_rights_mask_bitfield,
+	NULL,
+	ptvc_ncp_access_rights_mask_bitfield,
+};
+
+/* ncp_access_rights_mask_word_bitfield */
+static gint ett_ncp_access_rights_mask_word_bitfield;
+static const ptvc_record ptvc_ncp_access_rights_mask_word_bitfield[] = {
+	{ &hf_ncp_acc_rights1_supervisor, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_acc_rights1_modify, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_acc_rights1_search, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_acc_rights1_parent, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_acc_rights1_delete, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_acc_rights1_create, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_acc_rights1_open, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_acc_rights1_write, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_acc_rights1_read, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+static const sub_ptvc_record ncp_access_rights_mask_word_bitfield = {
+	&ett_ncp_access_rights_mask_word_bitfield,
+	NULL,
+	ptvc_ncp_access_rights_mask_word_bitfield,
+};
+
+/* ncp_action_flag_bitfield */
+static gint ett_ncp_action_flag_bitfield;
+static const ptvc_record ptvc_ncp_action_flag_bitfield[] = {
+	{ &hf_ncp_act_flag_create, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_act_flag_replace, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_act_flag_open, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+static const sub_ptvc_record ncp_action_flag_bitfield = {
+	&ett_ncp_action_flag_bitfield,
+	NULL,
+	ptvc_ncp_action_flag_bitfield,
+};
+
+/* ncp_attr_def_bitfield */
+static gint ett_ncp_attr_def_bitfield;
+static const ptvc_record ptvc_ncp_attr_def_bitfield[] = {
+	{ &hf_ncp_att_def_shareable, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_att_def_archive, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_att_def_sub_only, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_att_def_execute, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_att_def_system, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_att_def_hidden, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_att_def_ro, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+static const sub_ptvc_record ncp_attr_def_bitfield = {
+	&ett_ncp_attr_def_bitfield,
+	NULL,
+	ptvc_ncp_attr_def_bitfield,
+};
+
+/* ncp_attr_def_16_bitfield */
+static gint ett_ncp_attr_def_16_bitfield;
+static const ptvc_record ptvc_ncp_attr_def_16_bitfield[] = {
+	{ &hf_ncp_att_def16_write_audit, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_att_def16_read_audit, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_att_def16_transaction, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_att_def16_shareable, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_att_def16_archive, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_att_def16_sub_only, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_att_def16_execute, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_att_def16_system, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_att_def16_hidden, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_att_def16_ro, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+static const sub_ptvc_record ncp_attr_def_16_bitfield = {
+	&ett_ncp_attr_def_16_bitfield,
+	NULL,
+	ptvc_ncp_attr_def_16_bitfield,
+};
+
+/* ncp_attr_def_32_bitfield */
+static gint ett_ncp_attr_def_32_bitfield;
+static const ptvc_record ptvc_ncp_attr_def_32_bitfield[] = {
+	{ &hf_ncp_att_def_comp, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_att_def_im_comp, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_att_def_cpyinhibit, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_att_def_delinhibit, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_att_def_reninhibit, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_att_def_purge, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_att_def32_write_audit, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_att_def32_read_audit, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_att_def32_transaction, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_att_def32_shareable, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_att_def32_archive, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_att_def32_sub_only, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_att_def32_execute, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_att_def32_system, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_att_def32_hidden, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_att_def32_ro, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+static const sub_ptvc_record ncp_attr_def_32_bitfield = {
+	&ett_ncp_attr_def_32_bitfield,
+	NULL,
+	ptvc_ncp_attr_def_32_bitfield,
+};
+
+/* ncp_change_bits_bitfield */
+static gint ett_ncp_change_bits_bitfield;
+static const ptvc_record ptvc_ncp_change_bits_bitfield[] = {
+	{ &hf_ncp_change_bits_max_space, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_change_bits_max_acc_mask, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_change_bits_acc_date, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_change_bits_uid, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_change_bits_utime, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_change_bits_udate, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_change_bits_aid, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_change_bits_atime, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_change_bits_adate, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_change_bits_owner, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_change_bits_ctime, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_change_bits_cdate, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_change_bits_fatt, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_change_bits_modify, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+static const sub_ptvc_record ncp_change_bits_bitfield = {
+	&ett_ncp_change_bits_bitfield,
+	NULL,
+	ptvc_ncp_change_bits_bitfield,
+};
+
+/* ncp_conn_ctrl_bits_bitfield */
+static gint ett_ncp_conn_ctrl_bits_bitfield;
+static const ptvc_record ptvc_ncp_conn_ctrl_bits_bitfield[] = {
+	{ &hf_ncp_disable_wdog_messages, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_disable_personal_brdcasts, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_disable_brdcasts, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_enable_wdog_messages, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_enable_personal_brdcasts, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_enable_brdcasts, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+static const sub_ptvc_record ncp_conn_ctrl_bits_bitfield = {
+	&ett_ncp_conn_ctrl_bits_bitfield,
+	NULL,
+	ptvc_ncp_conn_ctrl_bits_bitfield,
+};
+
+/* ncp_desired_access_rights_bitfield */
+static gint ett_ncp_desired_access_rights_bitfield;
+static const ptvc_record ptvc_ncp_desired_access_rights_bitfield[] = {
+	{ &hf_ncp_dsired_acc_rights_del_file_cls, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_dsired_acc_rights_w_thru, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_dsired_acc_rights_compat, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_dsired_acc_rights_deny_w, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_dsired_acc_rights_deny_r, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_dsired_acc_rights_write_o, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_dsired_acc_rights_read_o, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+static const sub_ptvc_record ncp_desired_access_rights_bitfield = {
+	&ett_ncp_desired_access_rights_bitfield,
+	NULL,
+	ptvc_ncp_desired_access_rights_bitfield,
+};
+
+/* ncp_ea_access_flag_bitfield */
+static gint ett_ncp_ea_access_flag_bitfield;
+static const ptvc_record ptvc_ncp_ea_access_flag_bitfield[] = {
+	{ &hf_ncp_ea_write_in_progress, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_ea_system_ea_only, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_ea_delete_privileges, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_ea_read_privileges, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_ea_write_privileges, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_ea_need_bit_flag, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_ea_score_card_present, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_ea_tally_need_update, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_ea_new_tally_used, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_ea_header_being_enlarged, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_ea_in_progress, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_ea_deep_freeze, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_ea_permanent_memory, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+static const sub_ptvc_record ncp_ea_access_flag_bitfield = {
+	&ett_ncp_ea_access_flag_bitfield,
+	NULL,
+	ptvc_ncp_ea_access_flag_bitfield,
+};
+
+/* ncp_effective_rights_bitfield */
+static gint ett_ncp_effective_rights_bitfield;
+static const ptvc_record ptvc_ncp_effective_rights_bitfield[] = {
+	{ &hf_ncp_effective_rights_modify, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_effective_rights_search, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_effective_rights_parental, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_effective_rights_delete, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_effective_rights_create, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_effective_rights_open, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_effective_rights_write, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_effective_rights_read, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+static const sub_ptvc_record ncp_effective_rights_bitfield = {
+	&ett_ncp_effective_rights_bitfield,
+	NULL,
+	ptvc_ncp_effective_rights_bitfield,
+};
+
+/* ncp_enum_info_mask_bitfield */
+static gint ett_ncp_enum_info_mask_bitfield;
+static const ptvc_record ptvc_ncp_enum_info_mask_bitfield[] = {
+	{ &hf_ncp_enum_info_auth, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_enum_info_account, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_enum_info_stats, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_enum_info_print, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_enum_info_lock, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_enum_info_name, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_enum_info_time, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_enum_info_transport, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+static const sub_ptvc_record ncp_enum_info_mask_bitfield = {
+	&ett_ncp_enum_info_mask_bitfield,
+	NULL,
+	ptvc_ncp_enum_info_mask_bitfield,
+};
+
+/* ncp_ext_info_bitfield */
+static gint ett_ncp_ext_info_bitfield;
+static const ptvc_record ptvc_ncp_ext_info_bitfield[] = {
+	{ &hf_ncp_ext_info_newstyle, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_ext_info_64_bit_fs, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_ext_info_access, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_ext_info_mac_date, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_ext_info_effective, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_ext_info_sibling, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_ext_info_mac_finder, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_ext_info_parental, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_ext_info_flush, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_ext_info_dos_name, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_ext_info_update, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+static const sub_ptvc_record ncp_ext_info_bitfield = {
+	&ett_ncp_ext_info_bitfield,
+	NULL,
+	ptvc_ncp_ext_info_bitfield,
+};
+
+/* ncp_finder_attr_bitfield */
+static gint ett_ncp_finder_attr_bitfield;
+static const ptvc_record ptvc_ncp_finder_attr_bitfield[] = {
+	{ &hf_ncp_finder_attr_bundle, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_finder_attr_invisible, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_finder_attr_desktop, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+static const sub_ptvc_record ncp_finder_attr_bitfield = {
+	&ett_ncp_finder_attr_bitfield,
+	NULL,
+	ptvc_ncp_finder_attr_bitfield,
+};
+
+/* ncp_info_flags_bitfield */
+static gint ett_ncp_info_flags_bitfield;
+static const ptvc_record ptvc_ncp_info_flags_bitfield[] = {
+	{ &hf_ncp_info_flags_type, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_info_flags_flags, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_info_flags_security, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_info_flags_name, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+static const sub_ptvc_record ncp_info_flags_bitfield = {
+	&ett_ncp_info_flags_bitfield,
+	NULL,
+	ptvc_ncp_info_flags_bitfield,
+};
+
+/* ncp_info_mask_bitfield */
+static gint ett_ncp_info_mask_bitfield;
+static const ptvc_record ptvc_ncp_info_mask_bitfield[] = {
+	{ &hf_ncp_info_mask_c_name_space, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_info_mask_dosname, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_info_flags_mac_time, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_info_flags_effect_rights, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_info_flags_sibling_cnt, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_info_flags_mac_finder, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_info_flags_prnt_base_id, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_info_flags_flush_time, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_info_flags_max_access_mask, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_info_flags_all_dirbase_num, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_info_flags_all_attr, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_info_flags_ea_present, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_info_flags_ns_attr, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_info_flags_ds_sizes, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_info_flags_ids, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_info_flags_dos_attr, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_info_flags_ref_count, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_info_flags_dos_time, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_info_mask_name, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+static const sub_ptvc_record ncp_info_mask_bitfield = {
+	&ett_ncp_info_mask_bitfield,
+	NULL,
+	ptvc_ncp_info_mask_bitfield,
+};
+
+/* ncp_inheritance_revoke_mask_bitfield */
+static gint ett_ncp_inheritance_revoke_mask_bitfield;
+static const ptvc_record ptvc_ncp_inheritance_revoke_mask_bitfield[] = {
+	{ &hf_ncp_inh_revoke_supervisor, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_inh_revoke_modify, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_inh_revoke_search, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_inh_revoke_parent, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_inh_revoke_delete, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_inh_revoke_create, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_inh_revoke_open, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_inh_revoke_write, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_inh_revoke_read, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+static const sub_ptvc_record ncp_inheritance_revoke_mask_bitfield = {
+	&ett_ncp_inheritance_revoke_mask_bitfield,
+	NULL,
+	ptvc_ncp_inheritance_revoke_mask_bitfield,
+};
+
+/* ncp_inherited_rights_mask_bitfield */
+static gint ett_ncp_inherited_rights_mask_bitfield;
+static const ptvc_record ptvc_ncp_inherited_rights_mask_bitfield[] = {
+	{ &hf_ncp_inh_rights_supervisor, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_inh_rights_modify, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_inh_rights_search, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_inh_rights_parent, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_inh_rights_delete, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_inh_rights_create, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_inh_rights_open, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_inh_rights_write, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_inh_rights_read, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+static const sub_ptvc_record ncp_inherited_rights_mask_bitfield = {
+	&ett_ncp_inherited_rights_mask_bitfield,
+	NULL,
+	ptvc_ncp_inherited_rights_mask_bitfield,
+};
+
+/* ncp_job_control_flags_bitfield */
+static gint ett_ncp_job_control_flags_bitfield;
+static const ptvc_record ptvc_ncp_job_control_flags_bitfield[] = {
+	{ &hf_ncp_job_control_operator_hold, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_job_control_user_hold, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_job_control_file_open, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_job_control_reservice, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_job_control_job_recovery, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+static const sub_ptvc_record ncp_job_control_flags_bitfield = {
+	&ett_ncp_job_control_flags_bitfield,
+	NULL,
+	ptvc_ncp_job_control_flags_bitfield,
+};
+
+/* ncp_job_control_flags_word_bitfield */
+static gint ett_ncp_job_control_flags_word_bitfield;
+static const ptvc_record ptvc_ncp_job_control_flags_word_bitfield[] = {
+	{ &hf_ncp_job_control1_operator_hold, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_job_control1_user_hold, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_job_control1_file_open, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_job_control1_reservice, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_job_control1_job_recovery, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+static const sub_ptvc_record ncp_job_control_flags_word_bitfield = {
+	&ett_ncp_job_control_flags_word_bitfield,
+	NULL,
+	ptvc_ncp_job_control_flags_word_bitfield,
+};
+
+/* ncp_log_file_flag_high_bitfield */
+static gint ett_ncp_log_file_flag_high_bitfield;
+static const ptvc_record ptvc_ncp_log_file_flag_high_bitfield[] = {
+	{ &hf_ncp_log_flag_call_back, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+static const sub_ptvc_record ncp_log_file_flag_high_bitfield = {
+	&ett_ncp_log_file_flag_high_bitfield,
+	NULL,
+	ptvc_ncp_log_file_flag_high_bitfield,
+};
+
+/* ncp_log_file_flag_low_bitfield */
+static gint ett_ncp_log_file_flag_low_bitfield;
+static const ptvc_record ptvc_ncp_log_file_flag_low_bitfield[] = {
+	{ &hf_ncp_log_flag_lock_file, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+static const sub_ptvc_record ncp_log_file_flag_low_bitfield = {
+	&ett_ncp_log_file_flag_low_bitfield,
+	NULL,
+	ptvc_ncp_log_file_flag_low_bitfield,
+};
+
+/* ncp_mac_attr_bitfield */
+static gint ett_ncp_mac_attr_bitfield;
+static const ptvc_record ptvc_ncp_mac_attr_bitfield[] = {
+	{ &hf_ncp_mac_attr_share, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_mac_attr_archive, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_mac_attr_subdirectory, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_mac_attr_execute_only, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_mac_attr_system, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_mac_attr_hidden, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_mac_attr_r_only, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_mac_attr_w_audit, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_mac_attr_r_audit, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_mac_attr_index, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_mac_attr_transaction, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_mac_attr_smode3, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_mac_attr_smode2, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_mac_attr_smode1, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+static const sub_ptvc_record ncp_mac_attr_bitfield = {
+	&ett_ncp_mac_attr_bitfield,
+	NULL,
+	ptvc_ncp_mac_attr_bitfield,
+};
+
+/* ncp_modify_dos_info_mask_bitfield */
+static gint ett_ncp_modify_dos_info_mask_bitfield;
+static const ptvc_record ptvc_ncp_modify_dos_info_mask_bitfield[] = {
+	{ &hf_ncp_modify_dos_max_space, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_modify_dos_inheritance, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_modify_dos_laccess, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_modify_dos_mid, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_modify_dos_mtime, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_modify_dos_mdate, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_modify_dos_search, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_modify_dos_parent, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_modify_dos_delete, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_modify_dos_create, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_modify_dos_open, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_modify_dos_write, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_modify_dos_read, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+static const sub_ptvc_record ncp_modify_dos_info_mask_bitfield = {
+	&ett_ncp_modify_dos_info_mask_bitfield,
+	NULL,
+	ptvc_ncp_modify_dos_info_mask_bitfield,
+};
+
+/* ncp_nds_request_flags_bitfield */
+static gint ett_ncp_nds_request_flags_bitfield;
+static const ptvc_record ptvc_ncp_nds_request_flags_bitfield[] = {
+	{ &hf_ncp_nds_request_flags_dn_ref, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_nds_request_flags_up_ref, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_nds_request_flags_trans_ref2, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_nds_request_flags_trans_ref, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_nds_request_flags_reply_data_size, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_nds_request_flags_req_data_size, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_nds_request_flags_req_cnt, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_nds_request_flags_alias_ref, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_nds_request_flags_type_ref, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_nds_request_flags_local_entry, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_nds_request_flags_no_such_entry, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_nds_request_flags_output, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+static const sub_ptvc_record ncp_nds_request_flags_bitfield = {
+	&ett_ncp_nds_request_flags_bitfield,
+	NULL,
+	ptvc_ncp_nds_request_flags_bitfield,
+};
+
+/* ncp_new_access_rights_mask_bitfield */
+static gint ett_ncp_new_access_rights_mask_bitfield;
+static const ptvc_record ptvc_ncp_new_access_rights_mask_bitfield[] = {
+	{ &hf_ncp_new_access_rights_supervisor, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_new_access_rights_modify, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_new_access_rights_search, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_new_access_rights_parental, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_new_access_rights_delete, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_new_access_rights_create, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_new_access_rights_open, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_new_access_rights_write, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_new_access_rights_read, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+static const sub_ptvc_record ncp_new_access_rights_mask_bitfield = {
+	&ett_ncp_new_access_rights_mask_bitfield,
+	NULL,
+	ptvc_ncp_new_access_rights_mask_bitfield,
+};
+
+/* ncp_nlm_flags_bitfield */
+static gint ett_ncp_nlm_flags_bitfield;
+static const ptvc_record ptvc_ncp_nlm_flags_bitfield[] = {
+	{ &hf_ncp_nlm_flags_pseudo, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_nlm_flags_synchronize, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_nlm_flags_multiple, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_nlm_flags_reentrant, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+static const sub_ptvc_record ncp_nlm_flags_bitfield = {
+	&ett_ncp_nlm_flags_bitfield,
+	NULL,
+	ptvc_ncp_nlm_flags_bitfield,
+};
+
+/* ncp_ns_info_mask_bitfield */
+static gint ett_ncp_ns_info_mask_bitfield;
+static const ptvc_record ptvc_ncp_ns_info_mask_bitfield[] = {
+	{ &hf_ncp_ns_info_mask_max_space, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_ns_info_mask_max_acc_mask, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_ns_info_mask_acc_date, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_ns_info_mask_uid, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_ns_info_mask_utime, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_ns_info_mask_udate, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_ns_info_mask_aid, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_ns_info_mask_atime, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_ns_info_mask_adate, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_ns_info_mask_owner, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_ns_info_mask_ctime, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_ns_info_mask_cdate, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_ns_info_mask_fatt, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_ns_info_mask_modify, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+static const sub_ptvc_record ncp_ns_info_mask_bitfield = {
+	&ett_ncp_ns_info_mask_bitfield,
+	NULL,
+	ptvc_ncp_ns_info_mask_bitfield,
+};
+
+/* ncp_open_create_action_bitfield */
+static gint ett_ncp_open_create_action_bitfield;
+static const ptvc_record ptvc_ncp_open_create_action_bitfield[] = {
+	{ &hf_ncp_open_create_action_read_only, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_open_create_action_compressed, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_open_create_action_replaced, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_open_create_action_created, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_open_create_action_opened, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+static const sub_ptvc_record ncp_open_create_action_bitfield = {
+	&ett_ncp_open_create_action_bitfield,
+	NULL,
+	ptvc_ncp_open_create_action_bitfield,
+};
+
+/* ncp_open_create_mode_bitfield */
+static gint ett_ncp_open_create_mode_bitfield;
+static const ptvc_record ptvc_ncp_open_create_mode_bitfield[] = {
+	{ &hf_ncp_open_create_mode_oplock, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_open_create_mode_create, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_open_create_mode_replace, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_open_create_mode_open, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+static const sub_ptvc_record ncp_open_create_mode_bitfield = {
+	&ett_ncp_open_create_mode_bitfield,
+	NULL,
+	ptvc_ncp_open_create_mode_bitfield,
+};
+
+/* ncp_open_rights_bitfield */
+static gint ett_ncp_open_rights_bitfield;
+static const ptvc_record ptvc_ncp_open_rights_bitfield[] = {
+	{ &hf_ncp_open_rights_write_thru, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_open_rights_compat, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_open_rights_deny_write, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_open_rights_deny_read, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_open_rights_write_only, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_open_rights_read_only, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+static const sub_ptvc_record ncp_open_rights_bitfield = {
+	&ett_ncp_open_rights_bitfield,
+	NULL,
+	ptvc_ncp_open_rights_bitfield,
+};
+
+/* ncp_print_flags_bitfield */
+static gint ett_ncp_print_flags_bitfield;
+static const ptvc_record ptvc_ncp_print_flags_bitfield[] = {
+	{ &hf_ncp_print_flags_banner, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_print_flags_exp_tabs, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_print_flags_del_spool, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_print_flags_cr, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_print_flags_ff, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+static const sub_ptvc_record ncp_print_flags_bitfield = {
+	&ett_ncp_print_flags_bitfield,
+	NULL,
+	ptvc_ncp_print_flags_bitfield,
+};
+
+/* ncp_queue_status_bitfield */
+static gint ett_ncp_queue_status_bitfield;
+static const ptvc_record ptvc_ncp_queue_status_bitfield[] = {
+	{ &hf_ncp_queue_status_svc_jobs, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_queue_status_pserver, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_queue_status_new_jobs, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+static const sub_ptvc_record ncp_queue_status_bitfield = {
+	&ett_ncp_queue_status_bitfield,
+	NULL,
+	ptvc_ncp_queue_status_bitfield,
+};
+
+/* ncp_remove_open_rights_bitfield */
+static gint ett_ncp_remove_open_rights_bitfield;
+static const ptvc_record ptvc_ncp_remove_open_rights_bitfield[] = {
+	{ &hf_ncp_remove_open_rights_write_thru, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_remove_open_rights_comp, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_remove_open_rights_dw, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_remove_open_rights_dr, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_remove_open_rights_wo, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_remove_open_rights_ro, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+static const sub_ptvc_record ncp_remove_open_rights_bitfield = {
+	&ett_ncp_remove_open_rights_bitfield,
+	NULL,
+	ptvc_ncp_remove_open_rights_bitfield,
+};
+
+/* ncp_rename_flag_bitfield */
+static gint ett_ncp_rename_flag_bitfield;
+static const ptvc_record ptvc_ncp_rename_flag_bitfield[] = {
+	{ &hf_ncp_rename_flag_no, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_rename_flag_comp, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_rename_flag_ren, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+static const sub_ptvc_record ncp_rename_flag_bitfield = {
+	&ett_ncp_rename_flag_bitfield,
+	NULL,
+	ptvc_ncp_rename_flag_bitfield,
+};
+
+/* ncp_request_bit_map_bitfield */
+static gint ett_ncp_request_bit_map_bitfield;
+static const ptvc_record ptvc_ncp_request_bit_map_bitfield[] = {
+	{ &hf_ncp_request_bit_map_ret_long_nm, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_request_bit_map_ret_finder, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_request_bit_map_ret_bak_date, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_request_bit_map_ret_mod_date, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_request_bit_map_ret_acc_date, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_request_bit_map_ret_cr_date, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_request_bit_map_ret_afp_parent, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_request_bit_map_ratt, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_request_bit_map_ret_acc_priv, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_request_bit_map_ret_short, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_request_bit_map_ret_owner, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_request_bit_map_ret_num_off, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_request_bit_map_ret_res_fork, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_request_bit_map_ret_data_fork, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_request_bit_map_ret_afp_ent, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+static const sub_ptvc_record ncp_request_bit_map_bitfield = {
+	&ett_ncp_request_bit_map_bitfield,
+	NULL,
+	ptvc_ncp_request_bit_map_bitfield,
+};
+
+/* ncp_ret_info_mask_bitfield */
+static gint ett_ncp_ret_info_mask_bitfield;
+static const ptvc_record ptvc_ncp_ret_info_mask_bitfield[] = {
+	{ &hf_ncp_ret_info_mask_logical, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_ret_info_mask_actual, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_ret_info_mask_ns_attr, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_ret_info_mask_id, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_ret_info_mask_rights, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_ret_info_mask_dir, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_ret_info_mask_ns, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_ret_info_mask_create, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_ret_info_mask_mod, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_ret_info_mask_arch, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_ret_info_mask_eattr, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_ret_info_mask_tspace, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_ret_info_mask_size, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_ret_info_mask_attr, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_ret_info_mask_alloc, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_ret_info_mask_fname, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+static const sub_ptvc_record ncp_ret_info_mask_bitfield = {
+	&ett_ncp_ret_info_mask_bitfield,
+	NULL,
+	ptvc_ncp_ret_info_mask_bitfield,
+};
+
+/* ncp_rights_grant_mask_bitfield */
+static gint ett_ncp_rights_grant_mask_bitfield;
+static const ptvc_record ptvc_ncp_rights_grant_mask_bitfield[] = {
+	{ &hf_ncp_rights_grant_mask_mod, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_rights_grant_mask_search, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_rights_grant_mask_parent, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_rights_grant_mask_del, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_rights_grant_mask_create, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_rights_grant_mask_open, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_rights_grant_mask_write, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_rights_grant_mask_read, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+static const sub_ptvc_record ncp_rights_grant_mask_bitfield = {
+	&ett_ncp_rights_grant_mask_bitfield,
+	NULL,
+	ptvc_ncp_rights_grant_mask_bitfield,
+};
+
+/* ncp_rights_revoke_mask_bitfield */
+static gint ett_ncp_rights_revoke_mask_bitfield;
+static const ptvc_record ptvc_ncp_rights_revoke_mask_bitfield[] = {
+	{ &hf_ncp_rights_revoke_mask_mod, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_rights_revoke_mask_search, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_rights_revoke_mask_parent, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_rights_revoke_mask_del, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_rights_revoke_mask_create, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_rights_revoke_mask_open, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_rights_revoke_mask_write, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_rights_revoke_mask_read, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+static const sub_ptvc_record ncp_rights_revoke_mask_bitfield = {
+	&ett_ncp_rights_revoke_mask_bitfield,
+	NULL,
+	ptvc_ncp_rights_revoke_mask_bitfield,
+};
+
+/* ncp_sattr_bitfield */
+static gint ett_ncp_sattr_bitfield;
+static const ptvc_record ptvc_ncp_sattr_bitfield[] = {
+	{ &hf_ncp_sattr_shareable, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_sattr_execute_confirm, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_sattr_archive, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_sattr_sub, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_sattr_exonly, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_sattr_sys, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_sattr_hid, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_sattr_ronly, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+static const sub_ptvc_record ncp_sattr_bitfield = {
+	&ett_ncp_sattr_bitfield,
+	NULL,
+	ptvc_ncp_sattr_bitfield,
+};
+
+/* ncp_search_att_low_bitfield */
+static gint ett_ncp_search_att_low_bitfield;
+static const ptvc_record ptvc_ncp_search_att_low_bitfield[] = {
+	{ &hf_ncp_search_attr_all_files, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_search_att_shareable, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_search_att_execute_confirm, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_search_att_archive, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_search_att_sub, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_search_att_execute_only, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_search_att_system, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_search_att_hidden, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_search_att_read_only, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+static const sub_ptvc_record ncp_search_att_low_bitfield = {
+	&ett_ncp_search_att_low_bitfield,
+	NULL,
+	ptvc_ncp_search_att_low_bitfield,
+};
+
+/* ncp_search_bit_map_bitfield */
+static gint ett_ncp_search_bit_map_bitfield;
+static const ptvc_record ptvc_ncp_search_bit_map_bitfield[] = {
+	{ &hf_ncp_search_bit_map_files, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_search_bit_map_sub, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_search_bit_map_sys, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_search_bit_map_hidden, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+static const sub_ptvc_record ncp_search_bit_map_bitfield = {
+	&ett_ncp_search_bit_map_bitfield,
+	NULL,
+	ptvc_ncp_search_bit_map_bitfield,
+};
+
+/* ncp_security_flag_bitfield */
+static gint ett_ncp_security_flag_bitfield;
+static const ptvc_record ptvc_ncp_security_flag_bitfield[] = {
+	{ &hf_ncp_large_internet_packets, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_encryption, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_complete_signatures, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_signature, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_checksuming, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+static const sub_ptvc_record ncp_security_flag_bitfield = {
+	&ett_ncp_security_flag_bitfield,
+	NULL,
+	ptvc_ncp_security_flag_bitfield,
+};
+
+/* ncp_set_cmd_flags_bitfield */
+static gint ett_ncp_set_cmd_flags_bitfield;
+static const ptvc_record ptvc_ncp_set_cmd_flags_bitfield[] = {
+	{ &hf_ncp_cmd_flags_secure, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_cmd_flags_later, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_cmd_flags_advanced, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_cmd_flags_hidden, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_cmd_flags_startup_only, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+static const sub_ptvc_record ncp_set_cmd_flags_bitfield = {
+	&ett_ncp_set_cmd_flags_bitfield,
+	NULL,
+	ptvc_ncp_set_cmd_flags_bitfield,
+};
+
+/* ncp_status_bitfield */
+static gint ett_ncp_status_bitfield;
+static const ptvc_record ptvc_ncp_status_bitfield[] = {
+	{ &hf_ncp_user_info_bindery, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_user_info_int_login, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_user_info_logout, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_user_info_dsaudit_conn, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_user_info_audit_conn, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_user_info_temp_authen, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_user_info_mac_station, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_user_info_need_sec, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_user_info_audited, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_user_info_being_abort, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_user_info_logged_in, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+static const sub_ptvc_record ncp_status_bitfield = {
+	&ett_ncp_status_bitfield,
+	NULL,
+	ptvc_ncp_status_bitfield,
+};
+
+/* ncp_status_flag_bits_bitfield */
+static gint ett_ncp_status_flag_bits_bitfield;
+static const ptvc_record ptvc_ncp_status_flag_bits_bitfield[] = {
+	{ &hf_ncp_status_flag_bits_im_purge, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_status_flag_bits_ro, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_status_flag_bits_audit, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_status_flag_bits_migrate, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_status_flag_bits_comp, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_status_flag_bits_suballoc, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_status_flag_bits_nss, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+static const sub_ptvc_record ncp_status_flag_bits_bitfield = {
+	&ett_ncp_status_flag_bits_bitfield,
+	NULL,
+	ptvc_ncp_status_flag_bits_bitfield,
+};
+
+/* ncp_timesync_status_flags_bitfield */
+static gint ett_ncp_timesync_status_flags_bitfield;
+static const ptvc_record ptvc_ncp_timesync_status_flags_bitfield[] = {
+	{ &hf_ncp_timesync_status_ext_sync, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_timesync_status_server_type, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_timesync_status_external, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_timesync_status_active, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_timesync_status_net_sync, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_timesync_status_sync, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+static const sub_ptvc_record ncp_timesync_status_flags_bitfield = {
+	&ett_ncp_timesync_status_flags_bitfield,
+	NULL,
+	ptvc_ncp_timesync_status_flags_bitfield,
+};
+
+/* ncp_trustee_rights_low_bitfield */
+static gint ett_ncp_trustee_rights_low_bitfield;
+static const ptvc_record ptvc_ncp_trustee_rights_low_bitfield[] = {
+	{ &hf_ncp_trustee_rights_super, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_trustee_rights_modify, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_trustee_rights_search, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_trustee_rights_parent, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_trustee_rights_del, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_trustee_rights_create, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_trustee_rights_open, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_trustee_rights_write, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_trustee_rights_read, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+static const sub_ptvc_record ncp_trustee_rights_low_bitfield = {
+	&ett_ncp_trustee_rights_low_bitfield,
+	NULL,
+	ptvc_ncp_trustee_rights_low_bitfield,
+};
+
+/* PTVC records for structs. */
+static gint ett_struct_acctng_info_struct;
+static const ptvc_record ptvc_struct_acctng_info_struct[] = {
+	{ &hf_ncp_hold_time, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_hold_amount, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_charge_amount, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_held_conn_time, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_user_info_held_req, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_held_bytes_read, 6, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_held_bytes_write, 6, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, NO_LENGTH, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+static const sub_ptvc_record struct_acctng_info_struct = {
+	&ett_struct_acctng_info_struct,
+	"Accounting Information",
+	ptvc_struct_acctng_info_struct,
+};
+
+static gint ett_struct_afp_10_struct;
+static const ptvc_record ptvc_struct_afp_10_struct[] = {
+	{ &hf_ncp_afp_entry_id, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_parent_id, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_attr_def_16, 2, &ncp_attr_def_16_bitfield, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_data_fork_len, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_resource_fork_len, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_total_offspring, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_creation_date, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NW_DATE },
+	{ &hf_ncp_last_access_date, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NW_DATE },
+	{ &hf_ncp_modified_date, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NW_DATE },
+	{ &hf_ncp_modified_time, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NW_TIME },
+	{ &hf_ncp_archived_date, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NW_DATE },
+	{ &hf_ncp_archived_time, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NW_TIME },
+	{ &hf_ncp_creator_id, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_reserved4, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_finder_attr, 2, &ncp_finder_attr_bitfield, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_horiz_location, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_vert_location, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_file_dir_win, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_reserved16, 16, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_long_name, 32, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_creator_id, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_short_name, 12, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_access_privileges, 1, &ncp_access_privileges_bitfield, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, NO_LENGTH, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+static const sub_ptvc_record struct_afp_10_struct = {
+	&ett_struct_afp_10_struct,
+	"AFP Information",
+	ptvc_struct_afp_10_struct,
+};
+
+static gint ett_struct_afp_20_struct;
+static const ptvc_record ptvc_struct_afp_20_struct[] = {
+	{ &hf_ncp_afp_entry_id, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_parent_id, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_attr_def_16, 2, &ncp_attr_def_16_bitfield, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_data_fork_len, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_resource_fork_len, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_total_offspring, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_creation_date, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NW_DATE },
+	{ &hf_ncp_last_access_date, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NW_DATE },
+	{ &hf_ncp_modified_date, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NW_DATE },
+	{ &hf_ncp_modified_time, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NW_TIME },
+	{ &hf_ncp_archived_date, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NW_DATE },
+	{ &hf_ncp_archived_time, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NW_TIME },
+	{ &hf_ncp_creator_id, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_reserved4, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_finder_attr, 2, &ncp_finder_attr_bitfield, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_horiz_location, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_vert_location, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_file_dir_win, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_reserved16, 16, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_long_name, 32, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_creator_id, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_short_name, 12, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_access_privileges, 1, &ncp_access_privileges_bitfield, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_reserved, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_pro_dos_info, 6, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, NO_LENGTH, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+static const sub_ptvc_record struct_afp_20_struct = {
+	&ett_struct_afp_20_struct,
+	"AFP Information",
+	ptvc_struct_afp_20_struct,
+};
+
+static gint ett_struct_archive_date_struct;
+static const ptvc_record ptvc_struct_archive_date_struct[] = {
+	{ &hf_ncp_archived_date, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NW_DATE },
+	{ NULL, NO_LENGTH, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+static const sub_ptvc_record struct_archive_date_struct = {
+	&ett_struct_archive_date_struct,
+	NULL,
+	ptvc_struct_archive_date_struct,
+};
+
+static gint ett_struct_archive_id_struct;
+static const ptvc_record ptvc_struct_archive_id_struct[] = {
+	{ &hf_ncp_archiver_id, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, NO_LENGTH, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+static const sub_ptvc_record struct_archive_id_struct = {
+	&ett_struct_archive_id_struct,
+	NULL,
+	ptvc_struct_archive_id_struct,
+};
+
+static gint ett_struct_archive_info_struct;
+static const ptvc_record ptvc_struct_archive_info_struct[] = {
+	{ &hf_ncp_archived_time, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NW_TIME },
+	{ &hf_ncp_archived_date, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NW_DATE },
+	{ &hf_ncp_archiver_id, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, NO_LENGTH, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+static const sub_ptvc_record struct_archive_info_struct = {
+	&ett_struct_archive_info_struct,
+	"Archive Information",
+	ptvc_struct_archive_info_struct,
+};
+
+static gint ett_struct_archive_time_struct;
+static const ptvc_record ptvc_struct_archive_time_struct[] = {
+	{ &hf_ncp_archived_time, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NW_TIME },
+	{ NULL, NO_LENGTH, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+static const sub_ptvc_record struct_archive_time_struct = {
+	&ett_struct_archive_time_struct,
+	NULL,
+	ptvc_struct_archive_time_struct,
+};
+
+static gint ett_struct_attributes_struct;
+static const ptvc_record ptvc_struct_attributes_struct[] = {
+	{ &hf_ncp_attr_def_32, 4, &ncp_attr_def_32_bitfield, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_flags_def, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, NO_LENGTH, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+static const sub_ptvc_record struct_attributes_struct = {
+	&ett_struct_attributes_struct,
+	"Attributes",
+	ptvc_struct_attributes_struct,
+};
+
+static gint ett_struct_auth_info_struct;
+static const ptvc_record ptvc_struct_auth_info_struct[] = {
+	{ &hf_ncp_status, 2, &ncp_status_bitfield, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_reserved2, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_privileges, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, NO_LENGTH, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+static const sub_ptvc_record struct_auth_info_struct = {
+	&ett_struct_auth_info_struct,
+	NULL,
+	ptvc_struct_auth_info_struct,
+};
+
+static gint ett_struct_board_name_struct;
+static const ptvc_record ptvc_struct_board_name_struct[] = {
+	{ &hf_ncp_driver_board_name, -1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_driver_short_name, -1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_driver_log_name, -1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, NO_LENGTH, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+static const sub_ptvc_record struct_board_name_struct = {
+	&ett_struct_board_name_struct,
+	"Board Name",
+	ptvc_struct_board_name_struct,
+};
+
+static gint ett_struct_cache_info;
+static const ptvc_record ptvc_struct_cache_info[] = {
+	{ &hf_ncp_max_byte_cnt, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_min_num_of_cache_buff, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_min_cache_report_thresh, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_alloc_waiting, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_ndirty_blocks, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_cache_dirty_wait_time, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_cache_max_concur_writes, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_max_dirty_time, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_num_dir_cache_buff, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_cache_byte_to_block, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, NO_LENGTH, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+static const sub_ptvc_record struct_cache_info = {
+	&ett_struct_cache_info,
+	"Cache Information",
+	ptvc_struct_cache_info,
+};
+
+static gint ett_struct_common_lan_struct;
+static const ptvc_record ptvc_struct_common_lan_struct[] = {
+	{ &hf_ncp_not_supported_mask, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_reserved3, 3, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_total_tx_packet_count, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_total_rx_packet_count, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_no_ecb_available_count, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_packet_tx_too_big_count, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_packet_tx_too_small_count, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_packet_rx_overflow_count, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_packet_rx_too_big_count, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_packet_rs_too_small_count, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_packet_tx_misc_error_count, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_packet_rx_misc_error_count, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_retry_tx_count, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_checksum_error_count, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_hardware_rx_mismatch_count, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, NO_LENGTH, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+static const sub_ptvc_record struct_common_lan_struct = {
+	&ett_struct_common_lan_struct,
+	"Common LAN Information",
+	ptvc_struct_common_lan_struct,
+};
+
+static gint ett_struct_comp_d_comp_stat;
+static const ptvc_record ptvc_struct_comp_d_comp_stat[] = {
+	{ &hf_ncp_cmphitickhigh, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_cmphitickcnt, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_cmpbyteincount, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_cmpbyteoutcnt, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_cmphibyteincnt, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_cmphibyteoutcnt, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_decphitickhigh, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_decphitickcnt, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_decpbyteincount, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_decpbyteoutcnt, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_decphibyteincnt, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_decphibyteoutcnt, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, NO_LENGTH, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+static const sub_ptvc_record struct_comp_d_comp_stat = {
+	&ett_struct_comp_d_comp_stat,
+	"Compression/Decompression Information",
+	ptvc_struct_comp_d_comp_stat,
+};
+
+static gint ett_struct_conn_file_struct;
+static const ptvc_record ptvc_struct_conn_file_struct[] = {
+	{ &hf_ncp_conn_number_word, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_task_num_byte, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_lock_type, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_access_control, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_lock_flag, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, NO_LENGTH, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+static const sub_ptvc_record struct_conn_file_struct = {
+	&ett_struct_conn_file_struct,
+	"File Connection Information",
+	ptvc_struct_conn_file_struct,
+};
+
+static gint ett_struct_conn_struct;
+static const ptvc_record ptvc_struct_conn_struct[] = {
+	{ &hf_ncp_task_num_byte, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_lock_type, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_access_control, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_lock_flag, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_volume_number, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_directory_entry_number_word, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_file_name_14, 14, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, NO_LENGTH, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+static const sub_ptvc_record struct_conn_struct = {
+	&ett_struct_conn_struct,
+	"Connection Information",
+	ptvc_struct_conn_struct,
+};
+
+static gint ett_struct_conn_task_struct;
+static const ptvc_record ptvc_struct_conn_task_struct[] = {
+	{ &hf_ncp_conn_number_byte, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_task_num_byte, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, NO_LENGTH, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+static const sub_ptvc_record struct_conn_task_struct = {
+	&ett_struct_conn_task_struct,
+	"Task Information",
+	ptvc_struct_conn_task_struct,
+};
+
+static gint ett_struct_counters_struct;
+static const ptvc_record ptvc_struct_counters_struct[] = {
+	{ &hf_ncp_read_exist_blck, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_read_exist_write_wait, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_read_exist_part_read, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_read_exist_read_err, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_wrt_blck_cnt, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_wrt_entire_blck, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_internl_dsk_get, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_internl_dsk_get_need_to_alloc, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_internl_dsk_get_someone_beat, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_internl_dsk_get_part_read, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_internl_dsk_get_read_err, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_async_internl_dsk_get, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_async_internl_dsk_get_need_to_alloc, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_async_internl_dsk_get_someone_beat, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_err_doing_async_read, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_internl_dsk_get_no_read, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_internl_dsk_get_no_read_alloc, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_internl_dsk_get_no_read_someone_beat, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_internl_dsk_write, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_internl_dsk_write_alloc, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_internl_dsk_write_someone_beat, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_write_err, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_wait_on_sema, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_alloc_blck_i_had_to_wait_for, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_alloc_blck, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_alloc_blck_i_had_to_wait, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, NO_LENGTH, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+static const sub_ptvc_record struct_counters_struct = {
+	&ett_struct_counters_struct,
+	"Disk Counter Information",
+	ptvc_struct_counters_struct,
+};
+
+static gint ett_struct_cpu_information;
+static const ptvc_record ptvc_struct_cpu_information[] = {
+	{ &hf_ncp_page_table_owner_flag, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_cpu_type, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_reserved3, 3, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_co_processor_flag, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_bus_type, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_reserved3, 3, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_io_engine_flag, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_reserved3, 3, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_fs_engine_flag, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_reserved3, 3, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_non_ded_flag, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_reserved3, 3, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_cpu_string, -1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_co_proc_string, -1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_bus_string, -1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, NO_LENGTH, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+static const sub_ptvc_record struct_cpu_information = {
+	&ett_struct_cpu_information,
+	"CPU Information",
+	ptvc_struct_cpu_information,
+};
+
+static gint ett_struct_creation_date_struct;
+static const ptvc_record ptvc_struct_creation_date_struct[] = {
+	{ &hf_ncp_creation_date, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NW_DATE },
+	{ NULL, NO_LENGTH, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+static const sub_ptvc_record struct_creation_date_struct = {
+	&ett_struct_creation_date_struct,
+	NULL,
+	ptvc_struct_creation_date_struct,
+};
+
+static gint ett_struct_creation_info_struct;
+static const ptvc_record ptvc_struct_creation_info_struct[] = {
+	{ &hf_ncp_creation_time, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NW_TIME },
+	{ &hf_ncp_creation_date, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NW_DATE },
+	{ &hf_ncp_creator_id, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, NO_LENGTH, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+static const sub_ptvc_record struct_creation_info_struct = {
+	&ett_struct_creation_info_struct,
+	"Creation Information",
+	ptvc_struct_creation_info_struct,
+};
+
+static gint ett_struct_creation_time_struct;
+static const ptvc_record ptvc_struct_creation_time_struct[] = {
+	{ &hf_ncp_creation_time, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NW_TIME },
+	{ NULL, NO_LENGTH, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+static const sub_ptvc_record struct_creation_time_struct = {
+	&ett_struct_creation_time_struct,
+	NULL,
+	ptvc_struct_creation_time_struct,
+};
+
+static gint ett_struct_custom_cnts_info;
+static const ptvc_record ptvc_struct_custom_cnts_info[] = {
+	{ &hf_ncp_custom_var_value, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_custom_string, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, NO_LENGTH, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+static const sub_ptvc_record struct_custom_cnts_info = {
+	&ett_struct_custom_cnts_info,
+	"Custom Counters",
+	ptvc_struct_custom_cnts_info,
+};
+
+static gint ett_struct_d_stream_actual;
+static const ptvc_record ptvc_struct_d_stream_actual[] = {
+	{ &hf_ncp_reserved12, 12, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, NO_LENGTH, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+static const sub_ptvc_record struct_d_stream_actual = {
+	&ett_struct_d_stream_actual,
+	NULL,
+	ptvc_struct_d_stream_actual,
+};
+
+static gint ett_struct_d_string_logical;
+static const ptvc_record ptvc_struct_d_string_logical[] = {
+	{ &hf_ncp_reserved12, 12, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, NO_LENGTH, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+static const sub_ptvc_record struct_d_string_logical = {
+	&ett_struct_d_string_logical,
+	NULL,
+	ptvc_struct_d_string_logical,
+};
+
+static gint ett_struct_data_stream_info;
+static const ptvc_record ptvc_struct_data_stream_info[] = {
+	{ &hf_ncp_associated_name_space, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_data_stream_name, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, NO_LENGTH, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+static const sub_ptvc_record struct_data_stream_info = {
+	&ett_struct_data_stream_info,
+	NULL,
+	ptvc_struct_data_stream_info,
+};
+
+static gint ett_struct_data_stream_size_struct;
+static const ptvc_record ptvc_struct_data_stream_size_struct[] = {
+	{ &hf_ncp_data_stream_size, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, NO_LENGTH, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+static const sub_ptvc_record struct_data_stream_size_struct = {
+	&ett_struct_data_stream_size_struct,
+	NULL,
+	ptvc_struct_data_stream_size_struct,
+};
+
+static gint ett_struct_dir_cache_info;
+static const ptvc_record ptvc_struct_dir_cache_info[] = {
+	{ &hf_ncp_min_time_since_file_delete, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_abs_min_time_since_file_delete, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_min_num_of_dir_cache_buff, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_max_num_of_dir_cache_buff, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_num_of_dir_cache_buff, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_dc_min_non_ref_time, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_dc_wait_time_before_new_buff, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_dc_max_concurrent_writes, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_dc_dirty_wait_time, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_dc_double_read_flag, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_map_hash_node_count, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_space_restriction_node_count, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_trustee_list_node_count, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_percent_of_vol_used_by_dirs, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, NO_LENGTH, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+static const sub_ptvc_record struct_dir_cache_info = {
+	&ett_struct_dir_cache_info,
+	"Directory Cache Information",
+	ptvc_struct_dir_cache_info,
+};
+
+static gint ett_struct_dir_entry_struct;
+static const ptvc_record ptvc_struct_dir_entry_struct[] = {
+	{ &hf_ncp_directory_entry_number, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_dos_directory_entry_number, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_volume_number_long, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, NO_LENGTH, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+static const sub_ptvc_record struct_dir_entry_struct = {
+	&ett_struct_dir_entry_struct,
+	"Directory Entry Information",
+	ptvc_struct_dir_entry_struct,
+};
+
+static gint ett_struct_directory_instance;
+static const ptvc_record ptvc_struct_directory_instance[] = {
+	{ &hf_ncp_search_sequence_word, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_directory_id, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_directory_name_14, 14, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_directory_attributes, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_directory_access_rights, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_creation_date, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NW_DATE },
+	{ &hf_ncp_access_date, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NW_DATE },
+	{ &hf_ncp_creator_id, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_reserved2, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_directory_stamp, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, NO_LENGTH, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+static const sub_ptvc_record struct_directory_instance = {
+	&ett_struct_directory_instance,
+	"Directory Information",
+	ptvc_struct_directory_instance,
+};
+
+static gint ett_struct_dm_info_level_0;
+static const ptvc_record ptvc_struct_dm_info_level_0[] = {
+	{ &hf_ncp_io_flag, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_sm_info_size, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_avail_space, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_used_space, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_s_module_name, -1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_s_m_info, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, NO_LENGTH, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+static const sub_ptvc_record struct_dm_info_level_0 = {
+	&ett_struct_dm_info_level_0,
+	NULL,
+	ptvc_struct_dm_info_level_0,
+};
+
+static gint ett_struct_dm_info_level_1;
+static const ptvc_record ptvc_struct_dm_info_level_1[] = {
+	{ &hf_ncp_number_of_sms, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_smids, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, NO_LENGTH, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+static const sub_ptvc_record struct_dm_info_level_1 = {
+	&ett_struct_dm_info_level_1,
+	NULL,
+	ptvc_struct_dm_info_level_1,
+};
+
+static gint ett_struct_dm_info_level_2;
+static const ptvc_record ptvc_struct_dm_info_level_2[] = {
+	{ &hf_ncp_name, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, NO_LENGTH, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+static const sub_ptvc_record struct_dm_info_level_2 = {
+	&ett_struct_dm_info_level_2,
+	NULL,
+	ptvc_struct_dm_info_level_2,
+};
+
+static gint ett_struct_dos_directory_entry_struct;
+static const ptvc_record ptvc_struct_dos_directory_entry_struct[] = {
+	{ &hf_ncp_attr_def_32, 4, &ncp_attr_def_32_bitfield, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_unique_id, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_purge_flags, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_dest_name_space, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_directory_name_len, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_directory_name, 12, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_creation_time, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NW_TIME },
+	{ &hf_ncp_creation_date, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NW_DATE },
+	{ &hf_ncp_creator_id, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_archived_time, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NW_TIME },
+	{ &hf_ncp_archived_date, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NW_DATE },
+	{ &hf_ncp_archiver_id, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_update_time, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NW_TIME },
+	{ &hf_ncp_update_date, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NW_DATE },
+	{ &hf_ncp_next_trustee_entry, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_reserved48, 48, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_inherited_rights_mask, 2, &ncp_inherited_rights_mask_bitfield, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, NO_LENGTH, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+static const sub_ptvc_record struct_dos_directory_entry_struct = {
+	&ett_struct_dos_directory_entry_struct,
+	"DOS Directory Information",
+	ptvc_struct_dos_directory_entry_struct,
+};
+
+static gint ett_struct_dos_file_entry_struct;
+static const ptvc_record ptvc_struct_dos_file_entry_struct[] = {
+	{ &hf_ncp_attr_def_32, 4, &ncp_attr_def_32_bitfield, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_unique_id, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_purge_flags, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_dest_name_space, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_name_len, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_name12, 12, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_creation_time, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NW_TIME },
+	{ &hf_ncp_creation_date, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NW_DATE },
+	{ &hf_ncp_creator_id, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_archived_time, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NW_TIME },
+	{ &hf_ncp_archived_date, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NW_DATE },
+	{ &hf_ncp_archiver_id, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_update_time, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NW_TIME },
+	{ &hf_ncp_update_date, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NW_DATE },
+	{ &hf_ncp_update_id, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_file_size, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_data_fork_first_fat, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_next_trustee_entry, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_reserved36, 36, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_inherited_rights_mask, 2, &ncp_inherited_rights_mask_bitfield, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_last_access_date, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NW_DATE },
+	{ &hf_ncp_reserved28, 28, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_primary_entry, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_name_list, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, NO_LENGTH, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+static const sub_ptvc_record struct_dos_file_entry_struct = {
+	&ett_struct_dos_file_entry_struct,
+	"DOS File Information",
+	ptvc_struct_dos_file_entry_struct,
+};
+
+static gint ett_struct_dos_name_struct;
+static const ptvc_record ptvc_struct_dos_name_struct[] = {
+	{ &hf_ncp_file_name, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, NO_LENGTH, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+static const sub_ptvc_record struct_dos_name_struct = {
+	&ett_struct_dos_name_struct,
+	"DOS File Name",
+	ptvc_struct_dos_name_struct,
+};
+
+static gint ett_struct_ds_space_alloc_struct;
+static const ptvc_record ptvc_struct_ds_space_alloc_struct[] = {
+	{ &hf_ncp_data_stream_space_alloc, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, NO_LENGTH, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+static const sub_ptvc_record struct_ds_space_alloc_struct = {
+	&ett_struct_ds_space_alloc_struct,
+	NULL,
+	ptvc_struct_ds_space_alloc_struct,
+};
+
+static gint ett_struct_dyn_mem_struct;
+static const ptvc_record ptvc_struct_dyn_mem_struct[] = {
+	{ &hf_ncp_dyn_mem_struct_total, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_dyn_mem_struct_max, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_dyn_mem_struct_cur, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, NO_LENGTH, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+static const sub_ptvc_record struct_dyn_mem_struct = {
+	&ett_struct_dyn_mem_struct,
+	"Dynamic Memory Information",
+	ptvc_struct_dyn_mem_struct,
+};
+
+static gint ett_struct_ea_info_struct;
+static const ptvc_record ptvc_struct_ea_info_struct[] = {
+	{ &hf_ncp_ea_data_size, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_ea_count, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_ea_key_size, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, NO_LENGTH, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+static const sub_ptvc_record struct_ea_info_struct = {
+	&ett_struct_ea_info_struct,
+	"Extended Attribute Information",
+	ptvc_struct_ea_info_struct,
+};
+
+static gint ett_struct_eff_rights_struct;
+static const ptvc_record ptvc_struct_eff_rights_struct[] = {
+	{ &hf_ncp_effective_rights, 1, &ncp_effective_rights_bitfield, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_reserved3, 3, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, NO_LENGTH, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+static const sub_ptvc_record struct_eff_rights_struct = {
+	&ett_struct_eff_rights_struct,
+	NULL,
+	ptvc_struct_eff_rights_struct,
+};
+
+static gint ett_struct_extra_cache_cntrs;
+static const ptvc_record ptvc_struct_extra_cache_cntrs[] = {
+	{ &hf_ncp_internl_dsk_get_no_wait, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_internl_dsk_get_no_wait_need, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_internl_dsk_get_no_wait_no_blk, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_id_get_no_read_no_wait, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_id_get_no_read_no_wait_sema, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_id_get_no_read_no_wait_buffer, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_id_get_no_read_no_wait_alloc, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_id_get_no_read_no_wait_no_alloc, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_id_get_no_read_no_wait_no_alloc_sema, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_id_get_no_read_no_wait_no_alloc_alloc, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, NO_LENGTH, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+static const sub_ptvc_record struct_extra_cache_cntrs = {
+	&ett_struct_extra_cache_cntrs,
+	"Extra Cache Counters Information",
+	ptvc_struct_extra_cache_cntrs,
+};
+
+static gint ett_struct_file_attributes_struct;
+static const ptvc_record ptvc_struct_file_attributes_struct[] = {
+	{ &hf_ncp_attr_def_32, 4, &ncp_attr_def_32_bitfield, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, NO_LENGTH, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+static const sub_ptvc_record struct_file_attributes_struct = {
+	&ett_struct_file_attributes_struct,
+	NULL,
+	ptvc_struct_file_attributes_struct,
+};
+
+static gint ett_struct_file_info_struct;
+static const ptvc_record ptvc_struct_file_info_struct[] = {
+	{ &hf_ncp_parent_id, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_directory_entry_number, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_total_blks_to_dcompress, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_cur_blk_being_dcompress, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, NO_LENGTH, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+static const sub_ptvc_record struct_file_info_struct = {
+	&ett_struct_file_info_struct,
+	"File Information",
+	ptvc_struct_file_info_struct,
+};
+
+static gint ett_struct_file_instance;
+static const ptvc_record ptvc_struct_file_instance[] = {
+	{ &hf_ncp_search_sequence_word, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_directory_id, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_file_name_14, 14, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_attr_def, 1, &ncp_attr_def_bitfield, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_file_mode, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_file_size, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_creation_date, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NW_DATE },
+	{ &hf_ncp_access_date, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NW_DATE },
+	{ &hf_ncp_update_date, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NW_DATE },
+	{ &hf_ncp_update_time, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NW_TIME },
+	{ NULL, NO_LENGTH, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+static const sub_ptvc_record struct_file_instance = {
+	&ett_struct_file_instance,
+	"File Instance",
+	ptvc_struct_file_instance,
+};
+
+static gint ett_struct_file_name_struct;
+static const ptvc_record ptvc_struct_file_name_struct[] = {
+	{ &hf_ncp_file_name, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, NO_LENGTH, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+static const sub_ptvc_record struct_file_name_struct = {
+	&ett_struct_file_name_struct,
+	"File Name",
+	ptvc_struct_file_name_struct,
+};
+
+static gint ett_struct_file_server_counters;
+static const ptvc_record ptvc_struct_file_server_counters[] = {
+	{ &hf_ncp_too_many_hops, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_unknown_network, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_no_space_for_service, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_no_receive_buff, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_not_my_network, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_netbios_progated, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_ttl_pckts_srvcd, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_ttl_pckts_routed, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, NO_LENGTH, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+static const sub_ptvc_record struct_file_server_counters = {
+	&ett_struct_file_server_counters,
+	"File Server Counters",
+	ptvc_struct_file_server_counters,
+};
+
+static gint ett_struct_file_system_info;
+static const ptvc_record ptvc_struct_file_system_info[] = {
+	{ &hf_ncp_fat_moved, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_fat_write_err, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_someone_else_did_it_0, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_someone_else_did_it_1, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_someone_else_did_it_2, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_i_ran_out_someone_else_did_it_0, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_i_ran_out_someone_else_did_it_1, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_i_ran_out_someone_else_did_it_2, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_turbo_fat_build_failed, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_extra_use_count_node_count, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_extra_extra_use_count_node_count, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_error_read_last_fat, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_someone_else_using_this_file, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, NO_LENGTH, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+static const sub_ptvc_record struct_file_system_info = {
+	&ett_struct_file_system_info,
+	"File System Information",
+	ptvc_struct_file_system_info,
+};
+
+static gint ett_struct_flush_time_struct;
+static const ptvc_record ptvc_struct_flush_time_struct[] = {
+	{ &hf_ncp_flush_time, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, NO_LENGTH, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+static const sub_ptvc_record struct_flush_time_struct = {
+	&ett_struct_flush_time_struct,
+	NULL,
+	ptvc_struct_flush_time_struct,
+};
+
+static gint ett_struct_generic_info_def;
+static const ptvc_record ptvc_struct_generic_info_def[] = {
+	{ &hf_ncp_generic_label, 64, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_generic_ident_type, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_generic_ident_time, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_generic_media_type, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_generic_cartridge_type, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_generic_unit_size, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_generic_block_size, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_generic_capacity, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_generic_pref_unit_size, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_generic_name, 64, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_generic_type, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_generic_status, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_generic_func_mask, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_generic_ctl_mask, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_generic_parent_count, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_generic_sib_count, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_generic_child_count, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_generic_spec_info_sz, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_generic_object_uniq_id, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_generic_media_slot, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, NO_LENGTH, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+static const sub_ptvc_record struct_generic_info_def = {
+	&ett_struct_generic_info_def,
+	"Generic Information",
+	ptvc_struct_generic_info_def,
+};
+
+static gint ett_struct_handle_info_level_0;
+static const ptvc_record ptvc_struct_handle_info_level_0[] = {
+	{ NULL, NO_LENGTH, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+static const sub_ptvc_record struct_handle_info_level_0 = {
+	&ett_struct_handle_info_level_0,
+	NULL,
+	ptvc_struct_handle_info_level_0,
+};
+
+static gint ett_struct_handle_info_level_1;
+static const ptvc_record ptvc_struct_handle_info_level_1[] = {
+	{ &hf_ncp_data_stream, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, NO_LENGTH, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+static const sub_ptvc_record struct_handle_info_level_1 = {
+	&ett_struct_handle_info_level_1,
+	NULL,
+	ptvc_struct_handle_info_level_1,
+};
+
+static gint ett_struct_handle_info_level_2;
+static const ptvc_record ptvc_struct_handle_info_level_2[] = {
+	{ &hf_ncp_dos_directory_base, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_name_space, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_data_stream, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, NO_LENGTH, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+static const sub_ptvc_record struct_handle_info_level_2 = {
+	&ett_struct_handle_info_level_2,
+	NULL,
+	ptvc_struct_handle_info_level_2,
+};
+
+static gint ett_struct_handle_info_level_3;
+static const ptvc_record ptvc_struct_handle_info_level_3[] = {
+	{ &hf_ncp_dos_directory_base, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_name_space, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, NO_LENGTH, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+static const sub_ptvc_record struct_handle_info_level_3 = {
+	&ett_struct_handle_info_level_3,
+	NULL,
+	ptvc_struct_handle_info_level_3,
+};
+
+static gint ett_struct_handle_info_level_4;
+static const ptvc_record ptvc_struct_handle_info_level_4[] = {
+	{ &hf_ncp_dos_directory_base, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_name_space, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_parent_directory_base, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_parent_dos_directory_base, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, NO_LENGTH, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+static const sub_ptvc_record struct_handle_info_level_4 = {
+	&ett_struct_handle_info_level_4,
+	NULL,
+	ptvc_struct_handle_info_level_4,
+};
+
+static gint ett_struct_handle_info_level_5;
+static const ptvc_record ptvc_struct_handle_info_level_5[] = {
+	{ &hf_ncp_dos_directory_base, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_name_space, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_data_stream, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_parent_directory_base, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_parent_dos_directory_base, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, NO_LENGTH, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+static const sub_ptvc_record struct_handle_info_level_5 = {
+	&ett_struct_handle_info_level_5,
+	NULL,
+	ptvc_struct_handle_info_level_5,
+};
+
+static gint ett_struct_ipx_information;
+static const ptvc_record ptvc_struct_ipx_information[] = {
+	{ &hf_ncp_ipx_send_pkt, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_ipx_malform_pkt, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_ipx_get_ecb_req, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_ipx_get_ecb_fail, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_ipx_aes_event, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_ipx_postponed_aes, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_ipx_max_conf_sock, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_ipx_max_open_sock, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_ipx_open_sock_fail, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_ipx_listen_ecb, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_ipx_ecb_cancel_fail, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_ipx_get_lcl_targ_fail, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, NO_LENGTH, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+static const sub_ptvc_record struct_ipx_information = {
+	&ett_struct_ipx_information,
+	"IPX Information",
+	ptvc_struct_ipx_information,
+};
+
+static gint ett_struct_job_entry_time;
+static const ptvc_record ptvc_struct_job_entry_time[] = {
+	{ &hf_ncp_year, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_s_month, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_s_day, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_s_hour, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_s_minute, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_s_second, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, NO_LENGTH, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+static const sub_ptvc_record struct_job_entry_time = {
+	&ett_struct_job_entry_time,
+	"Job Entry Time",
+	ptvc_struct_job_entry_time,
+};
+
+static gint ett_struct_job_struct;
+static const ptvc_record ptvc_struct_job_struct[] = {
+	{ &hf_ncp_client_station, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_client_task_number, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_client_id_number, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_target_server_id_number, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_target_execution_time, 6, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_job_entry_time, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_job_number, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_job_type, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_job_position, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_job_control_flags, 1, &ncp_job_control_flags_bitfield, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_job_file_name, 14, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_job_file_handle, 6, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_server_station, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_server_task_number, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_server_id_number, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_text_job_description, 50, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_client_record_area, 152, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, NO_LENGTH, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+static const sub_ptvc_record struct_job_struct = {
+	&ett_struct_job_struct,
+	"Job Information",
+	ptvc_struct_job_struct,
+};
+
+static gint ett_struct_job_struct_3x;
+static const ptvc_record ptvc_struct_job_struct_3x[] = {
+	{ &hf_ncp_record_in_use, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_previous_record, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_next_record, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_client_station_long, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_client_task_number_long, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_client_id_number, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_target_server_id_number, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_target_execution_time, 6, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_job_entry_time, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_job_number_long, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_job_type, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_job_position_word, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_job_control_flags_word, 2, &ncp_job_control_flags_word_bitfield, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_job_file_name, 14, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_job_file_handle_long, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_server_station_long, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_server_task_number_long, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_server_id_number, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_text_job_description, 50, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_client_record_area, 152, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, NO_LENGTH, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+static const sub_ptvc_record struct_job_struct_3x = {
+	&ett_struct_job_struct_3x,
+	"Job Information",
+	ptvc_struct_job_struct_3x,
+};
+
+static gint ett_struct_job_struct_new;
+static const ptvc_record ptvc_struct_job_struct_new[] = {
+	{ &hf_ncp_record_in_use, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_previous_record, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_next_record, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_client_station_long, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_client_task_number_long, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_client_id_number, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_target_server_id_number, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_target_execution_time, 6, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_job_entry_time, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_job_number_long, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_job_type, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_job_position_word, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_job_control_flags_word, 2, &ncp_job_control_flags_word_bitfield, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_job_file_name, 14, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_job_file_handle_long, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_server_station_long, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_server_task_number_long, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_server_id_number, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, NO_LENGTH, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+static const sub_ptvc_record struct_job_struct_new = {
+	&ett_struct_job_struct_new,
+	"Job Information",
+	ptvc_struct_job_struct_new,
+};
+
+static gint ett_struct_known_routes;
+static const ptvc_record ptvc_struct_known_routes[] = {
+	{ &hf_ncp_net_id_number, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_hops_to_net, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_net_status, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_time_to_net, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, NO_LENGTH, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+static const sub_ptvc_record struct_known_routes = {
+	&ett_struct_known_routes,
+	"Known Routes",
+	ptvc_struct_known_routes,
+};
+
+static gint ett_struct_known_server_struct;
+static const ptvc_record ptvc_struct_known_server_struct[] = {
+	{ &hf_ncp_server_address, 12, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_hops_to_net, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_server_name_stringz, -1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, NO_LENGTH, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+static const sub_ptvc_record struct_known_server_struct = {
+	&ett_struct_known_server_struct,
+	"Known Servers",
+	ptvc_struct_known_server_struct,
+};
+
+static gint ett_struct_lan_cfg_info;
+static const ptvc_record ptvc_struct_lan_cfg_info[] = {
+	{ &hf_ncp_lan_dvr_cfg_major_vrs, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_lan_dvr_cfg_minor_vrs, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_lan_dvr_node_addr, 6, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_reserved, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_lan_dvr_mode_flags, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_lan_drv_bd_num, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_lan_drv_bd_inst, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_lan_drv_max_size, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_lan_drv_max_rcv_size, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_lan_drv_rcv_size, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_lan_drv_card_id, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_lan_drv_media_id, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_lan_drv_trans_time, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_lan_drv_src_route, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_lan_drv_line_speed, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_lan_drv_reserved, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_lan_drv_major_ver, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_lan_drv_minor_ver, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_lan_drv_flags, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_lan_drv_snd_retries, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_lan_drv_link, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_lan_drv_share, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_lan_drv_slot, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_lan_drv_io_ports_and_ranges_1, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_lan_drv_io_ports_and_ranges_2, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_lan_drv_io_ports_and_ranges_3, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_lan_drv_io_ports_and_ranges_4, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_lan_drv_mem_decode_0, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_lan_drv_mem_length_0, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_lan_drv_mem_decode_1, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_lan_drv_mem_length_1, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_lan_drv_interrupt1, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_lan_drv_interrupt2, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_lan_drv_dma_usage1, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_lan_drv_dma_usage2, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_lan_drv_log_name, 18, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_lan_drv_io_reserved, 14, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_lan_drv_card_name, 28, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, NO_LENGTH, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+static const sub_ptvc_record struct_lan_cfg_info = {
+	&ett_struct_lan_cfg_info,
+	"LAN Configuration Information",
+	ptvc_struct_lan_cfg_info,
+};
+
+static gint ett_struct_last_access_struct;
+static const ptvc_record ptvc_struct_last_access_struct[] = {
+	{ &hf_ncp_last_access_date, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NW_DATE },
+	{ NULL, NO_LENGTH, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+static const sub_ptvc_record struct_last_access_struct = {
+	&ett_struct_last_access_struct,
+	NULL,
+	ptvc_struct_last_access_struct,
+};
+
+static gint ett_struct_last_access_time_struct;
+static const ptvc_record ptvc_struct_last_access_time_struct[] = {
+	{ &hf_ncp_last_access_time, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NW_TIME },
+	{ NULL, NO_LENGTH, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+static const sub_ptvc_record struct_last_access_time_struct = {
+	&ett_struct_last_access_time_struct,
+	NULL,
+	ptvc_struct_last_access_time_struct,
+};
+
+static gint ett_struct_last_update_in_seconds_struct;
+static const ptvc_record ptvc_struct_last_update_in_seconds_struct[] = {
+	{ &hf_ncp_sec_rel_to_y2k, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, NO_LENGTH, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+static const sub_ptvc_record struct_last_update_in_seconds_struct = {
+	&ett_struct_last_update_in_seconds_struct,
+	NULL,
+	ptvc_struct_last_update_in_seconds_struct,
+};
+
+static gint ett_struct_lock_info_struct;
+static const ptvc_record ptvc_struct_lock_info_struct[] = {
+	{ &hf_ncp_logical_lock_threshold, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_physical_lock_threshold, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_file_lock_count, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_rec_lock_count, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, NO_LENGTH, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+static const sub_ptvc_record struct_lock_info_struct = {
+	&ett_struct_lock_info_struct,
+	"Lock Information",
+	ptvc_struct_lock_info_struct,
+};
+
+static gint ett_struct_lock_struct;
+static const ptvc_record ptvc_struct_lock_struct[] = {
+	{ &hf_ncp_task_num_byte, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_lock_type, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_record_start, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_record_end, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, NO_LENGTH, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+static const sub_ptvc_record struct_lock_struct = {
+	&ett_struct_lock_struct,
+	"Locks",
+	ptvc_struct_lock_struct,
+};
+
+static gint ett_struct_log_lock_struct;
+static const ptvc_record ptvc_struct_log_lock_struct[] = {
+	{ &hf_ncp_task_num_byte, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_lock_status, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_lock_name, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, NO_LENGTH, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+static const sub_ptvc_record struct_log_lock_struct = {
+	&ett_struct_log_lock_struct,
+	"Logical Locks",
+	ptvc_struct_log_lock_struct,
+};
+
+static gint ett_struct_log_rec_struct;
+static const ptvc_record ptvc_struct_log_rec_struct[] = {
+	{ &hf_ncp_conn_number_word, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_task_num_byte, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_lock_status, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, NO_LENGTH, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+static const sub_ptvc_record struct_log_rec_struct = {
+	&ett_struct_log_rec_struct,
+	"Logical Record Locks",
+	ptvc_struct_log_rec_struct,
+};
+
+static gint ett_struct_login_time;
+static const ptvc_record ptvc_struct_login_time[] = {
+	{ &hf_ncp_year, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_s_month, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_s_day, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_s_hour, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_s_minute, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_s_second, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_s_day_of_week, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, NO_LENGTH, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+static const sub_ptvc_record struct_login_time = {
+	&ett_struct_login_time,
+	"Login Time",
+	ptvc_struct_login_time,
+};
+
+static gint ett_struct_lsl_information;
+static const ptvc_record ptvc_struct_lsl_information[] = {
+	{ &hf_ncp_rx_buffers, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_rx_buffers_75, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_rx_buffers_checked_out, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_rx_buffer_size, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_max_phy_packet_size, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_last_time_rx_buff_was_alloc, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_max_num_of_protocols, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_max_num_of_media_types, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_total_tx_packets, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_get_ecb_buf, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_get_ecb_fails, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_aes_event_count, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_post_poned_events, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_ecb_cxl_fails, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_valid_bfrs_reused, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_enqueued_send_cnt, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_total_rx_packets, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_unclaimed_packets, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_stat_table_major_version, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_stat_table_minor_version, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, NO_LENGTH, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+static const sub_ptvc_record struct_lsl_information = {
+	&ett_struct_lsl_information,
+	"LSL Information",
+	ptvc_struct_lsl_information,
+};
+
+static gint ett_struct_mac_finder_info_struct;
+static const ptvc_record ptvc_struct_mac_finder_info_struct[] = {
+	{ &hf_ncp_mac_finder_info, 32, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, NO_LENGTH, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+static const sub_ptvc_record struct_mac_finder_info_struct = {
+	&ett_struct_mac_finder_info_struct,
+	NULL,
+	ptvc_struct_mac_finder_info_struct,
+};
+
+static gint ett_struct_mac_time_struct;
+static const ptvc_record ptvc_struct_mac_time_struct[] = {
+	{ &hf_ncp_mac_create_date, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NW_DATE },
+	{ &hf_ncp_mac_create_time, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NW_TIME },
+	{ &hf_ncp_mac_backup_date, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NW_DATE },
+	{ &hf_ncp_mac_backup_time, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NW_TIME },
+	{ NULL, NO_LENGTH, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+static const sub_ptvc_record struct_mac_time_struct = {
+	&ett_struct_mac_time_struct,
+	NULL,
+	ptvc_struct_mac_time_struct,
+};
+
+static gint ett_struct_memory_counters;
+static const ptvc_record ptvc_struct_memory_counters[] = {
+	{ &hf_ncp_orig_num_cache_buff, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_curr_num_cache_buff, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_cache_dirty_block_thresh, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_wait_node, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_wait_node_alloc_fail, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_move_cache_node, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_move_cache_node_from_avai, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_accel_cache_node_write, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_rem_cache_node, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_rem_cache_node_from_avail, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, NO_LENGTH, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+static const sub_ptvc_record struct_memory_counters = {
+	&ett_struct_memory_counters,
+	"Memory Counters",
+	ptvc_struct_memory_counters,
+};
+
+static gint ett_struct_mlid_board_info;
+static const ptvc_record ptvc_struct_mlid_board_info[] = {
+	{ &hf_ncp_protocol_board_num, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_protocol_number, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_protocol_id, 6, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_protocol_name, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, NO_LENGTH, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+static const sub_ptvc_record struct_mlid_board_info = {
+	&ett_struct_mlid_board_info,
+	"MLID Board Information",
+	ptvc_struct_mlid_board_info,
+};
+
+static gint ett_struct_modify_info_struct;
+static const ptvc_record ptvc_struct_modify_info_struct[] = {
+	{ &hf_ncp_modified_time, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NW_TIME },
+	{ &hf_ncp_modified_date, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NW_DATE },
+	{ &hf_ncp_modifier_id, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_last_access_date, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NW_DATE },
+	{ NULL, NO_LENGTH, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+static const sub_ptvc_record struct_modify_info_struct = {
+	&ett_struct_modify_info_struct,
+	"Modification Information",
+	ptvc_struct_modify_info_struct,
+};
+
+static gint ett_struct_name_info_struct;
+static const ptvc_record ptvc_struct_name_info_struct[] = {
+	{ &hf_ncp_object_type, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_login_name, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, NO_LENGTH, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+static const sub_ptvc_record struct_name_info_struct = {
+	&ett_struct_name_info_struct,
+	"Name Information",
+	ptvc_struct_name_info_struct,
+};
+
+static gint ett_struct_ncp_network_address_struct;
+static const ptvc_record ptvc_struct_ncp_network_address_struct[] = {
+	{ &hf_ncp_transport_type, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_reserved3, 3, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_address, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, NO_LENGTH, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+static const sub_ptvc_record struct_ncp_network_address_struct = {
+	&ett_struct_ncp_network_address_struct,
+	"Network Address",
+	ptvc_struct_ncp_network_address_struct,
+};
+
+static gint ett_struct_net_addr_struct;
+static const ptvc_record ptvc_struct_net_addr_struct[] = {
+	{ &hf_ncp_transport_type, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_transport_addr, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, NO_LENGTH, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+static const sub_ptvc_record struct_net_addr_struct = {
+	&ett_struct_net_addr_struct,
+	"Network Address",
+	ptvc_struct_net_addr_struct,
+};
+
+static gint ett_struct_nlm_information;
+static const ptvc_record ptvc_struct_nlm_information[] = {
+	{ &hf_ncp_identification_number, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_nlm_flags, 1, &ncp_nlm_flags_bitfield, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_reserved3, 3, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_nlm_type, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_reserved3, 3, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_parent_id, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_major_version, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_minor_version, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_revision, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_year, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_reserved3, 3, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_s_month, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_reserved3, 3, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_s_day, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_reserved3, 3, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_alloc_avail_byte, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_alloc_free_count, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_last_garbage_collect, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_message_language, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_num_of_ref_publics, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, NO_LENGTH, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+static const sub_ptvc_record struct_nlm_information = {
+	&ett_struct_nlm_information,
+	"NLM Information",
+	ptvc_struct_nlm_information,
+};
+
+static gint ett_struct_ns_attrib_struct;
+static const ptvc_record ptvc_struct_ns_attrib_struct[] = {
+	{ &hf_ncp_attr_def_32, 4, &ncp_attr_def_32_bitfield, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, NO_LENGTH, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+static const sub_ptvc_record struct_ns_attrib_struct = {
+	&ett_struct_ns_attrib_struct,
+	NULL,
+	ptvc_struct_ns_attrib_struct,
+};
+
+static gint ett_struct_ns_info_struct;
+static const ptvc_record ptvc_struct_ns_info_struct[] = {
+	{ &hf_ncp_name_space, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_reserved3, 3, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, NO_LENGTH, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+static const sub_ptvc_record struct_ns_info_struct = {
+	&ett_struct_ns_info_struct,
+	NULL,
+	ptvc_struct_ns_info_struct,
+};
+
+static gint ett_struct_nw_audit_status;
+static const ptvc_record ptvc_struct_nw_audit_status[] = {
+	{ &hf_ncp_audit_ver_date, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NW_DATE },
+	{ &hf_ncp_audit_file_ver_date, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NW_DATE },
+	{ &hf_ncp_audit_enable_flag, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_reserved2, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_audit_file_size, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_modified_counter, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_audit_file_max_size, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_audit_file_size_threshold, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_audit_record_count, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_auditing_flags, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, NO_LENGTH, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+static const sub_ptvc_record struct_nw_audit_status = {
+	&ett_struct_nw_audit_status,
+	"NetWare Audit Status",
+	ptvc_struct_nw_audit_status,
+};
+
+static gint ett_struct_object_flags_struct;
+static const ptvc_record ptvc_struct_object_flags_struct[] = {
+	{ &hf_ncp_object_flags, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, NO_LENGTH, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+static const sub_ptvc_record struct_object_flags_struct = {
+	&ett_struct_object_flags_struct,
+	NULL,
+	ptvc_struct_object_flags_struct,
+};
+
+static gint ett_struct_object_id_struct;
+static const ptvc_record ptvc_struct_object_id_struct[] = {
+	{ &hf_ncp_object_id, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_restriction, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, NO_LENGTH, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+static const sub_ptvc_record struct_object_id_struct = {
+	&ett_struct_object_id_struct,
+	NULL,
+	ptvc_struct_object_id_struct,
+};
+
+static gint ett_struct_object_name_struct;
+static const ptvc_record ptvc_struct_object_name_struct[] = {
+	{ &hf_ncp_object_name_stringz, -1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, NO_LENGTH, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+static const sub_ptvc_record struct_object_name_struct = {
+	&ett_struct_object_name_struct,
+	NULL,
+	ptvc_struct_object_name_struct,
+};
+
+static gint ett_struct_object_security_struct;
+static const ptvc_record ptvc_struct_object_security_struct[] = {
+	{ &hf_ncp_object_security, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, NO_LENGTH, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+static const sub_ptvc_record struct_object_security_struct = {
+	&ett_struct_object_security_struct,
+	NULL,
+	ptvc_struct_object_security_struct,
+};
+
+static gint ett_struct_object_type_struct;
+static const ptvc_record ptvc_struct_object_type_struct[] = {
+	{ &hf_ncp_object_type, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_reserved2, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, NO_LENGTH, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+static const sub_ptvc_record struct_object_type_struct = {
+	&ett_struct_object_type_struct,
+	NULL,
+	ptvc_struct_object_type_struct,
+};
+
+static gint ett_struct_opn_files_struct;
+static const ptvc_record ptvc_struct_opn_files_struct[] = {
+	{ &hf_ncp_task_number_word, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_lock_type, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_access_control, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_lock_flag, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_volume_number, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_dos_parent_directory_entry, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_dos_directory_entry, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_fork_count, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_name_space, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_file_name, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, NO_LENGTH, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+static const sub_ptvc_record struct_opn_files_struct = {
+	&ett_struct_opn_files_struct,
+	"Open Files Information",
+	ptvc_struct_opn_files_struct,
+};
+
+static gint ett_struct_owner_id_struct;
+static const ptvc_record ptvc_struct_owner_id_struct[] = {
+	{ &hf_ncp_creator_id, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, NO_LENGTH, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+static const sub_ptvc_record struct_owner_id_struct = {
+	&ett_struct_owner_id_struct,
+	NULL,
+	ptvc_struct_owner_id_struct,
+};
+
+static gint ett_struct_packet_burst_information;
+static const ptvc_record ptvc_struct_packet_burst_information[] = {
+	{ &hf_ncp_big_invalid_slot, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_big_forged_packet, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_big_invalid_packet, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_big_still_transmitting, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_still_doing_the_last_req, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_invalid_control_req, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_control_invalid_message_number, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_control_being_torn_down, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_big_repeat_the_file_read, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_big_send_extra_cc_count, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_big_return_abort_mess, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_big_read_invalid_mess, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_big_read_do_it_over, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_big_read_being_torn_down, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_previous_control_packet, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_send_hold_off_message, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_big_read_no_data_avail, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_big_read_trying_to_read, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_async_read_error, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_big_read_phy_read_err, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_ctl_bad_ack_frag_list, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_ctl_no_data_read, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_write_dup_req, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_shouldnt_be_ack_here, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_write_incon_packet_len, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_first_packet_isnt_a_write, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_write_trash_dup_req, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_big_write_inv_message_num, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_big_write_being_torn_down, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_big_write_being_abort, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_zero_ack_frag, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_write_curr_trans, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_try_to_write_too_much, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_write_out_of_mem_for_ctl_nodes, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_write_didnt_need_this_frag, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_write_too_many_buf_check, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_write_timeout, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_write_got_an_ack0, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_write_got_an_ack1, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_poll_abort_conn, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_may_had_out_of_order, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_had_an_out_of_order, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_moved_the_ack_bit_dn, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_bumped_out_of_order, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_poll_rem_old_out_of_order, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_write_didnt_need_but_req_ack, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_write_trash_packet, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_too_many_ack_frag, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_saved_an_out_of_order_packet, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_conn_being_aborted, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, NO_LENGTH, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+static const sub_ptvc_record struct_packet_burst_information = {
+	&ett_struct_packet_burst_information,
+	"Packet Burst Information",
+	ptvc_struct_packet_burst_information,
+};
+
+static gint ett_struct_pad_archive_info;
+static const ptvc_record ptvc_struct_pad_archive_info[] = {
+	{ &hf_ncp_reserved8, 8, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, NO_LENGTH, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+static const sub_ptvc_record struct_pad_archive_info = {
+	&ett_struct_pad_archive_info,
+	NULL,
+	ptvc_struct_pad_archive_info,
+};
+
+static gint ett_struct_pad_attributes;
+static const ptvc_record ptvc_struct_pad_attributes[] = {
+	{ &hf_ncp_reserved6, 6, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, NO_LENGTH, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+static const sub_ptvc_record struct_pad_attributes = {
+	&ett_struct_pad_attributes,
+	NULL,
+	ptvc_struct_pad_attributes,
+};
+
+static gint ett_struct_pad_creation_info;
+static const ptvc_record ptvc_struct_pad_creation_info[] = {
+	{ &hf_ncp_reserved8, 8, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, NO_LENGTH, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+static const sub_ptvc_record struct_pad_creation_info = {
+	&ett_struct_pad_creation_info,
+	NULL,
+	ptvc_struct_pad_creation_info,
+};
+
+static gint ett_struct_pad_data_stream_size;
+static const ptvc_record ptvc_struct_pad_data_stream_size[] = {
+	{ &hf_ncp_reserved4, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, NO_LENGTH, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+static const sub_ptvc_record struct_pad_data_stream_size = {
+	&ett_struct_pad_data_stream_size,
+	NULL,
+	ptvc_struct_pad_data_stream_size,
+};
+
+static gint ett_struct_pad_dir_entry;
+static const ptvc_record ptvc_struct_pad_dir_entry[] = {
+	{ &hf_ncp_reserved12, 12, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, NO_LENGTH, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+static const sub_ptvc_record struct_pad_dir_entry = {
+	&ett_struct_pad_dir_entry,
+	NULL,
+	ptvc_struct_pad_dir_entry,
+};
+
+static gint ett_struct_pad_ds_space_alloc;
+static const ptvc_record ptvc_struct_pad_ds_space_alloc[] = {
+	{ &hf_ncp_reserved4, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, NO_LENGTH, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+static const sub_ptvc_record struct_pad_ds_space_alloc = {
+	&ett_struct_pad_ds_space_alloc,
+	NULL,
+	ptvc_struct_pad_ds_space_alloc,
+};
+
+static gint ett_struct_pad_ea_info;
+static const ptvc_record ptvc_struct_pad_ea_info[] = {
+	{ &hf_ncp_reserved12, 12, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, NO_LENGTH, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+static const sub_ptvc_record struct_pad_ea_info = {
+	&ett_struct_pad_ea_info,
+	NULL,
+	ptvc_struct_pad_ea_info,
+};
+
+static gint ett_struct_pad_modify_info;
+static const ptvc_record ptvc_struct_pad_modify_info[] = {
+	{ &hf_ncp_reserved10, 10, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, NO_LENGTH, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+static const sub_ptvc_record struct_pad_modify_info = {
+	&ett_struct_pad_modify_info,
+	NULL,
+	ptvc_struct_pad_modify_info,
+};
+
+static gint ett_struct_pad_ns_info;
+static const ptvc_record ptvc_struct_pad_ns_info[] = {
+	{ &hf_ncp_reserved4, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, NO_LENGTH, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+static const sub_ptvc_record struct_pad_ns_info = {
+	&ett_struct_pad_ns_info,
+	NULL,
+	ptvc_struct_pad_ns_info,
+};
+
+static gint ett_struct_pad_rights_info;
+static const ptvc_record ptvc_struct_pad_rights_info[] = {
+	{ &hf_ncp_reserved2, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, NO_LENGTH, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+static const sub_ptvc_record struct_pad_rights_info = {
+	&ett_struct_pad_rights_info,
+	NULL,
+	ptvc_struct_pad_rights_info,
+};
+
+static gint ett_struct_pad_total_stream_size;
+static const ptvc_record ptvc_struct_pad_total_stream_size[] = {
+	{ &hf_ncp_reserved6, 6, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, NO_LENGTH, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+static const sub_ptvc_record struct_pad_total_stream_size = {
+	&ett_struct_pad_total_stream_size,
+	NULL,
+	ptvc_struct_pad_total_stream_size,
+};
+
+static gint ett_struct_parent_base_id_struct;
+static const ptvc_record ptvc_struct_parent_base_id_struct[] = {
+	{ &hf_ncp_parent_base_id, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, NO_LENGTH, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+static const sub_ptvc_record struct_parent_base_id_struct = {
+	&ett_struct_parent_base_id_struct,
+	NULL,
+	ptvc_struct_parent_base_id_struct,
+};
+
+static gint ett_struct_phy_lock_struct;
+static const ptvc_record ptvc_struct_phy_lock_struct[] = {
+	{ &hf_ncp_logged_count, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_shareable_lock_count, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_record_start, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_record_end, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_logical_connection_number, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_task_num_byte, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_lock_type, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, NO_LENGTH, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+static const sub_ptvc_record struct_phy_lock_struct = {
+	&ett_struct_phy_lock_struct,
+	"Physical Locks",
+	ptvc_struct_phy_lock_struct,
+};
+
+static gint ett_struct_print_info_struct;
+static const ptvc_record ptvc_struct_print_info_struct[] = {
+	{ &hf_ncp_print_flags, 1, &ncp_print_flags_bitfield, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_tab_size, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_copies, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_print_to_file_flag, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_banner_name, 14, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_target_ptr, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_form_type, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, NO_LENGTH, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+static const sub_ptvc_record struct_print_info_struct = {
+	&ett_struct_print_info_struct,
+	"Print Information",
+	ptvc_struct_print_info_struct,
+};
+
+static gint ett_struct_r_tag_struct;
+static const ptvc_record ptvc_struct_r_tag_struct[] = {
+	{ &hf_ncp_r_tag_num, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_resource_sig, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_resource_count, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_resource_name, -1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, NO_LENGTH, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+static const sub_ptvc_record struct_r_tag_struct = {
+	&ett_struct_r_tag_struct,
+	"Resource Tag",
+	ptvc_struct_r_tag_struct,
+};
+
+static gint ett_struct_ref_id_struct;
+static const ptvc_record ptvc_struct_ref_id_struct[] = {
+	{ &hf_ncp_curr_ref_id, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, NO_LENGTH, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+static const sub_ptvc_record struct_ref_id_struct = {
+	&ett_struct_ref_id_struct,
+	NULL,
+	ptvc_struct_ref_id_struct,
+};
+
+static gint ett_struct_rights_info_struct;
+static const ptvc_record ptvc_struct_rights_info_struct[] = {
+	{ &hf_ncp_inherited_rights_mask, 2, &ncp_inherited_rights_mask_bitfield, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, NO_LENGTH, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+static const sub_ptvc_record struct_rights_info_struct = {
+	&ett_struct_rights_info_struct,
+	NULL,
+	ptvc_struct_rights_info_struct,
+};
+
+static gint ett_struct_routers_info;
+static const ptvc_record ptvc_struct_routers_info[] = {
+	{ &hf_ncp_node, 6, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_connected_lan, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_route_hops, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_route_time, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, NO_LENGTH, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+static const sub_ptvc_record struct_routers_info = {
+	&ett_struct_routers_info,
+	"Router Information",
+	ptvc_struct_routers_info,
+};
+
+static gint ett_struct_scan_info_file_name;
+static const ptvc_record ptvc_struct_scan_info_file_name[] = {
+	{ &hf_ncp_salvageable_file_entry_number, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_file_name, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, NO_LENGTH, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+static const sub_ptvc_record struct_scan_info_file_name = {
+	&ett_struct_scan_info_file_name,
+	NULL,
+	ptvc_struct_scan_info_file_name,
+};
+
+static gint ett_struct_scan_info_file_no_name;
+static const ptvc_record ptvc_struct_scan_info_file_no_name[] = {
+	{ &hf_ncp_salvageable_file_entry_number, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, NO_LENGTH, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+static const sub_ptvc_record struct_scan_info_file_no_name = {
+	&ett_struct_scan_info_file_no_name,
+	NULL,
+	ptvc_struct_scan_info_file_no_name,
+};
+
+static gint ett_struct_segments;
+static const ptvc_record ptvc_struct_segments[] = {
+	{ &hf_ncp_volume_segment_dev_num, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_volume_segment_offset, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_volume_segment_size, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, NO_LENGTH, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+static const sub_ptvc_record struct_segments = {
+	&ett_struct_segments,
+	"Volume Segment Information",
+	ptvc_struct_segments,
+};
+
+static gint ett_struct_sema_info_struct;
+static const ptvc_record ptvc_struct_sema_info_struct[] = {
+	{ &hf_ncp_logical_connection_number, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_task_num_byte, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, NO_LENGTH, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+static const sub_ptvc_record struct_sema_info_struct = {
+	&ett_struct_sema_info_struct,
+	NULL,
+	ptvc_struct_sema_info_struct,
+};
+
+static gint ett_struct_sema_struct;
+static const ptvc_record ptvc_struct_sema_struct[] = {
+	{ &hf_ncp_open_count, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_semaphore_value, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_task_num_byte, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_semaphore_name, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, NO_LENGTH, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+static const sub_ptvc_record struct_sema_struct = {
+	&ett_struct_sema_struct,
+	"Semaphore Information",
+	ptvc_struct_sema_struct,
+};
+
+static gint ett_struct_server_info;
+static const ptvc_record ptvc_struct_server_info[] = {
+	{ &hf_ncp_reply_canceled, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_write_held_off, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_write_held_off_with_dup, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_invalid_req_type, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_being_aborted, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_already_doing_realloc, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_dealloc_invalid_slot, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_dealloc_being_proc, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_dealloc_forged_packet, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_dealloc_still_transmit, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_start_station_error, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_invalid_slot, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_being_processed, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_forged_packet, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_still_transmitting, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_reexecute_request, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_invalid_sequence_number, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_dup_is_being_sent, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_sent_pos_ack, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_sent_a_dup_reply, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_no_mem_for_station, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_no_avail_conns, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_realloc_slot, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_realloc_slot_came_too_soon, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, NO_LENGTH, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+static const sub_ptvc_record struct_server_info = {
+	&ett_struct_server_info,
+	"Server Information",
+	ptvc_struct_server_info,
+};
+
+static gint ett_struct_servers_src_info;
+static const ptvc_record ptvc_struct_servers_src_info[] = {
+	{ &hf_ncp_server_node, 6, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_connected_lan, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_hops_to_net, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, NO_LENGTH, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+static const sub_ptvc_record struct_servers_src_info = {
+	&ett_struct_servers_src_info,
+	"Source Server Information",
+	ptvc_struct_servers_src_info,
+};
+
+static gint ett_struct_sibling_count_struct;
+static const ptvc_record ptvc_struct_sibling_count_struct[] = {
+	{ &hf_ncp_sibling_count, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, NO_LENGTH, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+static const sub_ptvc_record struct_sibling_count_struct = {
+	&ett_struct_sibling_count_struct,
+	NULL,
+	ptvc_struct_sibling_count_struct,
+};
+
+static gint ett_struct_space_struct;
+static const ptvc_record ptvc_struct_space_struct[] = {
+	{ &hf_ncp_level, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_maxspace, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_current_space, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, NO_LENGTH, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+static const sub_ptvc_record struct_space_struct = {
+	&ett_struct_space_struct,
+	"Space Information",
+	ptvc_struct_space_struct,
+};
+
+static gint ett_struct_spx_information;
+static const ptvc_record ptvc_struct_spx_information[] = {
+	{ &hf_ncp_spx_max_conn, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_spx_max_used_conn, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_spx_est_conn_req, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_spx_est_conn_fail, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_spx_listen_con_req, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_spx_listen_con_fail, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_spx_send, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_spx_window_choke, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_spx_bad_send, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_spx_send_fail, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_spx_abort_conn, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_spx_listen_pkt, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_spx_bad_listen, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_spx_incoming_pkt, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_spx_bad_in_pkt, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_spx_supp_pkt, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_spx_no_ses_listen, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_spx_watch_dog, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, NO_LENGTH, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+static const sub_ptvc_record struct_spx_information = {
+	&ett_struct_spx_information,
+	"SPX Information",
+	ptvc_struct_spx_information,
+};
+
+static gint ett_struct_stack_info;
+static const ptvc_record ptvc_struct_stack_info[] = {
+	{ &hf_ncp_stack_number, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_stack_short_name, 16, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, NO_LENGTH, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+static const sub_ptvc_record struct_stack_info = {
+	&ett_struct_stack_info,
+	"Stack Information",
+	ptvc_struct_stack_info,
+};
+
+static gint ett_struct_stats_info_struct;
+static const ptvc_record ptvc_struct_stats_info_struct[] = {
+	{ &hf_ncp_user_info_ttl_bytes_rd, 6, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_user_info_ttl_bytes_wrt, 6, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_total_request, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, NO_LENGTH, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+static const sub_ptvc_record struct_stats_info_struct = {
+	&ett_struct_stats_info_struct,
+	"Statistics",
+	ptvc_struct_stats_info_struct,
+};
+
+static gint ett_struct_the_time_struct;
+static const ptvc_record ptvc_struct_the_time_struct[] = {
+	{ &hf_ncp_uts_time_in_seconds, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_fractional_time, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_timesync_status_flags, 4, &ncp_timesync_status_flags_bitfield, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, NO_LENGTH, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+static const sub_ptvc_record struct_the_time_struct = {
+	&ett_struct_the_time_struct,
+	NULL,
+	ptvc_struct_the_time_struct,
+};
+
+static gint ett_struct_time_info;
+static const ptvc_record ptvc_struct_time_info[] = {
+	{ &hf_ncp_year, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_s_month, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_s_day, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_s_hour, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_s_minute, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_s_second, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_s_day_of_week, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_login_expiration_time, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, NO_LENGTH, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+static const sub_ptvc_record struct_time_info = {
+	&ett_struct_time_info,
+	NULL,
+	ptvc_struct_time_info,
+};
+
+static gint ett_struct_total_stream_size_struct;
+static const ptvc_record ptvc_struct_total_stream_size_struct[] = {
+	{ &hf_ncp_total_stream_size_struct_space_alloc, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_number_of_data_streams, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, NO_LENGTH, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+static const sub_ptvc_record struct_total_stream_size_struct = {
+	&ett_struct_total_stream_size_struct,
+	NULL,
+	ptvc_struct_total_stream_size_struct,
+};
+
+static gint ett_struct_trend_counters;
+static const ptvc_record ptvc_struct_trend_counters[] = {
+	{ &hf_ncp_num_of_cache_checks, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_num_of_cache_hits, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_num_of_dirty_cache_checks, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_num_of_cache_dirty_checks, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_cache_used_while_check, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_wait_till_dirty_blcks_dec, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_alloc_blck_frm_avail, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_alloc_blck_frm_lru, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_alloc_blck_already_wait, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_lru_sit_time, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_num_of_cache_check_no_wait, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_num_of_cache_hits_no_wait, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, NO_LENGTH, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+static const sub_ptvc_record struct_trend_counters = {
+	&ett_struct_trend_counters,
+	"Trend Counters",
+	ptvc_struct_trend_counters,
+};
+
+static gint ett_struct_trustee_struct;
+static const ptvc_record ptvc_struct_trustee_struct[] = {
+	{ &hf_ncp_object_id, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_access_rights_mask_word, 2, &ncp_access_rights_mask_word_bitfield, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, NO_LENGTH, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+static const sub_ptvc_record struct_trustee_struct = {
+	&ett_struct_trustee_struct,
+	NULL,
+	ptvc_struct_trustee_struct,
+};
+
+static gint ett_struct_update_date_struct;
+static const ptvc_record ptvc_struct_update_date_struct[] = {
+	{ &hf_ncp_update_date, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NW_DATE },
+	{ NULL, NO_LENGTH, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+static const sub_ptvc_record struct_update_date_struct = {
+	&ett_struct_update_date_struct,
+	NULL,
+	ptvc_struct_update_date_struct,
+};
+
+static gint ett_struct_update_id_struct;
+static const ptvc_record ptvc_struct_update_id_struct[] = {
+	{ &hf_ncp_update_id, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, NO_LENGTH, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+static const sub_ptvc_record struct_update_id_struct = {
+	&ett_struct_update_id_struct,
+	NULL,
+	ptvc_struct_update_id_struct,
+};
+
+static gint ett_struct_update_time_struct;
+static const ptvc_record ptvc_struct_update_time_struct[] = {
+	{ &hf_ncp_update_time, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NW_TIME },
+	{ NULL, NO_LENGTH, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+static const sub_ptvc_record struct_update_time_struct = {
+	&ett_struct_update_time_struct,
+	NULL,
+	ptvc_struct_update_time_struct,
+};
+
+static gint ett_struct_user_info;
+static const ptvc_record ptvc_struct_user_info[] = {
+	{ &hf_ncp_connection_number, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_user_info_use_count, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_reserved2, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_connection_service_type, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_year, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_s_month, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_s_day, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_s_hour, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_s_minute, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_s_second, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_s_day_of_week, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_status, 2, &ncp_status_bitfield, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_reserved2, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_expiration_time, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_object_type, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_reserved2, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_tts_flag, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_logical_lock_threshold, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_file_write_flags, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_file_write_state, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_reserved, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_file_lock_count, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_rec_lock_count, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_user_info_ttl_bytes_rd, 6, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_user_info_ttl_bytes_wrt, 6, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_total_request, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_user_info_held_req, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_held_bytes_read, 6, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_held_bytes_write, 6, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, NO_LENGTH, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+static const sub_ptvc_record struct_user_info = {
+	&ett_struct_user_info,
+	"User Information",
+	ptvc_struct_user_info,
+};
+
+static gint ett_struct_vol_info_struct;
+static const ptvc_record ptvc_struct_vol_info_struct[] = {
+	{ &hf_ncp_volume_type, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_reserved2, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_status_flag_bits, 4, &ncp_status_flag_bits_bitfield, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_sector_size, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_sectors_per_cluster_long, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_volume_size_in_clusters, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_freed_clusters, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_sub_alloc_freeable_clusters, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_freeable_limbo_sectors, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_non_freeable_limbo_sectors, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_non_freeable_avail_sub_alloc_sectors, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_not_usable_sub_alloc_sectors, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_sub_alloc_clusters, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_data_streams_count, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_limbo_data_streams_count, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_oldest_deleted_file_age_in_ticks, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_compressed_data_streams_count, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_compressed_limbo_data_streams_count, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_un_compressable_data_streams_count, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_pre_compressed_sectors, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_compressed_sectors, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_migrated_files, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_migrated_sectors, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_clusters_used_by_fat, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_clusters_used_by_directories, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_clusters_used_by_extended_dirs, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_total_dir_entries, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_un_used_directory_entries, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_total_extended_directory_extants, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_un_used_extended_directory_extants, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_extended_attributes_defined, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_extended_attribute_extants_used, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_directory_services_object_id, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_volume_last_modified_time, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NW_TIME },
+	{ &hf_ncp_volume_last_modified_date, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NW_DATE },
+	{ NULL, NO_LENGTH, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+static const sub_ptvc_record struct_vol_info_struct = {
+	&ett_struct_vol_info_struct,
+	"Volume Information",
+	ptvc_struct_vol_info_struct,
+};
+
+static gint ett_struct_vol_info_struct_2;
+static const ptvc_record ptvc_struct_vol_info_struct_2[] = {
+	{ &hf_ncp_volume_active_count, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_volume_use_count, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_mac_root_ids, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_volume_last_modified_time, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NW_TIME },
+	{ &hf_ncp_volume_last_modified_date, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NW_DATE },
+	{ &hf_ncp_volume_reference_count, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_compression_lower_limit, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_outstanding_ios, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_outstanding_compression_ios, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_compression_ios_limit, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, NO_LENGTH, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+static const sub_ptvc_record struct_vol_info_struct_2 = {
+	&ett_struct_vol_info_struct_2,
+	"Extended Volume Information",
+	ptvc_struct_vol_info_struct_2,
+};
+
+static gint ett_struct_volume_struct;
+static const ptvc_record ptvc_struct_volume_struct[] = {
+	{ &hf_ncp_volume_number_long, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_volume_name_len, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, NO_LENGTH, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+static const sub_ptvc_record struct_volume_struct = {
+	&ett_struct_volume_struct,
+	NULL,
+	ptvc_struct_volume_struct,
+};
+
+/* PTVC records. These are re-used to save space. */
+static const ptvc_record ncp_0x3_request[] = {
+	{ &hf_ncp_dir_handle, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_lock_flag, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_timeout_limit, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_file_path, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x4_request[] = {
+	{ &hf_ncp_timeout_limit, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x5_request[] = {
+	{ &hf_ncp_dir_handle, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_file_path, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x6_request[] = {
+	{ &hf_ncp_lock_flag, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x9_request[] = {
+	{ &hf_ncp_lock_flag, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_timeout_limit, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_logical_record_name, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0xa_request[] = {
+	{ &hf_ncp_lock_flag, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_timeout_limit, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0xb_request[] = {
+	{ &hf_ncp_logical_record_name, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x1100_request[] = {
+	{ &hf_ncp_data, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x1101_request[] = {
+	{ &hf_ncp_abort_q_flag, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x1102_request[] = {
+	{ &hf_ncp_print_flags, 1, &ncp_print_flags_bitfield, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_tab_size, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_target_ptr, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_copies, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_form_type, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_reserved, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_banner_name, 14, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x1103_request[] = {
+	{ &hf_ncp_dir_handle, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_data, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x1106_request[] = {
+	{ &hf_ncp_target_ptr, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x1106_reply[] = {
+	{ &hf_ncp_printer_halted, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_printer_offline, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_current_form_type, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_redirected_printer, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x110a_reply[] = {
+	{ &hf_ncp_object_id, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x12_request[] = {
+	{ &hf_ncp_volume_number, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x12_reply[] = {
+	{ &hf_ncp_sectors_per_cluster, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_total_volume_clusters, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_available_clusters, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_total_directory_slots, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_available_directory_slots, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_volume_name, 16, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_removable_flag, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x13_reply[] = {
+	{ &hf_ncp_station_number, 3, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x14_reply[] = {
+	{ &hf_ncp_year, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_s_month, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_s_day, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_s_hour, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_s_minute, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_s_second, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_s_day_of_week, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x1500_request[] = {
+	{ &hf_ncp_client_list_len, 1, NULL, BE, 0, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_target_client_list, 1, NULL, BE, NO_VAR, 0, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_target_message, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x1500_reply[] = {
+	{ &hf_ncp_client_list_len, 1, NULL, BE, 0, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_send_status, 1, NULL, LE, NO_VAR, 0, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x1501_reply[] = {
+	{ &hf_ncp_target_message, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x150a_request[] = {
+	{ &hf_ncp_client_list_cnt, 2, NULL, LE, 0, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_client_list, 4, NULL, LE, NO_VAR, 0, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_target_message, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x150a_reply[] = {
+	{ &hf_ncp_client_list_cnt, 2, NULL, LE, 0, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_client_comp_flag, 4, NULL, LE, NO_VAR, 0, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x150c_request[] = {
+	{ &hf_ncp_conn_ctrl_bits, 1, &ncp_conn_ctrl_bits_bitfield, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_reserved3, 3, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_conn_list_count, 4, NULL, LE, 0, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_connection_list, 4, NULL, LE, NO_VAR, 0, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x1600_request[] = {
+	{ &hf_ncp_target_dir_handle, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_dir_handle, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_path, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x1601_request[] = {
+	{ &hf_ncp_dir_handle, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x1601_reply[] = {
+	{ &hf_ncp_path, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x1602_request[] = {
+	{ &hf_ncp_dir_handle, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_start_search_number, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_path, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x1602_reply[] = {
+	{ &hf_ncp_directory_path, 16, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_creation_date, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NW_DATE },
+	{ &hf_ncp_creation_time, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NW_TIME },
+	{ &hf_ncp_creator_id, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_access_rights_mask, 1, &ncp_access_rights_mask_bitfield, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_reserved, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_next_search_number, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x1603_request[] = {
+	{ &hf_ncp_dir_handle, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_start_search_number, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_path, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x1603_reply[] = {
+	{ &hf_ncp_access_rights_mask, 1, &ncp_access_rights_mask_bitfield, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x1604_request[] = {
+	{ &hf_ncp_dir_handle, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_rights_grant_mask, 1, &ncp_rights_grant_mask_bitfield, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_rights_revoke_mask, 1, &ncp_rights_revoke_mask_bitfield, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_path, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x1605_request[] = {
+	{ &hf_ncp_volume_name_len, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x160a_request[] = {
+	{ &hf_ncp_dir_handle, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_access_rights_mask, 1, &ncp_access_rights_mask_bitfield, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_path, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x160b_request[] = {
+	{ &hf_ncp_dir_handle, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_reserved, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_path, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x160c_request[] = {
+	{ &hf_ncp_dir_handle, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_trustee_set_number, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_path, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x160c_reply[] = {
+	{ &hf_ncp_directory_path, 16, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_creation_date, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NW_DATE },
+	{ &hf_ncp_creation_time, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NW_TIME },
+	{ &hf_ncp_creator_id, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_trustee_id_set, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_trustee_id_set, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_trustee_id_set, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_trustee_id_set, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_trustee_id_set, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_access_rights_mask, 1, &ncp_access_rights_mask_bitfield, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_access_rights_mask, 1, &ncp_access_rights_mask_bitfield, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_access_rights_mask, 1, &ncp_access_rights_mask_bitfield, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_access_rights_mask, 1, &ncp_access_rights_mask_bitfield, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_access_rights_mask, 1, &ncp_access_rights_mask_bitfield, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x160d_request[] = {
+	{ &hf_ncp_dir_handle, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_trustee_id_set, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_access_rights_mask, 1, &ncp_access_rights_mask_bitfield, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_path, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x160e_request[] = {
+	{ &hf_ncp_dir_handle, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_trustee_id_set, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_reserved, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_path, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x160f_request[] = {
+	{ &hf_ncp_dir_handle, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_path, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_new_path, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x1611_reply[] = {
+	{ &hf_ncp_old_file_name, 15, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_new_file_name, 15, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x1612_request[] = {
+	{ &hf_ncp_dir_handle, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_dir_handle_name, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_path, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x1612_reply[] = {
+	{ &hf_ncp_dir_handle, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_access_rights_mask, 1, &ncp_access_rights_mask_bitfield, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x1617_reply[] = {
+	{ &hf_ncp_server_network_address, 10, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_dir_handle_long, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x1619_request[] = {
+	{ &hf_ncp_dir_handle, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_creation_date, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NW_DATE },
+	{ &hf_ncp_creation_time, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NW_TIME },
+	{ &hf_ncp_creator_id, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_access_rights_mask, 1, &ncp_access_rights_mask_bitfield, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_path, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x161a_request[] = {
+	{ &hf_ncp_volume_number, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_directory_entry_number_word, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x161b_request[] = {
+	{ &hf_ncp_dir_handle, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_sequence_number, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x161b_reply[] = {
+	{ &hf_ncp_sequence_number, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_sub_directory, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_reserved2, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_attr_def_32, 4, &ncp_attr_def_32_bitfield, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_unique_id, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_flags_def, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_dest_name_space, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_file_name_len, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_file_name_12, 12, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_creation_time, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NW_TIME },
+	{ &hf_ncp_creation_date, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NW_DATE },
+	{ &hf_ncp_creator_id, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_archived_time, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NW_TIME },
+	{ &hf_ncp_archived_date, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NW_DATE },
+	{ &hf_ncp_archiver_id, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_update_time, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NW_TIME },
+	{ &hf_ncp_update_date, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NW_DATE },
+	{ &hf_ncp_update_id, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_file_size, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_reserved44, 44, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_inherited_rights_mask, 2, &ncp_inherited_rights_mask_bitfield, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_last_access_date, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NW_DATE },
+	{ &hf_ncp_deleted_file_time, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_deleted_time, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NW_TIME },
+	{ &hf_ncp_deleted_date, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NW_DATE },
+	{ &hf_ncp_delete_id, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_reserved16, 16, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x161c_request[] = {
+	{ &hf_ncp_dir_handle, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_sequence_number, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_file_name, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_new_file_name_len, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x161e_request[] = {
+	{ &hf_ncp_dir_handle, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_dos_file_attributes, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_sequence_number, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_search_pattern, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x161e_reply[] = {
+	{ &hf_ncp_sequence_number, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_sub_directory, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_attr_def_32, 4, &ncp_attr_def_32_bitfield, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_unique_id, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_purge_flags, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_dest_name_space, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_name_len, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_name12, 12, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_creation_time, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NW_TIME },
+	{ &hf_ncp_creation_date, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NW_DATE },
+	{ &hf_ncp_creator_id, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_archived_time, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NW_TIME },
+	{ &hf_ncp_archived_date, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NW_DATE },
+	{ &hf_ncp_archiver_id, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_update_time, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NW_TIME },
+	{ &hf_ncp_update_date, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NW_DATE },
+	{ &hf_ncp_update_id, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_file_size, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_reserved44, 44, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_inherited_rights_mask, 2, &ncp_inherited_rights_mask_bitfield, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_last_access_date, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NW_DATE },
+	{ &hf_ncp_reserved28, 28, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x161f_reply[] = {
+	{ &hf_ncp_sub_directory, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_attr_def_32, 4, &ncp_attr_def_32_bitfield, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_unique_id, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_purge_flags, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_dest_name_space, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_name_len, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_name12, 12, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_creation_time, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NW_TIME },
+	{ &hf_ncp_creation_date, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NW_DATE },
+	{ &hf_ncp_creator_id, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_archived_time, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NW_TIME },
+	{ &hf_ncp_archived_date, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NW_DATE },
+	{ &hf_ncp_archiver_id, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_update_time, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NW_TIME },
+	{ &hf_ncp_update_date, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NW_DATE },
+	{ &hf_ncp_next_trustee_entry, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_reserved48, 48, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_max_space, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_inherited_rights_mask, 2, &ncp_inherited_rights_mask_bitfield, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_undefined_28, 28, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x1620_request[] = {
+	{ &hf_ncp_volume_number, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_sequence_number, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x1620_reply[] = {
+	{ &hf_ncp_number_of_entries, 1, NULL, BE, 0, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_object_id_struct, NO_ENDIANNESS, NO_VAR, 0, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x1621_request[] = {
+	{ &hf_ncp_volume_number, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_object_id, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_disk_space_limit, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x1622_request[] = {
+	{ &hf_ncp_volume_number, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_object_id, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x1623_reply[] = {
+	{ &hf_ncp_number_of_entries, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_level, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_maxspace, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_current_space, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x1624_request[] = {
+	{ &hf_ncp_dir_handle, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_disk_space_limit, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x1625_request[] = {
+	{ &hf_ncp_dir_handle, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_sattr, 1, &ncp_sattr_bitfield, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_sequence_number, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_change_bits, 2, &ncp_change_bits_bitfield, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_reserved2, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_sub_directory, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_dos_directory_entry_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 22, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_dos_file_entry_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 101, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x1626_request[] = {
+	{ &hf_ncp_dir_handle, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_sequence_byte, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_path, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x1626_reply[] = {
+	{ &hf_ncp_number_of_entries, 1, NULL, BE, 0, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_object_id, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_object_id, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_object_id, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_object_id, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_object_id, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_object_id, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_object_id, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_object_id, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_object_id, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_object_id, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_object_id, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_object_id, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_object_id, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_object_id, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_object_id, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_object_id, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_object_id, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_object_id, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_object_id, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_object_id, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_access_rights_mask_word, 2, &ncp_access_rights_mask_word_bitfield, LE, NO_VAR, 0, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x1627_request[] = {
+	{ &hf_ncp_dir_handle, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_object_id, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_trustee_rights_low, 2, &ncp_trustee_rights_low_bitfield, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_path, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x1628_request[] = {
+	{ &hf_ncp_dir_handle, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_sattr, 1, &ncp_sattr_bitfield, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_sequence_number, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_search_pattern, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x1628_reply[] = {
+	{ &hf_ncp_sequence_number, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_sub_directory, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_attr_def_32, 4, &ncp_attr_def_32_bitfield, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_unique_id, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_purge_flags, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_dest_name_space, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_name_len, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_name12, 12, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_creation_time, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NW_TIME },
+	{ &hf_ncp_creation_date, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NW_DATE },
+	{ &hf_ncp_creator_id, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_archived_time, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NW_TIME },
+	{ &hf_ncp_archived_date, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NW_DATE },
+	{ &hf_ncp_archiver_id, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_update_time, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NW_TIME },
+	{ &hf_ncp_update_date, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NW_DATE },
+	{ &hf_ncp_update_id, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_data_fork_size, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_data_fork_first_fat, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_next_trustee_entry, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_reserved36, 36, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_inherited_rights_mask, 2, &ncp_inherited_rights_mask_bitfield, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_last_access_date, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NW_DATE },
+	{ &hf_ncp_deleted_file_time, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_deleted_time, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NW_TIME },
+	{ &hf_ncp_deleted_date, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NW_DATE },
+	{ &hf_ncp_delete_id, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_undefined_8, 8, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_primary_entry, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_name_list, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_other_file_fork_size, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_other_file_fork_fat, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x1629_reply[] = {
+	{ &hf_ncp_restriction, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_in_use, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x162a_request[] = {
+	{ &hf_ncp_dir_handle, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_path, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x162a_reply[] = {
+	{ &hf_ncp_access_rights_mask_word, 2, &ncp_access_rights_mask_word_bitfield, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x162b_request[] = {
+	{ &hf_ncp_dir_handle, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_object_id, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_un_used, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_path, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x162c_reply[] = {
+	{ &hf_ncp_total_blocks, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_free_blocks, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_purgeable_blocks, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_not_yet_purgeable_blocks, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_total_dir_entries, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_available_dir_entries, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_reserved4, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_sectors_per_block, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_volume_name_len, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x162d_reply[] = {
+	{ &hf_ncp_total_blocks, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_available_blocks, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_total_dir_entries, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_available_dir_entries, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_reserved4, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_sectors_per_block, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_volume_name_len, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x162e_request[] = {
+	{ &hf_ncp_source_dir_handle, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_sattr, 1, &ncp_sattr_bitfield, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_source_component_count, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_source_path, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_dest_dir_handle, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_dest_component_count, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_dest_path, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x162f_reply[] = {
+	{ &hf_ncp_defined_name_spaces, 1, NULL, BE, 0, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_name_space_name, 1, NULL, BE, NO_VAR, 0, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_defined_data_streams, 1, NULL, BE, 1, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_data_stream_info, NO_ENDIANNESS, NO_VAR, 1, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_loaded_name_spaces, 1, NULL, BE, 2, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_index_number, 1, NULL, BE, NO_VAR, 2, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x1630_request[] = {
+	{ &hf_ncp_volume_number, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_dos_sequence, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_src_name_space, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x1630_reply[] = {
+	{ &hf_ncp_sequence_number, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_sub_directory, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_attr_def_32, 4, &ncp_attr_def_32_bitfield, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_unique_id, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_flags, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_src_name_space, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_name_length, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_name12, 12, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_creation_time, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NW_TIME },
+	{ &hf_ncp_creation_date, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NW_DATE },
+	{ &hf_ncp_creator_id, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_archived_time, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NW_TIME },
+	{ &hf_ncp_archived_date, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NW_DATE },
+	{ &hf_ncp_archiver_id, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_update_time, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NW_TIME },
+	{ &hf_ncp_update_date, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NW_DATE },
+	{ &hf_ncp_update_id, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_file_size, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_reserved44, 44, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_inherited_rights_mask, 2, &ncp_inherited_rights_mask_bitfield, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_last_access_date, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NW_DATE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x1631_request[] = {
+	{ &hf_ncp_data_stream, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_dir_handle, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_attr_def, 1, &ncp_attr_def_bitfield, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_open_rights, 1, &ncp_open_rights_bitfield, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_file_name, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x1631_reply[] = {
+	{ &hf_ncp_cc_file_handle, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x1632_request[] = {
+	{ &hf_ncp_object_id, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_dir_handle, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_path, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x1632_reply[] = {
+	{ &hf_ncp_trustee_rights_low, 2, &ncp_trustee_rights_low_bitfield, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x1633_reply[] = {
+	{ &hf_ncp_vol_info_reply_len, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_vol_info_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_volume_name_len, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x1634_request[] = {
+	{ &hf_ncp_start_volume_number, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_volume_request_flags, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_src_name_space, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x1634_reply[] = {
+	{ &hf_ncp_items_in_packet, 4, NULL, LE, 0, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_next_volume_number, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_volume_struct, NO_ENDIANNESS, NO_VAR, 0, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x1700_request[] = {
+	{ &hf_ncp_user_name, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_password, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x1701_request[] = {
+	{ &hf_ncp_user_name, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_password, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_new_password, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x1702_request[] = {
+	{ &hf_ncp_user_name, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x1702_reply[] = {
+	{ &hf_ncp_connection_number_list, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x1705_request[] = {
+	{ &hf_ncp_target_connection_number, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x1705_reply[] = {
+	{ &hf_ncp_user_name_16, 16, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_login_time, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_full_name, 39, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_user_id, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_security_equiv_list, 128, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_reserved64, 64, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x1707_reply[] = {
+	{ &hf_ncp_object_id, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_object_type, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_object_name_len, 48, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x170c_request[] = {
+	{ &hf_ncp_server_serial_number, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x170e_request[] = {
+	{ &hf_ncp_volume_number, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_trustee_id_set, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x170e_reply[] = {
+	{ &hf_ncp_volume_number, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_trustee_id_set, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_dir_count, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_file_count, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_cluster_count, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x170f_request[] = {
+	{ &hf_ncp_last_search_index, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_dir_handle, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_sattr, 1, &ncp_sattr_bitfield, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_file_name, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x170f_reply[] = {
+	{ &hf_ncp_next_search_index, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_file_name_14, 14, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_attr_def_16, 2, &ncp_attr_def_16_bitfield, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_file_size, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_creation_date, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NW_DATE },
+	{ &hf_ncp_last_access_date, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NW_DATE },
+	{ &hf_ncp_modified_date, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NW_DATE },
+	{ &hf_ncp_modified_time, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NW_TIME },
+	{ &hf_ncp_creator_id, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_archived_date, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NW_DATE },
+	{ &hf_ncp_archived_time, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NW_TIME },
+	{ &hf_ncp_reserved56, 56, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x1710_request[] = {
+	{ &hf_ncp_attr_def_16, 2, &ncp_attr_def_16_bitfield, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_file_size, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_creation_date, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NW_DATE },
+	{ &hf_ncp_last_access_date, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NW_DATE },
+	{ &hf_ncp_modified_date, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NW_DATE },
+	{ &hf_ncp_modified_time, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NW_TIME },
+	{ &hf_ncp_creator_id, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_archived_date, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NW_DATE },
+	{ &hf_ncp_archived_time, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NW_TIME },
+	{ &hf_ncp_reserved56, 56, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_dir_handle, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_sattr, 1, &ncp_sattr_bitfield, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_file_name, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x1711_reply[] = {
+	{ &hf_ncp_server_name, 48, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_os_major_version, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_os_minor_version, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_connections_supported_max, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_connections_in_use, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_volumes_supported_max, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_os_revision, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_sft_support_level, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_tts_level, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_connections_max_used, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_acct_version, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_vap_version, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_qms_version, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_print_server_version, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_virtual_console_version, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_security_restriction_version, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_internet_bridge_version, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_mixed_mode_path_flag, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_local_login_info_ccode, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_product_major_version, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_product_minor_version, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_product_revision_version, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_os_language_id, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_64_bit_flag, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_reserved50, 50, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x1712_reply[] = {
+	{ &hf_ncp_server_serial_number, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_application_number, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x1713_reply[] = {
+	{ &hf_ncp_network_address, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_network_node_address, 6, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_network_socket, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x1714_request[] = {
+	{ &hf_ncp_object_type, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_client_name, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_password, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x1715_request[] = {
+	{ &hf_ncp_object_type, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_object_name, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x1716_reply[] = {
+	{ &hf_ncp_user_id, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_object_type, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_object_name_len, 48, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_login_time, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_reserved, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x1717_reply[] = {
+	{ &hf_ncp_login_key, 8, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x1718_request[] = {
+	{ &hf_ncp_login_key, 8, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_object_type, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_object_name, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x171a_reply[] = {
+	{ &hf_ncp_network_address, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_network_node_address, 6, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_network_socket, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_connection_type, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x171b_request[] = {
+	{ &hf_ncp_search_conn_number, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_object_type, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_object_name, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x171b_reply[] = {
+	{ &hf_ncp_conn_list_len, 1, NULL, BE, 0, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_connection_number_list, 1, NULL, BE, NO_VAR, 0, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x171c_request[] = {
+	{ &hf_ncp_target_connection_number, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x171d_request[] = {
+	{ &hf_ncp_request_code, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x171e_request[] = {
+	{ &hf_ncp_number_of_minutes_to_delay, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x171f_request[] = {
+	{ &hf_ncp_object_id, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_connection_number, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x1720_request[] = {
+	{ &hf_ncp_next_object_id, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_object_type, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_info_flags, 4, &ncp_info_flags_bitfield, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_object_name, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x1720_reply[] = {
+	{ &hf_ncp_object_info_rtn_count, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_next_object_id, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_object_id_info, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_object_type_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 107, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_object_security_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 71, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_object_flags_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 58, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_object_name_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 16, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x1721_request[] = {
+	{ &hf_ncp_return_info_count, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x1721_reply[] = {
+	{ &hf_ncp_return_info_count, 4, NULL, LE, 0, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_guid, 16, NULL, BE, NO_VAR, 0, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x1732_request[] = {
+	{ &hf_ncp_object_flags, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_object_security, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_object_type, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_object_name, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x1733_request[] = {
+	{ &hf_ncp_object_type, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_object_name, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x1734_request[] = {
+	{ &hf_ncp_object_type, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_object_name, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_new_object_name, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x1737_request[] = {
+	{ &hf_ncp_object_id, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_object_type, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_object_name, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x1737_reply[] = {
+	{ &hf_ncp_object_id, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_object_type, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_object_name_len, 48, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_object_flags, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_object_security, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_object_has_properites, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x1738_request[] = {
+	{ &hf_ncp_object_security, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_object_type, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_object_name, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x1739_request[] = {
+	{ &hf_ncp_object_type, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_object_name, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_property_type, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_object_security, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_property_name, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x173a_request[] = {
+	{ &hf_ncp_object_type, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_object_name, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_property_name, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x173b_request[] = {
+	{ &hf_ncp_object_type, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_object_name, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_object_security, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_property_name, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x173c_request[] = {
+	{ &hf_ncp_object_type, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_object_name, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_last_instance, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_property_name, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x173c_reply[] = {
+	{ &hf_ncp_property_name_16, 16, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_object_flags, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_object_security, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_search_instance, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_value_available, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_more_properties, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x173d_request[] = {
+	{ &hf_ncp_object_type, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_object_name, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_property_segment, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_property_name, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x173d_reply[] = {
+	{ &hf_ncp_property_data, 128, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_property_has_more_segments, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_property_type, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x173e_request[] = {
+	{ &hf_ncp_object_type, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_object_name, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_property_segment, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_more_flag, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_property_name, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_property_value, 128, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x173f_request[] = {
+	{ &hf_ncp_object_type, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_object_name, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_password, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x1740_request[] = {
+	{ &hf_ncp_object_type, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_object_name, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_password, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_new_password, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x1741_request[] = {
+	{ &hf_ncp_object_type, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_object_name, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_property_name, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_member_type, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_member_name, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x1746_reply[] = {
+	{ &hf_ncp_object_security, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_logged_object_id, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x1747_request[] = {
+	{ &hf_ncp_volume_number, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_last_sequence_number, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_object_id, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x1747_reply[] = {
+	{ &hf_ncp_last_sequence_number, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_object_id, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_object_security, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_path, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x1748_reply[] = {
+	{ &hf_ncp_object_security, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x174b_request[] = {
+	{ &hf_ncp_login_key, 8, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_object_type, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_object_name, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_password, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x174c_request[] = {
+	{ &hf_ncp_last_seen, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_object_type, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_object_name, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_property_name, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x174c_reply[] = {
+	{ &hf_ncp_relations_count, 2, NULL, BE, 0, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_object_id, 4, NULL, BE, NO_VAR, 0, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x1764_request[] = {
+	{ &hf_ncp_queue_type, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_queue_name, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_path_base, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_path, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x1764_reply[] = {
+	{ &hf_ncp_queue_id, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x1766_reply[] = {
+	{ &hf_ncp_queue_id, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_queue_status, 1, &ncp_queue_status_bitfield, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_current_entries, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_current_servers, 1, NULL, LE, 0, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_server_id_number, 4, NULL, BE, NO_VAR, 0, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_server_station_list, 1, NULL, BE, NO_VAR, 0, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x1767_request[] = {
+	{ &hf_ncp_queue_id, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_queue_status, 1, &ncp_queue_status_bitfield, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x1768_request[] = {
+	{ &hf_ncp_queue_id, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_job_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x1768_reply[] = {
+	{ &hf_ncp_client_station, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_client_task_number, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_client_id_number, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_target_server_id_number, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_target_execution_time, 6, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_job_entry_time, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_job_number, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_job_type, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_job_position, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_job_control_flags, 1, &ncp_job_control_flags_bitfield, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_job_file_name, 14, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_job_file_handle, 6, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_server_station, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_server_task_number, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_server_id_number, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x1769_request[] = {
+	{ &hf_ncp_queue_id, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_job_number, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x176b_reply[] = {
+	{ &hf_ncp_job_count, 2, NULL, BE, 0, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_job_number, 2, NULL, BE, NO_VAR, 0, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x176c_reply[] = {
+	{ PTVC_STRUCT, NO_LENGTH, &struct_job_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x176e_request[] = {
+	{ &hf_ncp_queue_id, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_job_number, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_new_position, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x1771_request[] = {
+	{ &hf_ncp_queue_id, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_Service_type, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x1772_request[] = {
+	{ &hf_ncp_queue_id, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_job_number, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_charge_information, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x1776_request[] = {
+	{ &hf_ncp_queue_id, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_server_id_number, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_server_station, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x1776_reply[] = {
+	{ &hf_ncp_server_status_record, 64, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x1777_request[] = {
+	{ &hf_ncp_queue_id, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_server_status_record, 64, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x1778_reply[] = {
+	{ &hf_ncp_queue_id, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_job_number_long, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_file_size, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x1779_request[] = {
+	{ &hf_ncp_queue_id, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_job_struct_3x, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x1779_reply[] = {
+	{ PTVC_STRUCT, NO_LENGTH, &struct_job_struct_new, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x177a_request[] = {
+	{ &hf_ncp_queue_id, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_job_number_long, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x177a_reply[] = {
+	{ PTVC_STRUCT, NO_LENGTH, &struct_job_struct_3x, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x177c_request[] = {
+	{ &hf_ncp_queue_id, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_Service_type, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x177d_reply[] = {
+	{ &hf_ncp_queue_id, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_queue_status, 1, &ncp_queue_status_bitfield, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_reserved3, 3, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_current_entries, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_current_servers, 4, NULL, LE, 0, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_server_id_number, 4, NULL, BE, NO_VAR, 0, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_server_station_long, 4, NULL, LE, NO_VAR, 0, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x1781_reply[] = {
+	{ &hf_ncp_total_queue_jobs, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_reply_queue_job_numbers, 4, NULL, LE, 0, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_job_number_long, 4, NULL, BE, NO_VAR, 0, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x1782_request[] = {
+	{ &hf_ncp_queue_id, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_job_number_long, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_priority, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x1783_request[] = {
+	{ &hf_ncp_queue_id, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_job_number_long, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_charge_information, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x1786_request[] = {
+	{ &hf_ncp_queue_id, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_server_id_number, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_server_station, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x1788_request[] = {
+	{ &hf_ncp_queue_id, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_job_number_long, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_dst_queue_id, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x1788_reply[] = {
+	{ &hf_ncp_job_number_long, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x1789_request[] = {
+	{ &hf_ncp_queue_id, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_queue_start_position, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_form_type_count, 4, NULL, LE, 0, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_form_type, 2, NULL, LE, NO_VAR, 0, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x1789_reply[] = {
+	{ &hf_ncp_total_queue_jobs, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_job_count, 4, NULL, LE, 0, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_job_number_long, 4, NULL, BE, NO_VAR, 0, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x1796_reply[] = {
+	{ &hf_ncp_account_balance, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_credit_limit, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_reserved120, 120, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_holder_id, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_hold_amount, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_holder_id, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_hold_amount, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_holder_id, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_hold_amount, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_holder_id, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_hold_amount, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_holder_id, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_hold_amount, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_holder_id, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_hold_amount, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_holder_id, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_hold_amount, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_holder_id, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_hold_amount, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_holder_id, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_hold_amount, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_holder_id, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_hold_amount, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_holder_id, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_hold_amount, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_holder_id, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_hold_amount, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_holder_id, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_hold_amount, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_holder_id, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_hold_amount, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_holder_id, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_hold_amount, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_holder_id, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_hold_amount, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x1797_request[] = {
+	{ &hf_ncp_Service_type, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_charge_amount, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_hold_cancel_amount, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_object_type, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_comment_type, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_object_name, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_comment, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x1798_request[] = {
+	{ &hf_ncp_hold_cancel_amount, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_object_type, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_object_name, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x1799_request[] = {
+	{ &hf_ncp_Service_type, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_object_type, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_comment_type, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_object_name, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_comment, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x17c9_reply[] = {
+	{ &hf_ncp_description_string, 100, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x17ca_request[] = {
+	{ &hf_ncp_year, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_s_month, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_s_day, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_s_hour, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_s_minute, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_s_second, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x17cd_reply[] = {
+	{ &hf_ncp_user_login_allowed, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x17d1_request[] = {
+	{ &hf_ncp_number_of_stations, 1, NULL, BE, 0, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_station_list, 1, NULL, LE, NO_VAR, 0, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_target_message, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x17d2_request[] = {
+	{ &hf_ncp_connection_number, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x17d3_request[] = {
+	{ &hf_ncp_force_flag, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x17d4_reply[] = {
+	{ &hf_ncp_system_interval_marker, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_configured_max_open_files, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_actual_max_open_files, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_current_open_files, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_total_files_opened, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_total_read_requests, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_total_write_requests, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_current_changed_fats, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_total_changed_fats, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_fat_write_errors, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_fatal_fat_write_errors, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_fat_scan_errors, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_actual_max_indexed_files, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_active_indexed_files, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_attached_indexed_files, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_available_indexed_files, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x17d5_request[] = {
+	{ &hf_ncp_last_record_seen, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_semaphore_name, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x17d5_reply[] = {
+	{ &hf_ncp_system_interval_marker, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_transaction_tracking_supported, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_transaction_tracking_enabled, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_transaction_volume_number, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_cfg_max_simultaneous_transactions, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_actual_max_sim_trans, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_current_trans_count, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_total_trans_performed, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_total_write_trans_performed, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_total_trans_backed_out, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_total_unfilled_backout_requests, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_transaction_disk_space, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_transaction_fat_allocations, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_transaction_file_size_changes, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_transaction_files_truncated, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_number_of_entries, 1, NULL, BE, 0, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_conn_task_struct, NO_ENDIANNESS, NO_VAR, 0, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x17d6_reply[] = {
+	{ &hf_ncp_system_interval_marker, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_cache_buffer_count, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_cache_buffer_size, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_dirty_cache_buffers, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_cache_read_requests, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_cache_write_requests, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_cache_hits, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_cache_misses, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_physical_read_requests, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_physical_write_requests, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_physical_read_errors, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_physical_write_errors, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_cache_get_requests, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_cache_full_write_requests, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_cache_partial_write_requests, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_background_dirty_writes, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_background_aged_writes, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_total_cache_writes, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_cache_allocations, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_thrashing_count, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_lru_block_was_dirty, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_read_beyond_write, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_fragment_write_occurred, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_cache_hit_on_unavailable_block, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_cache_block_scrapped, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x17d7_reply[] = {
+	{ &hf_ncp_system_interval_marker, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_sft_support_level, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_logical_drive_count, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_physical_drive_count, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_disk_channel_table, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_reserved4, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_pending_io_commands, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_drive_mapping_table, 32, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_drive_mirror_table, 32, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_dead_mirror_table, 32, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_re_mirror_drive_number, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_filler, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_re_mirror_current_offset, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_sft_error_table, 60, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x17d8_request[] = {
+	{ &hf_ncp_physical_disk_number, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x17d8_reply[] = {
+	{ &hf_ncp_system_interval_marker, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_physical_disk_channel, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_drive_removable_flag, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_physical_drive_type, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_controller_drive_number, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_controller_number, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_controller_type, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_drive_size, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_drive_cylinders, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_drive_heads, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_sectors_per_track, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_drive_definition_string, 64, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_io_error_count, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_hot_fix_table_start, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_hot_fix_table_size, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_hot_fix_blocks_available, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_hot_fix_disabled, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x17d9_request[] = {
+	{ &hf_ncp_disk_channel_number, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x17d9_reply[] = {
+	{ &hf_ncp_system_interval_marker, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_channel_state, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_channel_synchronization_state, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_software_driver_type, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_software_major_version_number, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_software_minor_version_number, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_software_description, 65, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_io_addresses_used, 8, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_shared_memory_addresses, 10, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_interrupt_numbers_used, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_dma_channels_used, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_flag_bits, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_reserved, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_configuration_description, 80, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x17db_request[] = {
+	{ &hf_ncp_connection_number, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_last_record_seen, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x17db_reply[] = {
+	{ &hf_ncp_next_request_record, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_number_of_records, 1, NULL, LE, 0, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_conn_struct, NO_ENDIANNESS, NO_VAR, 0, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x17dc_request[] = {
+	{ &hf_ncp_last_record_seen, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_dir_handle, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_path, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x17dc_reply[] = {
+	{ &hf_ncp_user_info_use_count, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_open_count, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_open_for_read_count, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_open_for_write_count, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_deny_read_count, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_deny_write_count, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_next_request_record, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_locked, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_number_of_records, 1, NULL, LE, 0, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_conn_file_struct, NO_ENDIANNESS, NO_VAR, 0, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x17dd_request[] = {
+	{ &hf_ncp_target_connection_number, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_last_record_seen, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_volume_number, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_directory_id, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_file_name_14, 14, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x17dd_reply[] = {
+	{ &hf_ncp_next_request_record, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_number_of_locks, 1, NULL, BE, 0, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_reserved, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_lock_struct, NO_ENDIANNESS, NO_VAR, 0, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x17de_request[] = {
+	{ &hf_ncp_target_connection_number, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_dir_handle, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_path, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x17de_reply[] = {
+	{ &hf_ncp_next_request_record, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_number_of_locks, 1, NULL, BE, 0, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_reserved, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_phy_lock_struct, NO_ENDIANNESS, NO_VAR, 0, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x17df_request[] = {
+	{ &hf_ncp_target_connection_number, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_last_record_seen, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x17df_reply[] = {
+	{ &hf_ncp_next_request_record, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_number_of_records, 1, NULL, LE, 0, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_log_lock_struct, NO_ENDIANNESS, NO_VAR, 0, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x17e0_request[] = {
+	{ &hf_ncp_last_record_seen, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_logical_record_name, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x17e0_reply[] = {
+	{ &hf_ncp_user_info_use_count, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_shareable_lock_count, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_next_request_record, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_locked, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_number_of_records, 1, NULL, LE, 0, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_log_rec_struct, NO_ENDIANNESS, NO_VAR, 0, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x17e1_request[] = {
+	{ &hf_ncp_connection_number, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_last_record_seen, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x17e1_reply[] = {
+	{ &hf_ncp_next_request_record, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_number_of_semaphores, 2, NULL, LE, 0, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_sema_struct, NO_ENDIANNESS, NO_VAR, 0, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x17e2_reply[] = {
+	{ &hf_ncp_next_request_record, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_open_count, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_semaphore_value, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_number_of_records, 1, NULL, LE, 0, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_sema_info_struct, NO_ENDIANNESS, NO_VAR, 0, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x17e3_request[] = {
+	{ &hf_ncp_lan_driver_number, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x17e3_reply[] = {
+	{ &hf_ncp_network_address, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_host_address, 6, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_board_installed, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_option_number, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_configuration_text, 160, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x17e5_request[] = {
+	{ &hf_ncp_connection_number, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x17e5_reply[] = {
+	{ &hf_ncp_next_request_record, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_bytes_read, 6, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_bytes_written, 6, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_total_request_packets, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x17e6_reply[] = {
+	{ &hf_ncp_system_interval_marker, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_object_id, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_unused_disk_blocks, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_restrictions_enforced, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x17e7_reply[] = {
+	{ &hf_ncp_system_interval_marker, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_configured_max_routing_buffers, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_actual_max_used_routing_buffers, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_currently_used_routing_buffers, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_total_file_service_packets, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_turbo_used_for_file_service, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_packets_from_invalid_connection, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_bad_logical_connection_count, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_packets_received_during_processing, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_requests_reprocessed, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_packets_with_bad_sequence_number, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_duplicate_replies_sent, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_positive_acknowledges_sent, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_packets_with_bad_request_type, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_attach_during_processing, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_attach_while_processing_attach, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_forged_detached_requests, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_detach_for_bad_connection_number, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_detach_during_processing, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_replies_cancelled, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_packets_discarded_by_hop_count, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_packets_discarded_unknown_net, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_incoming_packet_discarded_no_dgroup, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_outgoing_packet_discarded_no_turbo_buffer, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_ipx_not_my_network, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_netbios_broadcast_was_propogated, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_total_other_packets, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_total_routed_packets, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x17e8_reply[] = {
+	{ &hf_ncp_system_interval_marker, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_processor_type, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_reserved, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_number_of_service_processes, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_server_utilization_percentage, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_configured_max_bindery_objects, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_actual_max_bindery_objects, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_current_used_bindery_objects, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_total_server_memory, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_wasted_server_memory, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_number_of_dynamic_memory_areas, 2, NULL, LE, 0, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_dyn_mem_struct, NO_ENDIANNESS, NO_VAR, 0, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x17e9_reply[] = {
+	{ &hf_ncp_system_interval_marker, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_volume_number, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_logical_drive_number, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_block_size, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_starting_block, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_total_blocks, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_free_blocks, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_total_dir_entries, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_free_directory_entries, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_actual_max_used_directory_entries, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_volume_hashed_flag, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_volume_cached_flag, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_volume_removable_flag, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_volume_mounted_flag, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_volume_name, 16, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x17ea_reply[] = {
+	{ &hf_ncp_next_request_record, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_number_of_attributes, 4, NULL, LE, 0, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_attributes, 4, NULL, LE, NO_VAR, 0, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x17eb_reply[] = {
+	{ &hf_ncp_next_request_record, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_number_of_records, 2, NULL, LE, 0, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_opn_files_struct, NO_ENDIANNESS, NO_VAR, 0, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x17ec_request[] = {
+	{ &hf_ncp_data_stream_number, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_volume_number, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_dir_base, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_last_record_seen, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x17ec_reply[] = {
+	{ &hf_ncp_next_request_record, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_user_info_use_count, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_open_count, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_open_for_read_count, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_open_for_write_count, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_deny_read_count, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_deny_write_count, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_locked, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_fork_count, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_number_of_records, 2, NULL, LE, 0, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_conn_struct, NO_ENDIANNESS, NO_VAR, 0, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x17ed_request[] = {
+	{ &hf_ncp_target_connection_number, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_data_stream_number, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_volume_number, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_dir_base, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_last_record_seen, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x17ed_reply[] = {
+	{ &hf_ncp_next_request_record, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_number_of_locks, 2, NULL, BE, 0, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_lock_struct, NO_ENDIANNESS, NO_VAR, 0, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x17ee_reply[] = {
+	{ &hf_ncp_next_request_record, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_number_of_locks, 2, NULL, BE, 0, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_phy_lock_struct, NO_ENDIANNESS, NO_VAR, 0, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x17ef_request[] = {
+	{ &hf_ncp_target_connection_number, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_last_record_seen, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x17ef_reply[] = {
+	{ &hf_ncp_next_request_record, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_number_of_records, 2, NULL, LE, 0, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_log_lock_struct, NO_ENDIANNESS, NO_VAR, 0, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x17f0_reply[] = {
+	{ &hf_ncp_shareable_lock_count, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_user_info_use_count, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_locked, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_next_request_record, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_number_of_records, 2, NULL, LE, 0, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_log_rec_struct, NO_ENDIANNESS, NO_VAR, 0, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x17f1_reply[] = {
+	{ &hf_ncp_next_request_record, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_number_of_semaphores, 2, NULL, LE, 0, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_sema_struct, NO_ENDIANNESS, NO_VAR, 0, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x17f2_reply[] = {
+	{ &hf_ncp_next_request_record, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_open_count, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_semaphore_value, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_number_of_records, 2, NULL, LE, 0, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_sema_info_struct, NO_ENDIANNESS, NO_VAR, 0, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x17f3_request[] = {
+	{ &hf_ncp_volume_number, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_directory_number, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_name_space, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x17f4_reply[] = {
+	{ &hf_ncp_volume_number, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_directory_number, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x17fd_request[] = {
+	{ &hf_ncp_number_of_stations, 1, NULL, BE, 0, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_station_list, 4, NULL, LE, NO_VAR, 0, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_target_message, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x17fe_request[] = {
+	{ &hf_ncp_connection_number, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x1a_request[] = {
+	{ &hf_ncp_lock_flag, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_file_handle, 6, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_lock_areas_start_offset, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_lock_area_len, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_lock_timeout, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x1b_request[] = {
+	{ &hf_ncp_lock_flag, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_lock_timeout, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x1c_request[] = {
+	{ &hf_ncp_reserved, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_file_handle, 6, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_lock_areas_start_offset, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_lock_area_len, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x1e_request[] = {
+	{ &hf_ncp_reserved, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_file_handle, 6, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_lock_areas_start_offset, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_lock_area_len, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x2000_request[] = {
+	{ &hf_ncp_initial_semaphore_value, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_semaphore_name_len, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x2000_reply[] = {
+	{ &hf_ncp_semaphore_handle, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_semaphore_open_count, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x2001_request[] = {
+	{ &hf_ncp_semaphore_handle, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x2001_reply[] = {
+	{ &hf_ncp_semaphore_value, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_semaphore_open_count, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x2002_request[] = {
+	{ &hf_ncp_semaphore_handle, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_semaphore_time_out, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x21_request[] = {
+	{ &hf_ncp_buffer_size, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x2202_reply[] = {
+	{ &hf_ncp_transaction_number, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x2205_reply[] = {
+	{ &hf_ncp_logical_lock_threshold, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_physical_lock_threshold, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x2209_reply[] = {
+	{ &hf_ncp_control_flags, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x2301_request[] = {
+	{ &hf_ncp_volume_number, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_base_directory_id, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_reserved, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_creator_id, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_reserved4, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_finder_attr, 2, &ncp_finder_attr_bitfield, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_horiz_location, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_vert_location, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_file_dir_win, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_reserved16, 16, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_path, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x2301_reply[] = {
+	{ &hf_ncp_new_directory_id, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x2302_request[] = {
+	{ &hf_ncp_volume_number, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_base_directory_id, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_delete_existing_file_flag, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_creator_id, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_reserved4, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_finder_attr, 2, &ncp_finder_attr_bitfield, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_horiz_location, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_vert_location, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_file_dir_win, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_reserved16, 16, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_path, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x2303_request[] = {
+	{ &hf_ncp_volume_number, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_base_directory_id, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_path, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x2304_reply[] = {
+	{ &hf_ncp_target_entry_id, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x2305_request[] = {
+	{ &hf_ncp_volume_number, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_base_directory_id, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_request_bit_map, 2, &ncp_request_bit_map_bitfield, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_path, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x2305_reply[] = {
+	{ &hf_ncp_afp_entry_id, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_parent_id, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_attr_def_16, 2, &ncp_attr_def_16_bitfield, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_data_fork_len, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_resource_fork_len, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_total_offspring, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_creation_date, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NW_DATE },
+	{ &hf_ncp_last_access_date, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NW_DATE },
+	{ &hf_ncp_modified_date, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NW_DATE },
+	{ &hf_ncp_modified_time, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NW_TIME },
+	{ &hf_ncp_archived_date, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NW_DATE },
+	{ &hf_ncp_archived_time, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NW_TIME },
+	{ &hf_ncp_creator_id, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_reserved4, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_finder_attr, 2, &ncp_finder_attr_bitfield, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_horiz_location, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_vert_location, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_file_dir_win, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_reserved16, 16, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_long_name, 32, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_creator_id, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_short_name, 12, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_access_privileges, 1, &ncp_access_privileges_bitfield, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x2306_request[] = {
+	{ &hf_ncp_file_handle, 6, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x2306_reply[] = {
+	{ &hf_ncp_volume_id, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_target_entry_id, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_fork_indicator, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x2307_request[] = {
+	{ &hf_ncp_volume_number, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_mac_source_base_id, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_mac_destination_base_id, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_path, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_new_file_name_len, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x2308_request[] = {
+	{ &hf_ncp_volume_number, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_mac_base_directory_id, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_fork_indicator, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_access_mode, 1, &ncp_access_mode_bitfield, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_path, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x2308_reply[] = {
+	{ &hf_ncp_afp_entry_id, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_data_fork_len, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_netware_access_handle, 6, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x2309_request[] = {
+	{ &hf_ncp_volume_number, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_mac_base_directory_id, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_request_bit_map, 2, &ncp_request_bit_map_bitfield, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_mac_attr, 2, &ncp_mac_attr_bitfield, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_creation_date, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NW_DATE },
+	{ &hf_ncp_last_access_date, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NW_DATE },
+	{ &hf_ncp_modified_date, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NW_DATE },
+	{ &hf_ncp_modified_time, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NW_TIME },
+	{ &hf_ncp_archived_date, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NW_DATE },
+	{ &hf_ncp_archived_time, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NW_TIME },
+	{ &hf_ncp_creator_id, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_reserved4, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_finder_attr, 2, &ncp_finder_attr_bitfield, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_horiz_location, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_vert_location, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_file_dir_win, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_reserved16, 16, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_path, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x230a_request[] = {
+	{ &hf_ncp_volume_number, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_mac_base_directory_id, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_mac_last_seen_id, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_desired_response_count, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_search_bit_map, 2, &ncp_search_bit_map_bitfield, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_request_bit_map, 2, &ncp_request_bit_map_bitfield, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_path, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x230a_reply[] = {
+	{ &hf_ncp_actual_response_count, 2, NULL, BE, 0, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_afp_10_struct, NO_ENDIANNESS, NO_VAR, 0, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x230b_request[] = {
+	{ &hf_ncp_volume_number, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_mac_base_directory_id, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_path, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x230c_reply[] = {
+	{ &hf_ncp_afp_entry_id, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x230d_request[] = {
+	{ &hf_ncp_volume_number, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_base_directory_id, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_reserved, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_creator_id, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_reserved4, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_finder_attr, 2, &ncp_finder_attr_bitfield, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_horiz_location, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_vert_location, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_file_dir_win, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_reserved16, 16, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_pro_dos_info, 6, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_path, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x230e_request[] = {
+	{ &hf_ncp_volume_number, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_base_directory_id, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_delete_existing_file_flag, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_creator_id, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_reserved4, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_finder_attr, 2, &ncp_finder_attr_bitfield, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_horiz_location, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_vert_location, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_file_dir_win, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_reserved16, 16, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_pro_dos_info, 6, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_path, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x230f_reply[] = {
+	{ &hf_ncp_afp_entry_id, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_parent_id, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_attr_def_16, 2, &ncp_attr_def_16_bitfield, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_data_fork_len, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_resource_fork_len, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_total_offspring, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_creation_date, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NW_DATE },
+	{ &hf_ncp_last_access_date, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NW_DATE },
+	{ &hf_ncp_modified_date, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NW_DATE },
+	{ &hf_ncp_modified_time, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NW_TIME },
+	{ &hf_ncp_archived_date, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NW_DATE },
+	{ &hf_ncp_archived_time, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NW_TIME },
+	{ &hf_ncp_creator_id, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_reserved4, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_finder_attr, 2, &ncp_finder_attr_bitfield, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_horiz_location, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_vert_location, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_file_dir_win, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_reserved16, 16, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_long_name, 32, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_creator_id, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_short_name, 12, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_access_privileges, 1, &ncp_access_privileges_bitfield, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_reserved, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_pro_dos_info, 6, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x2310_request[] = {
+	{ &hf_ncp_volume_number, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_mac_base_directory_id, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_request_bit_map, 2, &ncp_request_bit_map_bitfield, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_attr_def_16, 2, &ncp_attr_def_16_bitfield, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_creation_date, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NW_DATE },
+	{ &hf_ncp_last_access_date, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NW_DATE },
+	{ &hf_ncp_modified_date, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NW_DATE },
+	{ &hf_ncp_modified_time, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NW_TIME },
+	{ &hf_ncp_archived_date, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NW_DATE },
+	{ &hf_ncp_archived_time, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NW_TIME },
+	{ &hf_ncp_creator_id, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_reserved4, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_finder_attr, 2, &ncp_finder_attr_bitfield, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_horiz_location, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_vert_location, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_file_dir_win, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_reserved16, 16, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_pro_dos_info, 6, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_path, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x2311_reply[] = {
+	{ &hf_ncp_actual_response_count, 2, NULL, LE, 0, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_afp_20_struct, NO_ENDIANNESS, NO_VAR, 0, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x2312_request[] = {
+	{ &hf_ncp_volume_number, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_afp_entry_id, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x2313_request[] = {
+	{ &hf_ncp_volume_number, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_directory_number, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x2313_reply[] = {
+	{ &hf_ncp_creator_id, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_reserved4, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_finder_attr, 2, &ncp_finder_attr_bitfield, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_horiz_location, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_vert_location, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_file_dir_win, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_reserved16, 16, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_pro_dos_info, 6, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_resource_fork_size, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_file_name, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x2400_request[] = {
+	{ &hf_ncp_ncp_extension_number, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x2400_reply[] = {
+	{ &hf_ncp_ncp_extension_number, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_ncp_extension_major_version, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_ncp_extension_minor_version, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_ncp_extension_revision_number, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_ncp_extension_name, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x2401_reply[] = {
+	{ &hf_ncp_ncp_data_size, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x2402_request[] = {
+	{ &hf_ncp_ncp_extension_name, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x2403_reply[] = {
+	{ &hf_ncp_number_of_ncp_extensions, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x2404_request[] = {
+	{ &hf_ncp_starting_number, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x2404_reply[] = {
+	{ &hf_ncp_returned_list_count, 4, NULL, LE, 0, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_next_starting_number, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_ncp_extension_numbers, 4, NULL, LE, NO_VAR, 0, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x2406_reply[] = {
+	{ &hf_ncp_ncp_data_size, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x3b_request[] = {
+	{ &hf_ncp_reserved, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_file_handle, 6, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x3e_reply[] = {
+	{ &hf_ncp_volume_number, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_directory_id, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_sequence_number, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_access_rights_mask, 1, &ncp_access_rights_mask_bitfield, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x3f_request[] = {
+	{ &hf_ncp_volume_number, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_directory_id, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_sequence_number, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_sattr, 1, &ncp_sattr_bitfield, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_path, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x3f_reply[] = {
+	{ PTVC_STRUCT, NO_LENGTH, &struct_directory_instance, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 47, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_file_instance, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 19, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x40_request[] = {
+	{ &hf_ncp_sequence_number, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_dir_handle, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_sattr, 1, &ncp_sattr_bitfield, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_file_name, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x40_reply[] = {
+	{ &hf_ncp_sequence_number, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_reserved2, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_file_name_14, 14, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_attr_def, 1, &ncp_attr_def_bitfield, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_file_execute_type, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_file_size, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_creation_date, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NW_DATE },
+	{ &hf_ncp_last_access_date, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NW_DATE },
+	{ &hf_ncp_modified_date, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NW_DATE },
+	{ &hf_ncp_modified_time, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NW_TIME },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x41_request[] = {
+	{ &hf_ncp_dir_handle, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_sattr, 1, &ncp_sattr_bitfield, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_file_name, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x41_reply[] = {
+	{ &hf_ncp_file_handle, 6, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_reserved2, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_file_name_14, 14, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_attr_def, 1, &ncp_attr_def_bitfield, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_file_execute_type, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_file_size, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_creation_date, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NW_DATE },
+	{ &hf_ncp_last_access_date, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NW_DATE },
+	{ &hf_ncp_modified_date, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NW_DATE },
+	{ &hf_ncp_modified_time, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NW_TIME },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x43_request[] = {
+	{ &hf_ncp_dir_handle, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_attr_def, 1, &ncp_attr_def_bitfield, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_file_name, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x45_request[] = {
+	{ &hf_ncp_dir_handle, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_sattr, 1, &ncp_sattr_bitfield, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_file_name, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_target_dir_handle, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_new_file_name_len, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x46_request[] = {
+	{ &hf_ncp_attr_def, 1, &ncp_attr_def_bitfield, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_dir_handle, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_sattr, 1, &ncp_sattr_bitfield, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_file_name, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x47_reply[] = {
+	{ &hf_ncp_file_size, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x48_request[] = {
+	{ &hf_ncp_reserved, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_file_handle, 6, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_file_offset, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_max_bytes, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x48_reply[] = {
+	{ &hf_ncp_num_bytes, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x4a_request[] = {
+	{ &hf_ncp_reserved, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_file_handle, 6, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_target_file_handle, 6, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_file_offset, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_target_file_offset, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_bytes_to_copy, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x4a_reply[] = {
+	{ &hf_ncp_bytes_actually_transferred, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x4b_request[] = {
+	{ &hf_ncp_reserved, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_file_handle, 6, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_file_time, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NW_TIME },
+	{ &hf_ncp_file_date, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NW_DATE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x4c_request[] = {
+	{ &hf_ncp_dir_handle, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_sattr, 1, &ncp_sattr_bitfield, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_access_rights_mask, 1, &ncp_access_rights_mask_bitfield, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_file_name, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x4f_request[] = {
+	{ &hf_ncp_attr_def, 1, &ncp_attr_def_bitfield, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_dir_handle, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_access_rights_mask, 1, &ncp_access_rights_mask_bitfield, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_file_name, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x54_request[] = {
+	{ &hf_ncp_dir_handle, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_attr_def, 1, &ncp_attr_def_bitfield, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_access_rights_mask, 1, &ncp_access_rights_mask_bitfield, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_action_flag, 1, &ncp_action_flag_bitfield, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_file_name, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x55_request[] = {
+	{ &hf_ncp_file_handle, 6, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_file_offset, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x55_reply[] = {
+	{ &hf_ncp_allocation_block_size, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_reserved4, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_bit_map, 512, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x5601_request[] = {
+	{ &hf_ncp_reserved2, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_ea_handle, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x5602_request[] = {
+	{ &hf_ncp_ea_flags, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_ea_handle_or_netware_handle_or_volume, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_reserved_or_directory_number, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_ttl_write_data_size, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_file_offset, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_ea_access_flag, 4, &ncp_ea_access_flag_bitfield, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_ea_value_length, 2, NULL, LE, 0, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_ea_key, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_ea_value_rep, 1, NULL, BE, NO_VAR, 0, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x5602_reply[] = {
+	{ &hf_ncp_ea_error_codes, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_ea_bytes_written, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_new_ea_handle, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x5603_request[] = {
+	{ &hf_ncp_ea_flags, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_ea_handle_or_netware_handle_or_volume, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_reserved_or_directory_number, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_file_offset, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_inspect_size, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_ea_key, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x5603_reply[] = {
+	{ &hf_ncp_ea_error_codes, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_ttl_values_length, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_new_ea_handle, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_ea_access_flag, 4, &ncp_ea_access_flag_bitfield, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_ea_value, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x5604_request[] = {
+	{ &hf_ncp_ea_flags, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_ea_handle_or_netware_handle_or_volume, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_reserved_or_directory_number, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_inspect_size, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_sequence_number, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_ea_key, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x5604_reply[] = {
+	{ &hf_ncp_ea_error_codes, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_ttl_eas, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_ttl_eas_data_size, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_ttl_eas_key_size, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_new_ea_handle, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x5605_request[] = {
+	{ &hf_ncp_ea_flags, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_dst_ea_flags, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_ea_handle_or_netware_handle_or_volume, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_reserved_or_directory_number, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_ea_handle_or_netware_handle_or_volume, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_reserved_or_directory_number, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x5605_reply[] = {
+	{ &hf_ncp_ea_duplicate_count, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_ea_data_size_duplicated, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_ea_key_size_duplicated, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x5701_request[] = {
+	{ &hf_ncp_name_space, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_open_create_mode, 1, &ncp_open_create_mode_bitfield, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_search_att_low, 2, &ncp_search_att_low_bitfield, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_ret_info_mask, 2, &ncp_ret_info_mask_bitfield, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_ext_info, 2, &ncp_ext_info_bitfield, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_attr_def_32, 4, &ncp_attr_def_32_bitfield, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_desired_access_rights, 2, &ncp_desired_access_rights_bitfield, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_volume_number, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_dir_base, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_handle_flag, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_path_count, 1, NULL, BE, 0, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_path, 1, NULL, BE, NO_VAR, 0, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x5701_reply[] = {
+	{ &hf_ncp_file_handle, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_open_create_action, 1, &ncp_open_create_action_bitfield, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_reserved, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_ds_space_alloc_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 54, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_pad_ds_space_alloc, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 40, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_attributes_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 46, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_pad_attributes, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 32, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_data_stream_size_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 94, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_pad_data_stream_size, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 92, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_total_stream_size_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 73, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_pad_total_stream_size, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 88, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_creation_info_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 36, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_pad_creation_info, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 48, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_modify_info_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 17, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_pad_modify_info, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 57, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_archive_info_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 67, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_pad_archive_info, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 84, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_rights_info_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 76, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_pad_rights_info, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 109, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_dir_entry_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 93, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_pad_dir_entry, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 77, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_ea_info_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 82, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_pad_ea_info, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 27, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_ns_info_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 44, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_pad_ns_info, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 33, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_ds_space_alloc_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 105, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_attributes_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 12, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_data_stream_size_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 34, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_total_stream_size_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 80, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_ea_info_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 97, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_modify_info_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 0, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_creation_info_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 2, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_archive_info_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 8, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_dir_entry_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 102, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_rights_info_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 37, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_ns_info_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 38, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_ref_id_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 110, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_ns_attrib_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 108, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_d_stream_actual, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 90, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_d_string_logical, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 111, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_last_update_in_seconds_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 56, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_dos_name_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 21, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_flush_time_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 91, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_parent_base_id_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 60, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_mac_finder_info_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 15, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_sibling_count_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 72, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_eff_rights_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 95, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_mac_time_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 50, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_last_access_time_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 69, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_file_name_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 30, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x5702_request[] = {
+	{ &hf_ncp_name_space, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_reserved, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_volume_number, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_dir_base, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_handle_flag, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_path_count, 1, NULL, BE, 0, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_path, 1, NULL, BE, NO_VAR, 0, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x5702_reply[] = {
+	{ &hf_ncp_volume_number, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_directory_number, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_directory_entry_number, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x5703_request[] = {
+	{ &hf_ncp_name_space, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_data_stream, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_search_att_low, 2, &ncp_search_att_low_bitfield, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_ret_info_mask, 2, &ncp_ret_info_mask_bitfield, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_ext_info, 2, &ncp_ext_info_bitfield, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_search_sequence, 9, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_search_pattern, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x5703_reply[] = {
+	{ &hf_ncp_search_sequence, 9, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_reserved, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_ds_space_alloc_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 54, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_pad_ds_space_alloc, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 40, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_attributes_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 46, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_pad_attributes, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 32, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_data_stream_size_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 94, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_pad_data_stream_size, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 92, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_total_stream_size_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 73, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_pad_total_stream_size, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 88, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_creation_info_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 36, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_pad_creation_info, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 48, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_modify_info_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 17, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_pad_modify_info, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 57, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_archive_info_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 67, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_pad_archive_info, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 84, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_rights_info_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 76, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_pad_rights_info, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 109, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_dir_entry_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 93, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_pad_dir_entry, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 77, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_ea_info_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 82, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_pad_ea_info, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 27, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_ns_info_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 44, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_pad_ns_info, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 33, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_ds_space_alloc_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 105, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_attributes_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 12, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_data_stream_size_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 34, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_total_stream_size_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 80, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_ea_info_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 97, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_modify_info_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 0, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_creation_info_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 2, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_archive_info_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 8, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_dir_entry_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 102, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_rights_info_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 37, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_ns_info_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 38, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_ref_id_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 110, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_ns_attrib_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 108, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_d_stream_actual, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 90, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_d_string_logical, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 111, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_last_update_in_seconds_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 56, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_dos_name_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 21, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_flush_time_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 91, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_parent_base_id_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 60, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_mac_finder_info_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 15, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_sibling_count_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 72, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_eff_rights_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 95, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_mac_time_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 50, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_last_access_time_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 69, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_file_name_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 30, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x5704_request[] = {
+	{ &hf_ncp_name_space, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_rename_flag, 1, &ncp_rename_flag_bitfield, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_search_att_low, 2, &ncp_search_att_low_bitfield, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_volume_number, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_dir_base, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_handle_flag, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_path_count, 1, NULL, BE, 0, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_volume_number, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_dir_base, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_handle_flag, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_path_count, 1, NULL, BE, 1, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_path, 1, NULL, BE, NO_VAR, 0, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_path, 1, NULL, BE, NO_VAR, 1, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x5705_request[] = {
+	{ &hf_ncp_name_space, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_reserved, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_search_att_low, 2, &ncp_search_att_low_bitfield, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_sequence_number, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_volume_number, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_dir_base, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_handle_flag, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_path_count, 1, NULL, BE, 0, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_path, 1, NULL, BE, NO_VAR, 0, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x5705_reply[] = {
+	{ &hf_ncp_sequence_number, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_object_id_count, 2, NULL, LE, 0, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_trustee_struct, NO_ENDIANNESS, NO_VAR, 0, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x5706_request[] = {
+	{ &hf_ncp_src_name_space, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_dest_name_space, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_search_att_low, 2, &ncp_search_att_low_bitfield, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_ret_info_mask, 2, &ncp_ret_info_mask_bitfield, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_ext_info, 2, &ncp_ext_info_bitfield, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_volume_number, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_dir_base, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_handle_flag, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_path_count, 1, NULL, BE, 0, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_path, 1, NULL, BE, NO_VAR, 0, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x5706_reply[] = {
+	{ PTVC_STRUCT, NO_LENGTH, &struct_ds_space_alloc_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 43, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_pad_ds_space_alloc, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 29, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_attributes_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 64, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_pad_attributes, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 49, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_data_stream_size_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 85, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_pad_data_stream_size, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 68, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_total_stream_size_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 96, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_pad_total_stream_size, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 106, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_creation_info_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 51, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_pad_creation_info, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 75, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_modify_info_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 41, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_pad_modify_info, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 59, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_archive_info_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 3, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_pad_archive_info, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 18, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_rights_info_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 42, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_pad_rights_info, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 14, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_dir_entry_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 99, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_pad_dir_entry, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 87, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_ea_info_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 11, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_pad_ea_info, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 25, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_ns_info_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 45, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_pad_ns_info, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 28, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_ds_space_alloc_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 105, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_attributes_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 12, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_data_stream_size_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 34, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_total_stream_size_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 80, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_creation_info_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 2, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_modify_info_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 0, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_archive_info_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 8, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_rights_info_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 37, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_dir_entry_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 102, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_ea_info_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 97, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_ns_info_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 38, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_ref_id_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 110, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_ns_attrib_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 108, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_d_stream_actual, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 90, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_d_string_logical, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 111, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_last_update_in_seconds_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 56, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_dos_name_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 21, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_flush_time_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 91, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_parent_base_id_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 60, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_mac_finder_info_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 15, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_sibling_count_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 72, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_eff_rights_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 95, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_mac_time_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 50, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_last_access_time_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 69, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_file_name_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 30, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x5707_request[] = {
+	{ &hf_ncp_name_space, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_reserved, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_search_att_low, 2, &ncp_search_att_low_bitfield, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_modify_dos_info_mask, 2, &ncp_modify_dos_info_mask_bitfield, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_reserved2, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_attr_def_16, 2, &ncp_attr_def_16_bitfield, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_file_mode, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_file_ext_attr, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_creation_date, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NW_DATE },
+	{ &hf_ncp_creation_time, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NW_TIME },
+	{ &hf_ncp_creator_id, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_modified_date, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NW_DATE },
+	{ &hf_ncp_modified_time, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NW_TIME },
+	{ &hf_ncp_modifier_id, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_archived_date, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NW_DATE },
+	{ &hf_ncp_archived_time, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NW_TIME },
+	{ &hf_ncp_archiver_id, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_last_access_date, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NW_DATE },
+	{ &hf_ncp_inherited_rights_mask, 2, &ncp_inherited_rights_mask_bitfield, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_inheritance_revoke_mask, 2, &ncp_inheritance_revoke_mask_bitfield, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_maxspace, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_volume_number, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_dir_base, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_handle_flag, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_path_count, 1, NULL, BE, 0, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_path, 1, NULL, BE, NO_VAR, 0, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x5708_request[] = {
+	{ &hf_ncp_name_space, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_reserved, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_search_att_low, 2, &ncp_search_att_low_bitfield, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_volume_number, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_dir_base, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_handle_flag, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_path_count, 1, NULL, BE, 0, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_path, 1, NULL, BE, NO_VAR, 0, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x5709_request[] = {
+	{ &hf_ncp_name_space, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_data_stream, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_dest_dir_handle, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_reserved, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_volume_number, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_dir_base, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_handle_flag, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_path_count, 1, NULL, BE, 0, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_path, 1, NULL, BE, NO_VAR, 0, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x570a_request[] = {
+	{ &hf_ncp_name_space, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_reserved, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_search_att_low, 2, &ncp_search_att_low_bitfield, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_access_rights_mask_word, 2, &ncp_access_rights_mask_word_bitfield, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_object_id_count, 2, NULL, LE, 0, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_volume_number, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_dir_base, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_handle_flag, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_path_count, 1, NULL, BE, 1, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_path, 1, NULL, BE, NO_VAR, 1, NO_REQ_COND, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_trustee_struct, NO_ENDIANNESS, NO_VAR, 0, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x570b_request[] = {
+	{ &hf_ncp_name_space, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_reserved, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_object_id_count, 2, NULL, LE, 0, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_volume_number, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_dir_base, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_handle_flag, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_path_count, 1, NULL, BE, 1, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_path, 1, NULL, BE, NO_VAR, 1, NO_REQ_COND, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_trustee_struct, NO_ENDIANNESS, NO_VAR, 0, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x570c_request[] = {
+	{ &hf_ncp_name_space, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_reserved, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_allocate_mode, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_volume_number, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_dir_base, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_handle_flag, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_path_count, 1, NULL, BE, 0, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_path, 1, NULL, BE, NO_VAR, 0, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x570c_reply[] = {
+	{ &hf_ncp_dir_handle, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_volume_number, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_reserved4, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x5710_request[] = {
+	{ &hf_ncp_name_space, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_data_stream, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_ret_info_mask, 2, &ncp_ret_info_mask_bitfield, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_ext_info, 2, &ncp_ext_info_bitfield, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_sequence_number, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_volume_number, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_dir_base, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_handle_flag, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_path_count, 1, NULL, BE, 0, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_path, 1, NULL, BE, NO_VAR, 0, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x5710_reply[] = {
+	{ &hf_ncp_sequence_number, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_deleted_time, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NW_TIME },
+	{ &hf_ncp_deleted_date, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NW_DATE },
+	{ &hf_ncp_delete_id, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_volume_id, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_dir_base, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_ds_space_alloc_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 43, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_pad_ds_space_alloc, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 29, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_attributes_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 64, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_pad_attributes, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 49, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_data_stream_size_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 85, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_pad_data_stream_size, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 68, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_total_stream_size_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 96, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_pad_total_stream_size, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 106, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_creation_info_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 51, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_pad_creation_info, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 75, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_modify_info_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 41, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_pad_modify_info, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 59, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_archive_info_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 3, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_pad_archive_info, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 18, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_rights_info_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 42, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_pad_rights_info, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 14, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_dir_entry_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 99, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_pad_dir_entry, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 87, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_ea_info_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 11, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_pad_ea_info, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 25, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_ns_info_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 45, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_pad_ns_info, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 28, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_file_name_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 20, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_ds_space_alloc_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 105, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_attributes_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 12, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_data_stream_size_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 34, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_total_stream_size_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 80, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_creation_info_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 2, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_modify_info_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 0, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_archive_info_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 8, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_rights_info_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 37, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_dir_entry_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 102, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_ea_info_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 97, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_ns_info_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 38, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_file_name_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 5, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x5711_request[] = {
+	{ &hf_ncp_name_space, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_reserved, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_sequence_number, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_volume_id, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_dir_base, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_file_name, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x5712_request[] = {
+	{ &hf_ncp_name_space, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_reserved, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_sequence_number, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_volume_id, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_dir_base, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x5713_request[] = {
+	{ &hf_ncp_src_name_space, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_dest_name_space, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_reserved, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_volume_number, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_dir_base, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_ns_info_mask, 2, &ncp_ns_info_mask_bitfield, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x5713_reply[] = {
+	{ PTVC_STRUCT, NO_LENGTH, &struct_file_name_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 9, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_file_attributes_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 100, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_creation_date_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 74, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_creation_time_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 89, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_owner_id_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 70, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_archive_date_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 83, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_archive_time_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 39, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_archive_id_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 24, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_update_date_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 26, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_update_time_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 104, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_update_id_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 35, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_last_access_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 103, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_rights_info_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 4, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x5714_request[] = {
+	{ &hf_ncp_name_space, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_data_stream, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_search_att_low, 2, &ncp_search_att_low_bitfield, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_ret_info_mask, 2, &ncp_ret_info_mask_bitfield, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_ext_info, 2, &ncp_ext_info_bitfield, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_return_info_count, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_search_sequence, 9, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_search_pattern, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x5714_reply[] = {
+	{ &hf_ncp_search_sequence, 9, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_more_flag, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_info_count, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_ds_space_alloc_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 43, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_pad_ds_space_alloc, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 29, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_attributes_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 64, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_pad_attributes, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 49, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_data_stream_size_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 85, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_pad_data_stream_size, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 68, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_total_stream_size_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 96, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_pad_total_stream_size, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 106, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_creation_info_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 51, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_pad_creation_info, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 75, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_modify_info_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 41, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_pad_modify_info, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 59, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_archive_info_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 3, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_pad_archive_info, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 18, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_rights_info_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 42, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_pad_rights_info, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 14, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_dir_entry_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 99, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_pad_dir_entry, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 87, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_ea_info_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 11, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_pad_ea_info, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 25, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_ns_info_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 45, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_pad_ns_info, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 28, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_ds_space_alloc_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 105, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_attributes_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 12, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_data_stream_size_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 34, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_total_stream_size_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 80, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_ea_info_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 97, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_archive_info_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 8, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_modify_info_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 0, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_creation_info_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 2, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_rights_info_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 37, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_dir_entry_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 102, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_ns_info_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 38, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_ref_id_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 110, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_ns_attrib_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 108, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_d_stream_actual, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 90, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_d_string_logical, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 111, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_last_update_in_seconds_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 56, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_dos_name_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 21, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_flush_time_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 91, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_parent_base_id_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 60, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_mac_finder_info_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 15, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_sibling_count_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 72, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_eff_rights_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 95, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_mac_time_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 50, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_last_access_time_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 69, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_file_name_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 30, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x5715_request[] = {
+	{ &hf_ncp_name_space, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_dir_handle, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x5716_request[] = {
+	{ &hf_ncp_src_name_space, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_dest_name_space, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_dst_ns_indicator, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_volume_number, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_dir_base, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_handle_flag, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_path_count, 1, NULL, BE, 0, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_path, 1, NULL, BE, NO_VAR, 0, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x5716_reply[] = {
+	{ &hf_ncp_dir_base, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_dos_directory_base, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_volume_number, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x5717_request[] = {
+	{ &hf_ncp_name_space, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_volume_number, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x5717_reply[] = {
+	{ &hf_ncp_fixed_bit_mask, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_variable_bit_mask, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_huge_bit_mask, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_fixed_bits_defined, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_variable_bits_defined, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_huge_bits_defined, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_fields_len_table, 32, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x5718_request[] = {
+	{ &hf_ncp_reserved, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_volume_number, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x5718_reply[] = {
+	{ &hf_ncp_number_of_ns_loaded, 2, NULL, LE, 0, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_name_space, 1, NULL, LE, NO_VAR, 0, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x5719_request[] = {
+	{ &hf_ncp_src_name_space, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_dest_name_space, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_volume_number, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_dir_base, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_ns_info_mask, 2, &ncp_ns_info_mask_bitfield, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_reserved2, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_ns_specific_info, 512, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x571a_request[] = {
+	{ &hf_ncp_name_space, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_volume_number, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_dir_base, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_huge_bit_mask, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_huge_state_info, 16, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x571a_reply[] = {
+	{ &hf_ncp_next_huge_state_info, 16, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_huge_data, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x571b_request[] = {
+	{ &hf_ncp_name_space, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_volume_number, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_dir_base, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_huge_bit_mask, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_huge_state_info, 16, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_huge_data, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x571b_reply[] = {
+	{ &hf_ncp_next_huge_state_info, 16, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_huge_data_used, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x571c_request[] = {
+	{ &hf_ncp_src_name_space, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_dest_name_space, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_path_cookie_flags, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_cookie_1, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_cookie_2, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_volume_number, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_dir_base, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_handle_flag, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_path_count, 1, NULL, BE, 0, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_path, 1, NULL, BE, NO_VAR, 0, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x571c_reply[] = {
+	{ &hf_ncp_path_cookie_flags, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_cookie_1, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_cookie_2, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_path_component_size, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_path_component_count, 2, NULL, LE, 0, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_path, 1, NULL, BE, NO_VAR, 0, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x571d_request[] = {
+	{ &hf_ncp_name_space, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_dest_name_space, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_search_att_low, 2, &ncp_search_att_low_bitfield, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_ret_info_mask, 2, &ncp_ret_info_mask_bitfield, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_ext_info, 2, &ncp_ext_info_bitfield, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_volume_number, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_dir_base, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_handle_flag, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_path_count, 1, NULL, BE, 0, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_path, 1, NULL, BE, NO_VAR, 0, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x571d_reply[] = {
+	{ &hf_ncp_effective_rights, 2, &ncp_effective_rights_bitfield, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_ds_space_alloc_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 43, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_pad_ds_space_alloc, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 29, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_attributes_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 64, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_pad_attributes, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 49, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_data_stream_size_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 85, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_pad_data_stream_size, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 68, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_total_stream_size_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 96, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_pad_total_stream_size, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 106, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_creation_info_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 51, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_pad_creation_info, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 75, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_modify_info_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 41, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_pad_modify_info, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 59, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_archive_info_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 3, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_pad_archive_info, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 18, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_rights_info_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 42, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_pad_rights_info, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 14, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_dir_entry_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 99, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_pad_dir_entry, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 87, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_ea_info_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 11, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_pad_ea_info, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 25, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_ns_info_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 45, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_pad_ns_info, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 28, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_file_name_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 20, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_ds_space_alloc_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 105, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_attributes_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 12, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_data_stream_size_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 34, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_total_stream_size_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 80, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_creation_info_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 2, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_modify_info_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 0, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_archive_info_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 8, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_rights_info_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 37, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_dir_entry_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 102, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_ea_info_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 97, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_ns_info_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 38, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_file_name_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 5, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x571e_request[] = {
+	{ &hf_ncp_name_space, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_data_stream, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_open_create_mode, 1, &ncp_open_create_mode_bitfield, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_reserved, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_search_att_low, 2, &ncp_search_att_low_bitfield, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_reserved2, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_ret_info_mask, 2, &ncp_ret_info_mask_bitfield, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_ext_info, 2, &ncp_ext_info_bitfield, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_attr_def_32, 4, &ncp_attr_def_32_bitfield, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_desired_access_rights, 2, &ncp_desired_access_rights_bitfield, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_volume_number, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_dir_base, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_handle_flag, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_path_count, 1, NULL, BE, 0, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_path, 1, NULL, BE, NO_VAR, 0, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x571e_reply[] = {
+	{ &hf_ncp_file_handle, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_open_create_action, 1, &ncp_open_create_action_bitfield, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_reserved, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_ds_space_alloc_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 43, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_pad_ds_space_alloc, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 29, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_attributes_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 64, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_pad_attributes, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 49, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_data_stream_size_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 85, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_pad_data_stream_size, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 68, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_total_stream_size_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 96, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_pad_total_stream_size, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 106, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_creation_info_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 51, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_pad_creation_info, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 75, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_modify_info_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 41, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_pad_modify_info, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 59, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_archive_info_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 3, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_pad_archive_info, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 18, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_rights_info_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 42, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_pad_rights_info, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 14, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_dir_entry_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 99, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_pad_dir_entry, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 87, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_ea_info_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 11, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_pad_ea_info, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 25, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_ns_info_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 45, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_pad_ns_info, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 28, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_file_name_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 20, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_ds_space_alloc_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 105, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_attributes_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 12, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_data_stream_size_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 34, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_total_stream_size_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 80, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_creation_info_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 2, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_modify_info_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 0, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_archive_info_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 8, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_rights_info_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 37, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_dir_entry_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 102, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_ea_info_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 97, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_ns_info_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 38, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_file_name_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 5, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x571f_request[] = {
+	{ &hf_ncp_file_handle, 6, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_handle_info_level, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x571f_reply[] = {
+	{ &hf_ncp_volume_number_long, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_dir_base, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_handle_info_level_0, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 65, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_handle_info_level_1, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 66, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_handle_info_level_2, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 63, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_handle_info_level_3, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 6, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_handle_info_level_4, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 61, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_handle_info_level_5, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 62, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x5720_reply[] = {
+	{ &hf_ncp_file_handle, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_open_create_action, 1, &ncp_open_create_action_bitfield, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_o_c_ret_flags, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_ds_space_alloc_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 54, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_pad_ds_space_alloc, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 40, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_attributes_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 46, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_pad_attributes, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 32, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_data_stream_size_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 94, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_pad_data_stream_size, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 92, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_total_stream_size_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 73, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_pad_total_stream_size, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 88, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_creation_info_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 36, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_pad_creation_info, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 48, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_modify_info_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 17, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_pad_modify_info, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 57, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_archive_info_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 67, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_pad_archive_info, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 84, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_rights_info_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 76, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_pad_rights_info, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 109, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_dir_entry_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 93, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_pad_dir_entry, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 77, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_ea_info_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 82, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_pad_ea_info, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 27, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_ns_info_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 44, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_pad_ns_info, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 33, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_ds_space_alloc_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 105, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_attributes_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 12, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_data_stream_size_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 34, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_total_stream_size_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 80, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_ea_info_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 97, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_modify_info_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 0, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_creation_info_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 2, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_archive_info_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 8, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_dir_entry_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 102, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_rights_info_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 37, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_ns_info_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 38, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_ref_id_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 110, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_ns_attrib_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 108, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_d_stream_actual, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 90, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_d_string_logical, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 111, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_last_update_in_seconds_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 56, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_dos_name_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 21, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_flush_time_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 91, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_parent_base_id_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 60, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_mac_finder_info_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 15, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_sibling_count_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 72, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_eff_rights_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 95, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_mac_time_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 50, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_last_access_time_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 69, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_file_name_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 30, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x5721_reply[] = {
+	{ &hf_ncp_file_handle, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_open_create_action, 1, &ncp_open_create_action_bitfield, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_o_c_ret_flags, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_data_stream_space_alloc, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_attributes_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_data_stream_size, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_ttl_ds_disk_space_alloc, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_number_of_data_streams, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_creation_time, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NW_TIME },
+	{ &hf_ncp_creation_date, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NW_DATE },
+	{ &hf_ncp_creator_id, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_modified_time, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NW_TIME },
+	{ &hf_ncp_modified_date, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NW_DATE },
+	{ &hf_ncp_modifier_id, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_last_access_date, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NW_DATE },
+	{ &hf_ncp_archived_time, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NW_TIME },
+	{ &hf_ncp_archived_date, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NW_DATE },
+	{ &hf_ncp_archiver_id, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_inherited_rights_mask, 2, &ncp_inherited_rights_mask_bitfield, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_directory_entry_number, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_dos_directory_entry_number, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_volume_number_long, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_ea_data_size, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_ea_count, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_ea_key_size, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_creator_name_space_number, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_reserved3, 3, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_file_name, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x5722_request[] = {
+	{ &hf_ncp_cc_file_handle, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_cc_function, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x5723_request[] = {
+	{ &hf_ncp_name_space, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_flags, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_search_att_low, 2, &ncp_search_att_low_bitfield, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_ret_info_mask, 2, &ncp_ret_info_mask_bitfield, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_ext_info, 2, &ncp_ext_info_bitfield, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_attr_def_32, 4, &ncp_attr_def_32_bitfield, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_volume_number, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_dir_base, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_handle_flag, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_path_count, 1, NULL, BE, 0, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_path, 1, NULL, BE, NO_VAR, 0, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x5723_reply[] = {
+	{ &hf_ncp_items_checked, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_items_changed, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_attribute_valid_flag, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_attr_def_32, 4, &ncp_attr_def_32_bitfield, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x5724_request[] = {
+	{ &hf_ncp_name_space, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_reserved, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_reserved2, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_log_file_flag_low, 1, &ncp_log_file_flag_low_bitfield, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_log_file_flag_high, 1, &ncp_log_file_flag_high_bitfield, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_reserved2, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_wait_time, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_volume_number, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_dir_base, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_handle_flag, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_path_count, 1, NULL, BE, 0, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_path, 1, NULL, BE, NO_VAR, 0, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x5725_request[] = {
+	{ &hf_ncp_name_space, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_reserved, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_reserved2, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_volume_number, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_dir_base, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_handle_flag, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_path_count, 1, NULL, BE, 0, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_path, 1, NULL, BE, NO_VAR, 0, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x5727_request[] = {
+	{ &hf_ncp_name_space, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_reserved2, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_volume_number, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_dir_base, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_handle_flag, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_path_count, 1, NULL, BE, 0, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_path, 1, NULL, BE, NO_VAR, 0, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x5727_reply[] = {
+	{ &hf_ncp_number_of_entries, 1, NULL, BE, 0, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_space_struct, NO_ENDIANNESS, NO_VAR, 0, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x5728_reply[] = {
+	{ &hf_ncp_search_sequence, 9, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_more_flag, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_info_count, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_ds_space_alloc_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 43, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_pad_ds_space_alloc, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 29, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_attributes_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 64, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_pad_attributes, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 49, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_data_stream_size_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 85, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_pad_data_stream_size, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 68, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_total_stream_size_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 96, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_pad_total_stream_size, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 106, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_creation_info_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 51, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_pad_creation_info, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 75, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_modify_info_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 41, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_pad_modify_info, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 59, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_archive_info_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 3, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_pad_archive_info, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 18, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_rights_info_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 42, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_pad_rights_info, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 14, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_dir_entry_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 99, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_pad_dir_entry, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 87, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_ea_info_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 11, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_pad_ea_info, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 25, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_ns_info_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 45, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_pad_ns_info, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 28, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_file_name_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 20, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_ds_space_alloc_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 105, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_attributes_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 12, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_data_stream_size_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 34, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_total_stream_size_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 80, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_creation_info_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 2, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_modify_info_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 0, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_archive_info_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 8, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_rights_info_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 37, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_dir_entry_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 102, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_ea_info_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 97, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_ns_info_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 38, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_file_name_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 5, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x5729_request[] = {
+	{ &hf_ncp_name_space, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_reserved, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_ctrl_flags, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_sequence_number, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_volume_number, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_dir_base, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_handle_flag, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_path_count, 1, NULL, BE, 0, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_path, 1, NULL, BE, NO_VAR, 0, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x5729_reply[] = {
+	{ &hf_ncp_sequence_number, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_dir_base, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_scan_items, 4, NULL, LE, 0, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_scan_info_file_name, NO_ENDIANNESS, NO_VAR, 0, 112, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_scan_info_file_no_name, NO_ENDIANNESS, NO_VAR, 0, 86, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x572a_request[] = {
+	{ &hf_ncp_name_space, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_reserved, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_purge_flags, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_volume_number_long, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_dir_base, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_purge_count, 4, NULL, LE, 0, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_purge_list, 4, NULL, LE, NO_VAR, 0, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x572a_reply[] = {
+	{ &hf_ncp_purge_count, 4, NULL, LE, 0, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_purge_c_code, 4, NULL, LE, NO_VAR, 0, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x572b_request[] = {
+	{ &hf_ncp_reserved3, 3, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_rev_query_flag, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_file_handle, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_remove_open_rights, 1, &ncp_remove_open_rights_bitfield, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x572b_reply[] = {
+	{ &hf_ncp_file_handle, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_open_rights, 1, &ncp_open_rights_bitfield, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x572c_request[] = {
+	{ &hf_ncp_reserved2, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_volume_number, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_name_space, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_directory_number, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_access_rights_mask_word, 2, &ncp_access_rights_mask_word_bitfield, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_new_access_rights_mask, 2, &ncp_new_access_rights_mask_bitfield, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_file_handle, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x572c_reply[] = {
+	{ &hf_ncp_file_handle, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_effective_rights, 4, &ncp_effective_rights_bitfield, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x5740_request[] = {
+	{ &hf_ncp_file_handle, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_s_offset_64bit, 8, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_num_bytes, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x5742_request[] = {
+	{ &hf_ncp_file_handle, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x5742_reply[] = {
+	{ &hf_ncp_f_size_64bit, 8, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x5743_request[] = {
+	{ &hf_ncp_lock_flag, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_file_handle, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_s_offset_64bit, 8, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_length_64bit, 8, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_lock_timeout, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x5744_request[] = {
+	{ &hf_ncp_file_handle, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_s_offset_64bit, 8, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_length_64bit, 8, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x5801_reply[] = {
+	{ PTVC_STRUCT, NO_LENGTH, &struct_nw_audit_status, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x5802_request[] = {
+	{ &hf_ncp_audit_id_type, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_audit_id, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_audit_handle, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_object_id, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_audit_flag, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x5a01_request[] = {
+	{ &hf_ncp_info_mask, 4, &ncp_info_mask_bitfield, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_reserved4, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_reserved4, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_limb_count, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x5a01_reply[] = {
+	{ &hf_ncp_limb_count, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_items_count, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_next_limb_scan_num, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_ncompletion_code, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_folder_flag, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_reserved, 3, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_dir_base, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x5a0a_request[] = {
+	{ &hf_ncp_volume_number_long, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_dir_base, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_name_space, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x5a0a_reply[] = {
+	{ &hf_ncp_reference_count, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x5a0b_request[] = {
+	{ &hf_ncp_dir_handle, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x5a0c_request[] = {
+	{ &hf_ncp_file_handle, 6, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_suggested_file_size, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x5a0c_reply[] = {
+	{ &hf_ncp_old_file_size, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_new_file_size, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x5a80_request[] = {
+	{ &hf_ncp_volume_number_long, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_directory_entry_number, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_name_space, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_reserved, 3, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_support_module_id, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_dm_flags, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x5a81_request[] = {
+	{ &hf_ncp_volume_number_long, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_directory_entry_number, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_name_space, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x5a81_reply[] = {
+	{ &hf_ncp_support_module_id, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_restore_time, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_dm_info_entries, 4, NULL, LE, 0, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_data_size, 4, NULL, LE, NO_VAR, 0, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x5a82_request[] = {
+	{ &hf_ncp_volume_number_long, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_support_module_id, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x5a82_reply[] = {
+	{ &hf_ncp_num_of_files_migrated, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_ttl_migrated_size, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_space_used, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_limbo_used, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_space_migrated, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_file_limbo, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x5a83_reply[] = {
+	{ &hf_ncp_dm_present_flag, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_reserved3, 3, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_dm_major_version, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_dm_minor_version, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x5a84_request[] = {
+	{ &hf_ncp_dm_info_level, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_reserved3, 3, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_support_module_id, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x5a84_reply[] = {
+	{ PTVC_STRUCT, NO_LENGTH, &struct_dm_info_level_0, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 53, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_dm_info_level_1, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 52, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_dm_info_level_2, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 55, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x5a86_request[] = {
+	{ &hf_ncp_get_set_flag, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_reserved3, 3, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_support_module_id, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x5a86_reply[] = {
+	{ &hf_ncp_support_module_id, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x5a87_request[] = {
+	{ &hf_ncp_support_module_id, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_volume_number_long, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_dir_base, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x5a87_reply[] = {
+	{ &hf_ncp_block_size_in_sectors, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_total_blocks, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_used_blocks, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x5a88_request[] = {
+	{ &hf_ncp_verb, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_verb_data, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x61_request[] = {
+	{ &hf_ncp_proposed_max_size, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_security_flag, 1, &ncp_security_flag_bitfield, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x61_reply[] = {
+	{ &hf_ncp_accepted_max_size, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_echo_socket, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_security_flag, 1, &ncp_security_flag_bitfield, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x65_request[] = {
+	{ &hf_ncp_local_connection_id, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_local_max_packet_size, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_local_target_socket, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_local_max_send_size, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_local_max_recv_size, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x65_reply[] = {
+	{ &hf_ncp_remote_target_id, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_remote_max_packet_size, 4, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x6803_request[] = {
+	{ &hf_ncp_fragger_handle, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x6804_reply[] = {
+	{ &hf_ncp_bindery_context, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x6806_request[] = {
+	{ &hf_ncp_nds_request_flags, 2, &ncp_nds_request_flags_bitfield, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x6808_reply[] = {
+	{ &hf_ncp_nds_status, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x69_request[] = {
+	{ &hf_ncp_dir_handle, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_lock_flag, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_timeout_limit, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_file_path, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x6b_request[] = {
+	{ &hf_ncp_lock_flag, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_timeout_limit, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_synch_name, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x6d_request[] = {
+	{ &hf_ncp_lock_flag, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_file_handle, 6, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_lock_areas_start_offset, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_lock_area_len, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_lock_timeout, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x6f00_request[] = {
+	{ &hf_ncp_initial_semaphore_value, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_semaphore_name, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x6f00_reply[] = {
+	{ &hf_ncp_semaphore_handle, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_semaphore_open_count, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x6f01_request[] = {
+	{ &hf_ncp_semaphore_handle, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x6f02_request[] = {
+	{ &hf_ncp_semaphore_handle, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_lock_timeout, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x6f04_reply[] = {
+	{ &hf_ncp_semaphore_open_count, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_semaphore_share_count, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x7201_reply[] = {
+	{ PTVC_STRUCT, NO_LENGTH, &struct_the_time_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_event_offset, 8, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_event_time, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x7202_request[] = {
+	{ &hf_ncp_protocol_flags, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_node_flags, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_source_originate_time, 8, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_target_receive_time, 8, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_target_transmit_time, 8, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_source_return_time, 8, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_event_offset, 8, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_event_time, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_server_name_len, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x7202_reply[] = {
+	{ &hf_ncp_reserved3, 3, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_protocol_flags, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_node_flags, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_source_originate_time, 8, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_target_receive_time, 8, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_target_transmit_time, 8, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_source_return_time, 8, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_event_offset, 8, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_event_time, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_server_name_len, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x7205_request[] = {
+	{ &hf_ncp_start_number, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x7205_reply[] = {
+	{ &hf_ncp_name_type, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_server_name, 48, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_server_list_flags, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_start_number_flag, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x720c_reply[] = {
+	{ &hf_ncp_version, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x7b01_request[] = {
+	{ &hf_ncp_version_number, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_revision_number, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x7b01_reply[] = {
+	{ &hf_ncp_current_server_time, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_vconsole_ver, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_vconsole_rev, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_reserved2, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_counters_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_extra_cache_cntrs, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_memory_counters, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_trend_counters, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_cache_info, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x7b02_reply[] = {
+	{ &hf_ncp_current_server_time, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_vconsole_ver, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_vconsole_rev, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_reserved2, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_ncp_sta_in_use, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_ncp_peak_sta_in_use, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_num_of_ncp_reqs, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_server_utilization, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_server_info, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_file_server_counters, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x7b03_request[] = {
+	{ &hf_ncp_file_system_id, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x7b03_reply[] = {
+	{ &hf_ncp_current_server_time, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_vconsole_ver, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_vconsole_rev, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_reserved2, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_file_system_info, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x7b04_reply[] = {
+	{ &hf_ncp_current_server_time, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_vconsole_ver, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_vconsole_rev, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_reserved2, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_user_info, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_user_name, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x7b05_reply[] = {
+	{ &hf_ncp_current_server_time, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_vconsole_ver, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_vconsole_rev, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_reserved2, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_packet_burst_information, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x7b06_reply[] = {
+	{ &hf_ncp_current_server_time, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_vconsole_ver, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_vconsole_rev, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_reserved2, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_ipx_information, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_spx_information, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x7b07_reply[] = {
+	{ &hf_ncp_current_server_time, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_vconsole_ver, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_vconsole_rev, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_reserved2, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_failed_alloc_req, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_num_of_allocs, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_no_more_mem_avail, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_num_of_garb_coll, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_found_some_mem, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_num_of_checks, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x7b08_request[] = {
+	{ &hf_ncp_cpu_number, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x7b08_reply[] = {
+	{ &hf_ncp_current_server_time, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_vconsole_ver, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_vconsole_rev, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_reserved2, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_number_of_cpus, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_cpu_information, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x7b09_reply[] = {
+	{ &hf_ncp_current_server_time, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_vconsole_ver, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_vconsole_rev, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_reserved2, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_total_lfs_counters, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_current_lfs_counters, 4, NULL, LE, 0, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_lfs_counters, 4, NULL, LE, NO_VAR, 0, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x7b0a_reply[] = {
+	{ &hf_ncp_current_server_time, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_vconsole_ver, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_vconsole_rev, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_reserved2, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_nlm_count, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_nlms_in_list, 4, NULL, LE, 0, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_nlm_numbers, 4, NULL, LE, NO_VAR, 0, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x7b0b_request[] = {
+	{ &hf_ncp_nlm_number, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x7b0b_reply[] = {
+	{ &hf_ncp_current_server_time, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_vconsole_ver, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_vconsole_rev, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_reserved2, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_nlm_information, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_file_name, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_name, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_copyright, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x7b0c_reply[] = {
+	{ &hf_ncp_current_server_time, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_vconsole_ver, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_vconsole_rev, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_reserved2, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_dir_cache_info, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x7b0d_reply[] = {
+	{ &hf_ncp_current_server_time, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_vconsole_ver, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_vconsole_rev, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_reserved2, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_os_major_version, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_os_minor_version, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_os_revision, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_acct_version, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_vap_version, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_qms_version, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_security_restriction_version, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_internet_bridge_version, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_max_num_of_vol, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_max_num_of_conn, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_max_num_of_users, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_max_num_of_nme_sps, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_max_num_of_lans, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_max_num_of_medias, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_max_num_of_stacks, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_max_dir_depth, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_max_data_streams, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_max_num_of_spool_pr, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_server_serial_number, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_server_app_num, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x7b0e_request[] = {
+	{ &hf_ncp_start_conn_num, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_connection_type, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x7b0e_reply[] = {
+	{ &hf_ncp_current_server_time, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_vconsole_ver, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_vconsole_rev, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_reserved2, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_active_conn_bit_list, 512, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x7b0f_request[] = {
+	{ &hf_ncp_nlm_number, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_nlm_start_num, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x7b0f_reply[] = {
+	{ &hf_ncp_current_server_time, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_vconsole_ver, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_vconsole_rev, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_reserved2, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_ttl_num_of_r_tags, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_cur_num_of_r_tags, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_r_tag_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x7b10_request[] = {
+	{ &hf_ncp_enum_info_mask, 1, &ncp_enum_info_mask_bitfield, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_reserved3, 3, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_items_in_list, 4, NULL, LE, 0, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_conn_list, 4, NULL, LE, NO_VAR, 0, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x7b10_reply[] = {
+	{ &hf_ncp_current_server_time, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_vconsole_ver, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_vconsole_rev, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_reserved2, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_items_in_packet, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_net_addr_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 78, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_time_info, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 23, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_name_info_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 1, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_lock_info_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 10, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_print_info_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 98, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_stats_info_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 79, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_acctng_info_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 13, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_auth_info_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 7, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x7b11_request[] = {
+	{ &hf_ncp_search_number, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x7b11_reply[] = {
+	{ &hf_ncp_current_server_time, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_vconsole_ver, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_vconsole_rev, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_server_info_flags, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_guid, 16, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_nxt_search_num, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_items_in_packet, 4, NULL, LE, 0, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_ncp_network_address_struct, NO_ENDIANNESS, NO_VAR, 0, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x7b14_reply[] = {
+	{ &hf_ncp_current_server_time, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_vconsole_ver, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_vconsole_rev, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_reserved2, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_max_num_of_lans, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_items_in_packet, 4, NULL, LE, 0, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_board_numbers, 4, NULL, LE, NO_VAR, 0, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x7b15_request[] = {
+	{ &hf_ncp_board_number, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x7b15_reply[] = {
+	{ &hf_ncp_current_server_time, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_vconsole_ver, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_vconsole_rev, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_reserved2, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_lan_cfg_info, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x7b16_request[] = {
+	{ &hf_ncp_board_number, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_block_number, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x7b16_reply[] = {
+	{ &hf_ncp_current_server_time, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_vconsole_ver, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_vconsole_rev, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_stat_major_version, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_stat_minor_version, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_total_common_cnts, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_total_cnt_blocks, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_custom_counters, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_next_cnt_block, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_common_lan_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x7b17_request[] = {
+	{ &hf_ncp_board_number, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_start_number, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x7b17_reply[] = {
+	{ &hf_ncp_current_server_time, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_vconsole_ver, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_vconsole_rev, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_reserved2, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_num_of_cc_in_pkt, 4, NULL, LE, 0, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_custom_cnts_info, NO_ENDIANNESS, NO_VAR, 0, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x7b18_reply[] = {
+	{ &hf_ncp_current_server_time, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_vconsole_ver, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_vconsole_rev, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_reserved2, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_board_name_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x7b19_reply[] = {
+	{ &hf_ncp_current_server_time, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_vconsole_ver, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_vconsole_rev, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_reserved2, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_lsl_information, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x7b1a_reply[] = {
+	{ &hf_ncp_current_server_time, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_vconsole_ver, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_vconsole_rev, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_reserved2, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_log_ttl_tx_pkts, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_log_ttl_rx_pkts, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_un_claimed_packets, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x7b1b_reply[] = {
+	{ &hf_ncp_current_server_time, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_vconsole_ver, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_vconsole_rev, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_reserved, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_number_of_protocols, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_mlid_board_info, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x7b1e_request[] = {
+	{ &hf_ncp_object_number, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x7b1e_reply[] = {
+	{ &hf_ncp_current_server_time, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_vconsole_ver, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_vconsole_rev, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_reserved2, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_generic_info_def, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x7b1f_request[] = {
+	{ &hf_ncp_start_number, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_media_object_type, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x7b1f_reply[] = {
+	{ &hf_ncp_current_server_time, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_vconsole_ver, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_vconsole_rev, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_reserved2, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_next_starting_number, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_object_count, 4, NULL, LE, 0, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_object_id, 4, NULL, BE, NO_VAR, 0, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x7b20_request[] = {
+	{ &hf_ncp_start_number, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_media_object_type, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_reserved3, 3, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_parent_object_number, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x7b21_request[] = {
+	{ &hf_ncp_volume_number_long, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x7b21_reply[] = {
+	{ &hf_ncp_current_server_time, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_vconsole_ver, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_vconsole_rev, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_reserved2, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_num_of_segments, 4, NULL, LE, 0, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_segments, NO_ENDIANNESS, NO_VAR, 0, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x7b22_request[] = {
+	{ &hf_ncp_volume_number_long, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_info_level_num, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x7b22_reply[] = {
+	{ &hf_ncp_current_server_time, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_vconsole_ver, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_vconsole_rev, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_reserved2, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_info_level_num, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_reserved3, 3, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_vol_info_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 81, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_vol_info_struct_2, NO_ENDIANNESS, NO_VAR, NO_REPEAT, 31, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x7b28_reply[] = {
+	{ &hf_ncp_current_server_time, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_vconsole_ver, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_vconsole_rev, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_reserved2, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_max_num_of_lans, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_stack_count, 4, NULL, LE, 0, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_next_starting_number, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_stack_info, NO_ENDIANNESS, NO_VAR, 0, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x7b29_request[] = {
+	{ &hf_ncp_stack_number, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x7b29_reply[] = {
+	{ &hf_ncp_current_server_time, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_vconsole_ver, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_vconsole_rev, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_reserved2, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_config_major_vn, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_config_minor_vn, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_stack_major_vn, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_stack_minor_vn, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_short_stack_name, 16, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_stack_full_name_str, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x7b2a_reply[] = {
+	{ &hf_ncp_current_server_time, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_vconsole_ver, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_vconsole_rev, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_reserved2, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_stat_major_version, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_stat_minor_version, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_com_cnts, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_counter_mask, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_total_tx_pkts, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_total_rx_pkts, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_ignored_rx_pkts, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_custom_cnts, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x7b2b_request[] = {
+	{ &hf_ncp_stack_number, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_start_number, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x7b2b_reply[] = {
+	{ &hf_ncp_current_server_time, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_vconsole_ver, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_vconsole_rev, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_reserved2, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_custom_count, 4, NULL, LE, 0, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_custom_cnts_info, NO_ENDIANNESS, NO_VAR, 0, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x7b2c_request[] = {
+	{ &hf_ncp_media_number, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x7b2c_reply[] = {
+	{ &hf_ncp_current_server_time, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_vconsole_ver, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_vconsole_rev, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_reserved2, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_stack_count, 4, NULL, LE, 0, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_stack_number, 4, NULL, LE, NO_VAR, 0, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x7b2e_reply[] = {
+	{ &hf_ncp_current_server_time, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_vconsole_ver, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_vconsole_rev, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_reserved2, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_media_name, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x7b2f_reply[] = {
+	{ &hf_ncp_current_server_time, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_vconsole_ver, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_vconsole_rev, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_reserved2, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_max_num_of_medias, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_media_list_count, 4, NULL, LE, 0, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_media_list, 4, NULL, LE, NO_VAR, 0, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x7b32_reply[] = {
+	{ &hf_ncp_current_server_time, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_vconsole_ver, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_vconsole_rev, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_reserved2, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_rip_socket_num, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_reserved2, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_router_dn_flag, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_reserved3, 3, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_track_on_flag, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_reserved3, 3, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_ext_router_active_flag, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_reserved3, 3, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_sap_socket_number, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_reserved2, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_rpy_nearest_srv_flag, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x7b33_request[] = {
+	{ &hf_ncp_network_number, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x7b33_reply[] = {
+	{ &hf_ncp_current_server_time, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_vconsole_ver, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_vconsole_rev, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_reserved2, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_known_routes, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x7b34_request[] = {
+	{ &hf_ncp_network_number, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_start_number, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x7b34_reply[] = {
+	{ &hf_ncp_current_server_time, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_vconsole_ver, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_vconsole_rev, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_reserved2, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_num_of_entries, 4, NULL, LE, 0, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_routers_info, NO_ENDIANNESS, NO_VAR, 0, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x7b35_reply[] = {
+	{ &hf_ncp_current_server_time, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_vconsole_ver, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_vconsole_rev, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_reserved2, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_num_of_entries, 4, NULL, LE, 0, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_known_routes, NO_ENDIANNESS, NO_VAR, 0, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x7b36_request[] = {
+	{ &hf_ncp_server_type, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_reserved2, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_server_name_len, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x7b36_reply[] = {
+	{ &hf_ncp_current_server_time, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_vconsole_ver, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_vconsole_rev, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_reserved2, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_server_address, 12, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_hops_to_net, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x7b37_request[] = {
+	{ &hf_ncp_start_number, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_server_type, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_reserved2, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_server_name_len, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x7b37_reply[] = {
+	{ &hf_ncp_current_server_time, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_vconsole_ver, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_vconsole_rev, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_reserved2, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_num_of_entries, 4, NULL, LE, 0, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_servers_src_info, NO_ENDIANNESS, NO_VAR, 0, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x7b38_request[] = {
+	{ &hf_ncp_start_number, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_server_type, 2, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x7b38_reply[] = {
+	{ &hf_ncp_current_server_time, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_vconsole_ver, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_vconsole_rev, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_reserved2, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_num_of_entries, 4, NULL, LE, 0, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_known_server_struct, NO_ENDIANNESS, NO_VAR, 0, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x7b3c_reply[] = {
+	{ &hf_ncp_current_server_time, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_vconsole_ver, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_vconsole_rev, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_reserved2, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_ttl_num_of_set_cmds, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_next_starting_number, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_set_cmd_type, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_reserved3, 3, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_set_cmd_category, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_reserved3, 3, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_set_cmd_flags, 1, &ncp_set_cmd_flags_bitfield, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_reserved3, 3, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_set_cmd_name, 100, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_set_cmd_value_num, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x7b3d_reply[] = {
+	{ &hf_ncp_current_server_time, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_vconsole_ver, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_vconsole_rev, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_reserved2, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_number_of_set_categories, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_next_starting_number, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_category_name, -1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x7b3e_request[] = {
+	{ &hf_ncp_set_parm_name, -1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x7b3e_reply[] = {
+	{ &hf_ncp_current_server_time, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_vconsole_ver, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_vconsole_rev, 1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_reserved2, 2, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_ttl_num_of_set_cmds, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_next_starting_number, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_set_cmd_type, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_reserved3, 3, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_set_cmd_category, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_reserved3, 3, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_set_cmd_flags, 1, &ncp_set_cmd_flags_bitfield, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_reserved3, 3, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_set_cmd_name, -1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x7b46_reply[] = {
+	{ &hf_ncp_parent_id, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_directory_entry_number, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_compression_stage, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_ttl_inter_blks, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_ttl_comp_blks, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_cur_inter_blks, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_cur_comp_blks, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_cur_initial_blks, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_file_flags, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_projected_comp_size, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_original_size, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_compress_volume, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x7b47_reply[] = {
+	{ &hf_ncp_file_list_count, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ PTVC_STRUCT, NO_LENGTH, &struct_file_info_struct, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x7b48_reply[] = {
+	{ PTVC_STRUCT, NO_LENGTH, &struct_comp_d_comp_stat, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x8301_request[] = {
+	{ &hf_ncp_nlm_load_options, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_reserved16, 16, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_path_and_name, -1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x8301_reply[] = {
+	{ &hf_ncp_rpc_c_code, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x8302_request[] = {
+	{ &hf_ncp_reserved20, 20, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_nlm_name_stringz, -1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x8303_request[] = {
+	{ &hf_ncp_reserved20, 20, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_volume_name_stringz, -1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x8303_reply[] = {
+	{ &hf_ncp_rpc_c_code, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_reserved16, 16, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_volume_number_long, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x8305_request[] = {
+	{ &hf_ncp_reserved20, 20, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_add_nm_spc_and_vol, -1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x8306_request[] = {
+	{ &hf_ncp_set_cmd_type, 1, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_reserved3, 3, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_set_cmd_value_num, 4, NULL, LE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_reserved12, 12, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_set_cmd_name, -1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+static const ptvc_record ncp_0x8307_request[] = {
+	{ &hf_ncp_reserved20, 20, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ &hf_ncp_path_and_name, -1, NULL, BE, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE },
+	{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }
+};
+
+/* Error-Equivalency Tables. These are re-used to save space. */
+static const error_equivalency ncp_0x1_errors[] = {
+	{ 0x00, 0 }, /* 0x0000 */
+	{ 0x00, -1 }
+};
+
+static const error_equivalency ncp_0x2_errors[] = {
+	{ 0x00, 0 }, /* 0x0000 */
+	{ 0xff, 1 }, /* 0xff00 */
+	{ 0x00, -1 }
+};
+
+static const error_equivalency ncp_0x3_errors[] = {
+	{ 0x00, 0 }, /* 0x0000 */
+	{ 0x82, 2 }, /* 0x8200 */
+	{ 0x96, 3 }, /* 0x9600 */
+	{ 0xfe, 4 }, /* 0xfe0d */
+	{ 0xff, 5 }, /* 0xff01 */
+	{ 0x00, -1 }
+};
+
+static const error_equivalency ncp_0x4_errors[] = {
+	{ 0x00, 0 }, /* 0x0000 */
+	{ 0xfe, 4 }, /* 0xfe0d */
+	{ 0xff, 5 }, /* 0xff01 */
+	{ 0x00, -1 }
+};
+
+static const error_equivalency ncp_0x5_errors[] = {
+	{ 0x00, 0 }, /* 0x0000 */
+	{ 0x9b, 6 }, /* 0x9b00 */
+	{ 0x9c, 7 }, /* 0x9c03 */
+	{ 0xff, 8 }, /* 0xff1a */
+	{ 0x00, -1 }
+};
+
+static const error_equivalency ncp_0x7_errors[] = {
+	{ 0x00, 0 }, /* 0x0000 */
+	{ 0x96, 3 }, /* 0x9600 */
+	{ 0x98, 9 }, /* 0x9804 */
+	{ 0x9b, 10 }, /* 0x9b03 */
+	{ 0x9c, 7 }, /* 0x9c03 */
+	{ 0xa1, 11 }, /* 0xa100 */
+	{ 0xfd, 12 }, /* 0xfd00 */
+	{ 0xff, 8 }, /* 0xff1a */
+	{ 0x00, -1 }
+};
+
+static const error_equivalency ncp_0x9_errors[] = {
+	{ 0x00, 0 }, /* 0x0000 */
+	{ 0x96, 3 }, /* 0x9600 */
+	{ 0xfe, 4 }, /* 0xfe0d */
+	{ 0xff, 8 }, /* 0xff1a */
+	{ 0x00, -1 }
+};
+
+static const error_equivalency ncp_0xa_errors[] = {
+	{ 0x00, 0 }, /* 0x0000 */
+	{ 0xfe, 4 }, /* 0xfe0d */
+	{ 0xff, 8 }, /* 0xff1a */
+	{ 0x00, -1 }
+};
+
+static const error_equivalency ncp_0xb_errors[] = {
+	{ 0x00, 0 }, /* 0x0000 */
+	{ 0xff, 8 }, /* 0xff1a */
+	{ 0x00, -1 }
+};
+
+static const error_equivalency ncp_0x1100_errors[] = {
+	{ 0x00, 0 }, /* 0x0000 */
+	{ 0x01, 13 }, /* 0x0104 */
+	{ 0x80, 14 }, /* 0x8000 */
+	{ 0x81, 15 }, /* 0x8101 */
+	{ 0x87, 16 }, /* 0x8701 */
+	{ 0x88, 17 }, /* 0x8800 */
+	{ 0x8d, 18 }, /* 0x8d00 */
+	{ 0x8e, 19 }, /* 0x8e00 */
+	{ 0x8f, 20 }, /* 0x8f00 */
+	{ 0x90, 21 }, /* 0x9001 */
+	{ 0x94, 22 }, /* 0x9400 */
+	{ 0x95, 23 }, /* 0x9500 */
+	{ 0x96, 3 }, /* 0x9600 */
+	{ 0x98, 9 }, /* 0x9804 */
+	{ 0x99, 24 }, /* 0x9900 */
+	{ 0xa1, 11 }, /* 0xa100 */
+	{ 0xa2, 25 }, /* 0xa201 */
+	{ 0xff, 26 }, /* 0xff19 */
+	{ 0x00, -1 }
+};
+
+static const error_equivalency ncp_0x1101_errors[] = {
+	{ 0x00, 0 }, /* 0x0000 */
+	{ 0x80, 14 }, /* 0x8000 */
+	{ 0x81, 15 }, /* 0x8101 */
+	{ 0x87, 16 }, /* 0x8701 */
+	{ 0x88, 17 }, /* 0x8800 */
+	{ 0x8d, 18 }, /* 0x8d00 */
+	{ 0x8e, 19 }, /* 0x8e00 */
+	{ 0x8f, 20 }, /* 0x8f00 */
+	{ 0x90, 21 }, /* 0x9001 */
+	{ 0x93, 27 }, /* 0x9300 */
+	{ 0x94, 22 }, /* 0x9400 */
+	{ 0x95, 23 }, /* 0x9500 */
+	{ 0x96, 3 }, /* 0x9600 */
+	{ 0x98, 9 }, /* 0x9804 */
+	{ 0x99, 24 }, /* 0x9900 */
+	{ 0x9b, 10 }, /* 0x9b03 */
+	{ 0x9c, 7 }, /* 0x9c03 */
+	{ 0x9d, 28 }, /* 0x9d00 */
+	{ 0xa1, 11 }, /* 0xa100 */
+	{ 0xd0, 29 }, /* 0xd000 */
+	{ 0xd1, 30 }, /* 0xd100 */
+	{ 0xd2, 31 }, /* 0xd202 */
+	{ 0xd3, 32 }, /* 0xd300 */
+	{ 0xd4, 33 }, /* 0xd400 */
+	{ 0xda, 34 }, /* 0xda01 */
+	{ 0xe8, 35 }, /* 0xe800 */
+	{ 0xea, 36 }, /* 0xea00 */
+	{ 0xeb, 37 }, /* 0xeb00 */
+	{ 0xec, 38 }, /* 0xec00 */
+	{ 0xfc, 39 }, /* 0xfc06 */
+	{ 0xfd, 12 }, /* 0xfd00 */
+	{ 0xfe, 40 }, /* 0xfe07 */
+	{ 0xff, 41 }, /* 0xff06 */
+	{ 0x00, -1 }
+};
+
+static const error_equivalency ncp_0x1102_errors[] = {
+	{ 0x00, 0 }, /* 0x0000 */
+	{ 0x96, 3 }, /* 0x9600 */
+	{ 0xd2, 31 }, /* 0xd202 */
+	{ 0xd3, 32 }, /* 0xd300 */
+	{ 0xe8, 35 }, /* 0xe800 */
+	{ 0xea, 36 }, /* 0xea00 */
+	{ 0xeb, 37 }, /* 0xeb00 */
+	{ 0xec, 38 }, /* 0xec00 */
+	{ 0xfc, 39 }, /* 0xfc06 */
+	{ 0xfe, 40 }, /* 0xfe07 */
+	{ 0xff, 41 }, /* 0xff06 */
+	{ 0x00, -1 }
+};
+
+static const error_equivalency ncp_0x1106_errors[] = {
+	{ 0x00, 0 }, /* 0x0000 */
+	{ 0x96, 3 }, /* 0x9600 */
+	{ 0xfb, 42 }, /* 0xfb05 */
+	{ 0xfd, 12 }, /* 0xfd00 */
+	{ 0xff, 41 }, /* 0xff06 */
+	{ 0x00, -1 }
+};
+
+static const error_equivalency ncp_0x1109_errors[] = {
+	{ 0x00, 0 }, /* 0x0000 */
+	{ 0x80, 14 }, /* 0x8000 */
+	{ 0x81, 15 }, /* 0x8101 */
+	{ 0x84, 43 }, /* 0x8400 */
+	{ 0x87, 16 }, /* 0x8701 */
+	{ 0x8d, 18 }, /* 0x8d00 */
+	{ 0x8f, 20 }, /* 0x8f00 */
+	{ 0x90, 21 }, /* 0x9001 */
+	{ 0x94, 22 }, /* 0x9400 */
+	{ 0x96, 3 }, /* 0x9600 */
+	{ 0x98, 9 }, /* 0x9804 */
+	{ 0x99, 24 }, /* 0x9900 */
+	{ 0x9b, 10 }, /* 0x9b03 */
+	{ 0x9c, 7 }, /* 0x9c03 */
+	{ 0xa1, 11 }, /* 0xa100 */
+	{ 0xd0, 29 }, /* 0xd000 */
+	{ 0xd1, 30 }, /* 0xd100 */
+	{ 0xd2, 31 }, /* 0xd202 */
+	{ 0xd3, 32 }, /* 0xd300 */
+	{ 0xd4, 33 }, /* 0xd400 */
+	{ 0xda, 34 }, /* 0xda01 */
+	{ 0xe8, 35 }, /* 0xe800 */
+	{ 0xea, 36 }, /* 0xea00 */
+	{ 0xeb, 37 }, /* 0xeb00 */
+	{ 0xec, 38 }, /* 0xec00 */
+	{ 0xfc, 39 }, /* 0xfc06 */
+	{ 0xfd, 12 }, /* 0xfd00 */
+	{ 0xfe, 40 }, /* 0xfe07 */
+	{ 0xff, 41 }, /* 0xff06 */
+	{ 0x00, -1 }
+};
+
+static const error_equivalency ncp_0x110a_errors[] = {
+	{ 0x00, 0 }, /* 0x0000 */
+	{ 0x96, 3 }, /* 0x9600 */
+	{ 0xff, 41 }, /* 0xff06 */
+	{ 0x00, -1 }
+};
+
+static const error_equivalency ncp_0x12_errors[] = {
+	{ 0x00, 0 }, /* 0x0000 */
+	{ 0x98, 9 }, /* 0x9804 */
+	{ 0x00, -1 }
+};
+
+static const error_equivalency ncp_0x1500_errors[] = {
+	{ 0x00, 0 }, /* 0x0000 */
+	{ 0xfd, 12 }, /* 0xfd00 */
+	{ 0x00, -1 }
+};
+
+static const error_equivalency ncp_0x1502_errors[] = {
+	{ 0x00, 0 }, /* 0x0000 */
+	{ 0xfb, 44 }, /* 0xfb0a */
+	{ 0x00, -1 }
+};
+
+static const error_equivalency ncp_0x1600_errors[] = {
+	{ 0x00, 0 }, /* 0x0000 */
+	{ 0x96, 3 }, /* 0x9600 */
+	{ 0x98, 9 }, /* 0x9804 */
+	{ 0x9b, 10 }, /* 0x9b03 */
+	{ 0x9c, 7 }, /* 0x9c03 */
+	{ 0xa1, 11 }, /* 0xa100 */
+	{ 0xfa, 45 }, /* 0xfa00 */
+	{ 0xfd, 12 }, /* 0xfd00 */
+	{ 0xff, 1 }, /* 0xff00 */
+	{ 0x00, -1 }
+};
+
+static const error_equivalency ncp_0x1601_errors[] = {
+	{ 0x00, 0 }, /* 0x0000 */
+	{ 0x96, 3 }, /* 0x9600 */
+	{ 0x9b, 6 }, /* 0x9b00 */
+	{ 0x9c, 46 }, /* 0x9c00 */
+	{ 0xa1, 11 }, /* 0xa100 */
+	{ 0x00, -1 }
+};
+
+static const error_equivalency ncp_0x1604_errors[] = {
+	{ 0x00, 0 }, /* 0x0000 */
+	{ 0x8c, 47 }, /* 0x8c00 */
+	{ 0x96, 3 }, /* 0x9600 */
+	{ 0x98, 9 }, /* 0x9804 */
+	{ 0x9b, 10 }, /* 0x9b03 */
+	{ 0x9c, 7 }, /* 0x9c03 */
+	{ 0xa1, 11 }, /* 0xa100 */
+	{ 0xfa, 45 }, /* 0xfa00 */
+	{ 0xfd, 12 }, /* 0xfd00 */
+	{ 0xff, 1 }, /* 0xff00 */
+	{ 0x00, -1 }
+};
+
+static const error_equivalency ncp_0x1605_errors[] = {
+	{ 0x00, 0 }, /* 0x0000 */
+	{ 0x96, 3 }, /* 0x9600 */
+	{ 0x98, 9 }, /* 0x9804 */
+	{ 0x00, -1 }
+};
+
+static const error_equivalency ncp_0x1606_errors[] = {
+	{ 0x00, 0 }, /* 0x0000 */
+	{ 0x96, 3 }, /* 0x9600 */
+	{ 0x98, 9 }, /* 0x9804 */
+	{ 0xff, 1 }, /* 0xff00 */
+	{ 0x00, -1 }
+};
+
+static const error_equivalency ncp_0x160a_errors[] = {
+	{ 0x00, 0 }, /* 0x0000 */
+	{ 0x84, 43 }, /* 0x8400 */
+	{ 0x96, 3 }, /* 0x9600 */
+	{ 0x98, 9 }, /* 0x9804 */
+	{ 0x99, 24 }, /* 0x9900 */
+	{ 0x9b, 10 }, /* 0x9b03 */
+	{ 0x9c, 7 }, /* 0x9c03 */
+	{ 0x9e, 48 }, /* 0x9e00 */
+	{ 0xa1, 11 }, /* 0xa100 */
+	{ 0xfd, 12 }, /* 0xfd00 */
+	{ 0xff, 1 }, /* 0xff00 */
+	{ 0x00, -1 }
+};
+
+static const error_equivalency ncp_0x160b_errors[] = {
+	{ 0x00, 0 }, /* 0x0000 */
+	{ 0x8a, 49 }, /* 0x8a00 */
+	{ 0x96, 3 }, /* 0x9600 */
+	{ 0x98, 9 }, /* 0x9804 */
+	{ 0x9b, 10 }, /* 0x9b03 */
+	{ 0x9c, 7 }, /* 0x9c03 */
+	{ 0x9f, 50 }, /* 0x9f00 */
+	{ 0xa0, 51 }, /* 0xa000 */
+	{ 0xa1, 11 }, /* 0xa100 */
+	{ 0xfd, 12 }, /* 0xfd00 */
+	{ 0xff, 1 }, /* 0xff00 */
+	{ 0x00, -1 }
+};
+
+static const error_equivalency ncp_0x160c_errors[] = {
+	{ 0x00, 0 }, /* 0x0000 */
+	{ 0x8c, 47 }, /* 0x8c00 */
+	{ 0x96, 3 }, /* 0x9600 */
+	{ 0x98, 9 }, /* 0x9804 */
+	{ 0x9b, 10 }, /* 0x9b03 */
+	{ 0x9c, 7 }, /* 0x9c03 */
+	{ 0xa1, 11 }, /* 0xa100 */
+	{ 0xfd, 12 }, /* 0xfd00 */
+	{ 0xff, 1 }, /* 0xff00 */
+	{ 0x00, -1 }
+};
+
+static const error_equivalency ncp_0x160d_errors[] = {
+	{ 0x00, 0 }, /* 0x0000 */
+	{ 0x8c, 47 }, /* 0x8c00 */
+	{ 0x96, 3 }, /* 0x9600 */
+	{ 0x98, 9 }, /* 0x9804 */
+	{ 0x99, 24 }, /* 0x9900 */
+	{ 0x9b, 10 }, /* 0x9b03 */
+	{ 0x9c, 7 }, /* 0x9c03 */
+	{ 0xa1, 11 }, /* 0xa100 */
+	{ 0xfc, 39 }, /* 0xfc06 */
+	{ 0xfd, 12 }, /* 0xfd00 */
+	{ 0xff, 1 }, /* 0xff00 */
+	{ 0x00, -1 }
+};
+
+static const error_equivalency ncp_0x160e_errors[] = {
+	{ 0x00, 0 }, /* 0x0000 */
+	{ 0x8c, 47 }, /* 0x8c00 */
+	{ 0x96, 3 }, /* 0x9600 */
+	{ 0x98, 9 }, /* 0x9804 */
+	{ 0x99, 24 }, /* 0x9900 */
+	{ 0x9b, 10 }, /* 0x9b03 */
+	{ 0x9c, 7 }, /* 0x9c03 */
+	{ 0xa1, 11 }, /* 0xa100 */
+	{ 0xfc, 39 }, /* 0xfc06 */
+	{ 0xfd, 12 }, /* 0xfd00 */
+	{ 0xfe, 40 }, /* 0xfe07 */
+	{ 0xff, 1 }, /* 0xff00 */
+	{ 0x00, -1 }
+};
+
+static const error_equivalency ncp_0x160f_errors[] = {
+	{ 0x00, 0 }, /* 0x0000 */
+	{ 0x8b, 52 }, /* 0x8b00 */
+	{ 0x92, 53 }, /* 0x9200 */
+	{ 0x96, 3 }, /* 0x9600 */
+	{ 0x98, 9 }, /* 0x9804 */
+	{ 0x9b, 10 }, /* 0x9b03 */
+	{ 0x9c, 7 }, /* 0x9c03 */
+	{ 0x9e, 48 }, /* 0x9e00 */
+	{ 0xa1, 11 }, /* 0xa100 */
+	{ 0xef, 54 }, /* 0xef00 */
+	{ 0xfd, 12 }, /* 0xfd00 */
+	{ 0xff, 1 }, /* 0xff00 */
+	{ 0x00, -1 }
+};
+
+static const error_equivalency ncp_0x1610_errors[] = {
+	{ 0x00, 0 }, /* 0x0000 */
+	{ 0x81, 55 }, /* 0x8100 */
+	{ 0x96, 3 }, /* 0x9600 */
+	{ 0x98, 9 }, /* 0x9804 */
+	{ 0xa1, 11 }, /* 0xa100 */
+	{ 0xff, 1 }, /* 0xff00 */
+	{ 0x00, -1 }
+};
+
+static const error_equivalency ncp_0x1611_errors[] = {
+	{ 0x00, 0 }, /* 0x0000 */
+	{ 0x96, 3 }, /* 0x9600 */
+	{ 0x98, 9 }, /* 0x9804 */
+	{ 0x9b, 10 }, /* 0x9b03 */
+	{ 0x9c, 7 }, /* 0x9c03 */
+	{ 0xa1, 11 }, /* 0xa100 */
+	{ 0xfd, 12 }, /* 0xfd00 */
+	{ 0xff, 1 }, /* 0xff00 */
+	{ 0x00, -1 }
+};
+
+static const error_equivalency ncp_0x1612_errors[] = {
+	{ 0x00, 0 }, /* 0x0000 */
+	{ 0x96, 3 }, /* 0x9600 */
+	{ 0x98, 9 }, /* 0x9804 */
+	{ 0x99, 24 }, /* 0x9900 */
+	{ 0x9b, 6 }, /* 0x9b00 */
+	{ 0x9c, 7 }, /* 0x9c03 */
+	{ 0x9d, 28 }, /* 0x9d00 */
+	{ 0xa1, 11 }, /* 0xa100 */
+	{ 0xfd, 12 }, /* 0xfd00 */
+	{ 0xff, 1 }, /* 0xff00 */
+	{ 0x00, -1 }
+};
+
+static const error_equivalency ncp_0x1613_errors[] = {
+	{ 0x00, 0 }, /* 0x0000 */
+	{ 0x96, 3 }, /* 0x9600 */
+	{ 0x98, 9 }, /* 0x9804 */
+	{ 0x99, 24 }, /* 0x9900 */
+	{ 0x9c, 7 }, /* 0x9c03 */
+	{ 0x9d, 28 }, /* 0x9d00 */
+	{ 0xa1, 11 }, /* 0xa100 */
+	{ 0xfd, 12 }, /* 0xfd00 */
+	{ 0xff, 1 }, /* 0xff00 */
+	{ 0x00, -1 }
+};
+
+static const error_equivalency ncp_0x1614_errors[] = {
+	{ 0x00, 0 }, /* 0x0000 */
+	{ 0x9b, 10 }, /* 0x9b03 */
+	{ 0x00, -1 }
+};
+
+static const error_equivalency ncp_0x1617_errors[] = {
+	{ 0x00, 0 }, /* 0x0000 */
+	{ 0x96, 3 }, /* 0x9600 */
+	{ 0x9b, 10 }, /* 0x9b03 */
+	{ 0x00, -1 }
+};
+
+static const error_equivalency ncp_0x1618_errors[] = {
+	{ 0x00, 0 }, /* 0x0000 */
+	{ 0x96, 3 }, /* 0x9600 */
+	{ 0x98, 9 }, /* 0x9804 */
+	{ 0x9b, 10 }, /* 0x9b03 */
+	{ 0x9c, 46 }, /* 0x9c00 */
+	{ 0x9d, 28 }, /* 0x9d00 */
+	{ 0xa1, 11 }, /* 0xa100 */
+	{ 0xfd, 12 }, /* 0xfd00 */
+	{ 0xff, 1 }, /* 0xff00 */
+	{ 0x00, -1 }
+};
+
+static const error_equivalency ncp_0x1619_errors[] = {
+	{ 0x00, 0 }, /* 0x0000 */
+	{ 0x8c, 47 }, /* 0x8c00 */
+	{ 0x96, 3 }, /* 0x9600 */
+	{ 0x98, 9 }, /* 0x9804 */
+	{ 0x9b, 10 }, /* 0x9b03 */
+	{ 0x9c, 46 }, /* 0x9c00 */
+	{ 0xa1, 11 }, /* 0xa100 */
+	{ 0xff, 56 }, /* 0xff16 */
+	{ 0x00, -1 }
+};
+
+static const error_equivalency ncp_0x161a_errors[] = {
+	{ 0x00, 0 }, /* 0x0000 */
+	{ 0x98, 9 }, /* 0x9804 */
+	{ 0x9c, 46 }, /* 0x9c00 */
+	{ 0xa1, 11 }, /* 0xa100 */
+	{ 0x00, -1 }
+};
+
+static const error_equivalency ncp_0x161b_errors[] = {
+	{ 0x00, 0 }, /* 0x0000 */
+	{ 0xfb, 57 }, /* 0xfb01 */
+	{ 0xff, 58 }, /* 0xff1d */
+	{ 0x00, -1 }
+};
+
+static const error_equivalency ncp_0x161c_errors[] = {
+	{ 0x00, 0 }, /* 0x0000 */
+	{ 0x84, 59 }, /* 0x8401 */
+	{ 0x9c, 7 }, /* 0x9c03 */
+	{ 0xfe, 60 }, /* 0xfe02 */
+	{ 0x00, -1 }
+};
+
+static const error_equivalency ncp_0x161d_errors[] = {
+	{ 0x00, 0 }, /* 0x0000 */
+	{ 0x85, 61 }, /* 0x8500 */
+	{ 0x9c, 7 }, /* 0x9c03 */
+	{ 0x00, -1 }
+};
+
+static const error_equivalency ncp_0x161f_errors[] = {
+	{ 0x00, 0 }, /* 0x0000 */
+	{ 0x89, 62 }, /* 0x8900 */
+	{ 0xbf, 63 }, /* 0xbf00 */
+	{ 0xfb, 64 }, /* 0xfb00 */
+	{ 0x00, -1 }
+};
+
+static const error_equivalency ncp_0x1620_errors[] = {
+	{ 0x00, 0 }, /* 0x0000 */
+	{ 0x98, 65 }, /* 0x9800 */
+	{ 0x00, -1 }
+};
+
+static const error_equivalency ncp_0x1621_errors[] = {
+	{ 0x00, 0 }, /* 0x0000 */
+	{ 0x8c, 47 }, /* 0x8c00 */
+	{ 0x96, 3 }, /* 0x9600 */
+	{ 0x98, 65 }, /* 0x9800 */
+	{ 0x00, -1 }
+};
+
+static const error_equivalency ncp_0x1622_errors[] = {
+	{ 0x00, 0 }, /* 0x0000 */
+	{ 0x8c, 47 }, /* 0x8c00 */
+	{ 0xfe, 66 }, /* 0xfe0e */
+	{ 0x00, -1 }
+};
+
+static const error_equivalency ncp_0x1624_errors[] = {
+	{ 0x00, 0 }, /* 0x0000 */
+	{ 0x01, 67 }, /* 0x0101 */
+	{ 0x8c, 47 }, /* 0x8c00 */
+	{ 0xbf, 63 }, /* 0xbf00 */
+	{ 0x00, -1 }
+};
+
+static const error_equivalency ncp_0x1625_errors[] = {
+	{ 0x00, 0 }, /* 0x0000 */
+	{ 0x01, 68 }, /* 0x0106 */
+	{ 0x8c, 47 }, /* 0x8c00 */
+	{ 0xbf, 63 }, /* 0xbf00 */
+	{ 0x00, -1 }
+};
+
+static const error_equivalency ncp_0x1626_errors[] = {
+	{ 0x00, 0 }, /* 0x0000 */
+	{ 0x98, 65 }, /* 0x9800 */
+	{ 0x9b, 6 }, /* 0x9b00 */
+	{ 0x9c, 46 }, /* 0x9c00 */
+	{ 0x00, -1 }
+};
+
+static const error_equivalency ncp_0x1627_errors[] = {
+	{ 0x00, 0 }, /* 0x0000 */
+	{ 0x90, 69 }, /* 0x9000 */
+	{ 0x00, -1 }
+};
+
+static const error_equivalency ncp_0x1628_errors[] = {
+	{ 0x00, 0 }, /* 0x0000 */
+	{ 0x89, 62 }, /* 0x8900 */
+	{ 0x9c, 7 }, /* 0x9c03 */
+	{ 0xfb, 57 }, /* 0xfb01 */
+	{ 0xff, 1 }, /* 0xff00 */
+	{ 0x00, -1 }
+};
+
+static const error_equivalency ncp_0x1629_errors[] = {
+	{ 0x00, 0 }, /* 0x0000 */
+	{ 0x98, 70 }, /* 0x9802 */
+	{ 0x00, -1 }
+};
+
+static const error_equivalency ncp_0x162a_errors[] = {
+	{ 0x00, 0 }, /* 0x0000 */
+	{ 0x98, 9 }, /* 0x9804 */
+	{ 0x9c, 7 }, /* 0x9c03 */
+	{ 0x00, -1 }
+};
+
+static const error_equivalency ncp_0x162b_errors[] = {
+	{ 0x00, 0 }, /* 0x0000 */
+	{ 0x90, 71 }, /* 0x9002 */
+	{ 0x9c, 7 }, /* 0x9c03 */
+	{ 0xfe, 72 }, /* 0xfe0f */
+	{ 0xff, 73 }, /* 0xff09 */
+	{ 0x00, -1 }
+};
+
+static const error_equivalency ncp_0x162e_errors[] = {
+	{ 0x00, 0 }, /* 0x0000 */
+	{ 0x01, 74 }, /* 0x0102 */
+	{ 0x87, 16 }, /* 0x8701 */
+	{ 0x8b, 52 }, /* 0x8b00 */
+	{ 0x8d, 18 }, /* 0x8d00 */
+	{ 0x8e, 19 }, /* 0x8e00 */
+	{ 0x8f, 20 }, /* 0x8f00 */
+	{ 0x90, 21 }, /* 0x9001 */
+	{ 0x91, 75 }, /* 0x9101 */
+	{ 0x92, 76 }, /* 0x9201 */
+	{ 0x9a, 77 }, /* 0x9a00 */
+	{ 0x9b, 10 }, /* 0x9b03 */
+	{ 0x9c, 7 }, /* 0x9c03 */
+	{ 0xa4, 78 }, /* 0xa400 */
+	{ 0xff, 79 }, /* 0xff17 */
+	{ 0x00, -1 }
+};
+
+static const error_equivalency ncp_0x162f_errors[] = {
+	{ 0x00, 0 }, /* 0x0000 */
+	{ 0x98, 70 }, /* 0x9802 */
+	{ 0xff, 1 }, /* 0xff00 */
+	{ 0x00, -1 }
+};
+
+static const error_equivalency ncp_0x1630_errors[] = {
+	{ 0x00, 0 }, /* 0x0000 */
+	{ 0x89, 62 }, /* 0x8900 */
+	{ 0x98, 70 }, /* 0x9802 */
+	{ 0xbf, 63 }, /* 0xbf00 */
+	{ 0x00, -1 }
+};
+
+static const error_equivalency ncp_0x1631_errors[] = {
+	{ 0x00, 0 }, /* 0x0000 */
+	{ 0x80, 14 }, /* 0x8000 */
+	{ 0x82, 2 }, /* 0x8200 */
+	{ 0x90, 71 }, /* 0x9002 */
+	{ 0xbe, 80 }, /* 0xbe00 */
+	{ 0xff, 1 }, /* 0xff00 */
+	{ 0x00, -1 }
+};
+
+static const error_equivalency ncp_0x1632_errors[] = {
+	{ 0x00, 0 }, /* 0x0000 */
+	{ 0x7e, 81 }, /* 0x7e01 */
+	{ 0x9b, 6 }, /* 0x9b00 */
+	{ 0x9c, 7 }, /* 0x9c03 */
+	{ 0x00, -1 }
+};
+
+static const error_equivalency ncp_0x1633_errors[] = {
+	{ 0x00, 0 }, /* 0x0000 */
+	{ 0x7e, 81 }, /* 0x7e01 */
+	{ 0x98, 9 }, /* 0x9804 */
+	{ 0xfb, 82 }, /* 0xfb08 */
+	{ 0xff, 1 }, /* 0xff00 */
+	{ 0x00, -1 }
+};
+
+static const error_equivalency ncp_0x1700_errors[] = {
+	{ 0x00, 0 }, /* 0x0000 */
+	{ 0x96, 83 }, /* 0x9602 */
+	{ 0xc1, 84 }, /* 0xc101 */
+	{ 0xc2, 85 }, /* 0xc200 */
+	{ 0xc5, 86 }, /* 0xc501 */
+	{ 0xd7, 87 }, /* 0xd700 */
+	{ 0xd9, 88 }, /* 0xd900 */
+	{ 0xda, 89 }, /* 0xda00 */
+	{ 0xdb, 90 }, /* 0xdb00 */
+	{ 0xde, 91 }, /* 0xde00 */
+	{ 0xdf, 92 }, /* 0xdf00 */
+	{ 0xe8, 35 }, /* 0xe800 */
+	{ 0xec, 38 }, /* 0xec00 */
+	{ 0xed, 93 }, /* 0xed00 */
+	{ 0xef, 54 }, /* 0xef00 */
+	{ 0xf0, 94 }, /* 0xf001 */
+	{ 0xf1, 95 }, /* 0xf100 */
+	{ 0xf2, 96 }, /* 0xf200 */
+	{ 0xf6, 97 }, /* 0xf600 */
+	{ 0xfb, 64 }, /* 0xfb00 */
+	{ 0xfc, 39 }, /* 0xfc06 */
+	{ 0xfe, 40 }, /* 0xfe07 */
+	{ 0xff, 1 }, /* 0xff00 */
+	{ 0x00, -1 }
+};
+
+static const error_equivalency ncp_0x1701_errors[] = {
+	{ 0x00, 0 }, /* 0x0000 */
+	{ 0x96, 3 }, /* 0x9600 */
+	{ 0xd6, 98 }, /* 0xd600 */
+	{ 0xf0, 94 }, /* 0xf001 */
+	{ 0xf1, 99 }, /* 0xf101 */
+	{ 0xf5, 100 }, /* 0xf501 */
+	{ 0xfc, 39 }, /* 0xfc06 */
+	{ 0xfe, 40 }, /* 0xfe07 */
+	{ 0xff, 1 }, /* 0xff00 */
+	{ 0x00, -1 }
+};
+
+static const error_equivalency ncp_0x1702_errors[] = {
+	{ 0x00, 0 }, /* 0x0000 */
+	{ 0x96, 3 }, /* 0x9600 */
+	{ 0xf0, 94 }, /* 0xf001 */
+	{ 0xfc, 39 }, /* 0xfc06 */
+	{ 0xfe, 40 }, /* 0xfe07 */
+	{ 0xff, 1 }, /* 0xff00 */
+	{ 0x00, -1 }
+};
+
+static const error_equivalency ncp_0x1705_errors[] = {
+	{ 0x00, 0 }, /* 0x0000 */
+	{ 0x96, 83 }, /* 0x9602 */
+	{ 0xfc, 39 }, /* 0xfc06 */
+	{ 0xfd, 12 }, /* 0xfd00 */
+	{ 0xfe, 40 }, /* 0xfe07 */
+	{ 0xff, 1 }, /* 0xff00 */
+	{ 0x00, -1 }
+};
+
+static const error_equivalency ncp_0x1707_errors[] = {
+	{ 0x00, 0 }, /* 0x0000 */
+	{ 0x96, 83 }, /* 0x9602 */
+	{ 0xf1, 99 }, /* 0xf101 */
+	{ 0xfc, 39 }, /* 0xfc06 */
+	{ 0xfe, 40 }, /* 0xfe07 */
+	{ 0xff, 1 }, /* 0xff00 */
+	{ 0x00, -1 }
+};
+
+static const error_equivalency ncp_0x170d_errors[] = {
+	{ 0x00, 0 }, /* 0x0000 */
+	{ 0x80, 14 }, /* 0x8000 */
+	{ 0x81, 55 }, /* 0x8100 */
+	{ 0x88, 17 }, /* 0x8800 */
+	{ 0x8d, 18 }, /* 0x8d00 */
+	{ 0x8e, 19 }, /* 0x8e00 */
+	{ 0x8f, 20 }, /* 0x8f00 */
+	{ 0x90, 21 }, /* 0x9001 */
+	{ 0x94, 22 }, /* 0x9400 */
+	{ 0x96, 3 }, /* 0x9600 */
+	{ 0x98, 9 }, /* 0x9804 */
+	{ 0x99, 24 }, /* 0x9900 */
+	{ 0x9b, 6 }, /* 0x9b00 */
+	{ 0xa1, 11 }, /* 0xa100 */
+	{ 0xa2, 25 }, /* 0xa201 */
+	{ 0xff, 1 }, /* 0xff00 */
+	{ 0x00, -1 }
+};
+
+static const error_equivalency ncp_0x170e_errors[] = {
+	{ 0x00, 0 }, /* 0x0000 */
+	{ 0x96, 3 }, /* 0x9600 */
+	{ 0x98, 9 }, /* 0x9804 */
+	{ 0xa1, 11 }, /* 0xa100 */
+	{ 0xf2, 96 }, /* 0xf200 */
+	{ 0x00, -1 }
+};
+
+static const error_equivalency ncp_0x170f_errors[] = {
+	{ 0x00, 0 }, /* 0x0000 */
+	{ 0x88, 17 }, /* 0x8800 */
+	{ 0x89, 62 }, /* 0x8900 */
+	{ 0x93, 27 }, /* 0x9300 */
+	{ 0x94, 22 }, /* 0x9400 */
+	{ 0x98, 9 }, /* 0x9804 */
+	{ 0x9b, 6 }, /* 0x9b00 */
+	{ 0x9c, 46 }, /* 0x9c00 */
+	{ 0xa1, 11 }, /* 0xa100 */
+	{ 0xfd, 12 }, /* 0xfd00 */
+	{ 0xff, 79 }, /* 0xff17 */
+	{ 0x00, -1 }
+};
+
+static const error_equivalency ncp_0x1710_errors[] = {
+	{ 0x00, 0 }, /* 0x0000 */
+	{ 0x88, 17 }, /* 0x8800 */
+	{ 0x8c, 47 }, /* 0x8c00 */
+	{ 0x8e, 19 }, /* 0x8e00 */
+	{ 0x94, 22 }, /* 0x9400 */
+	{ 0x96, 3 }, /* 0x9600 */
+	{ 0x98, 9 }, /* 0x9804 */
+	{ 0x9b, 10 }, /* 0x9b03 */
+	{ 0x9c, 46 }, /* 0x9c00 */
+	{ 0xa1, 11 }, /* 0xa100 */
+	{ 0xa2, 25 }, /* 0xa201 */
+	{ 0xfc, 39 }, /* 0xfc06 */
+	{ 0xfd, 12 }, /* 0xfd00 */
+	{ 0xfe, 40 }, /* 0xfe07 */
+	{ 0xff, 79 }, /* 0xff17 */
+	{ 0x00, -1 }
+};
+
+static const error_equivalency ncp_0x1711_errors[] = {
+	{ 0x00, 0 }, /* 0x0000 */
+	{ 0x96, 3 }, /* 0x9600 */
+	{ 0x00, -1 }
+};
+
+static const error_equivalency ncp_0x1714_errors[] = {
+	{ 0x00, 0 }, /* 0x0000 */
+	{ 0x96, 83 }, /* 0x9602 */
+	{ 0xc1, 84 }, /* 0xc101 */
+	{ 0xc2, 85 }, /* 0xc200 */
+	{ 0xc5, 86 }, /* 0xc501 */
+	{ 0xd6, 98 }, /* 0xd600 */
+	{ 0xd7, 87 }, /* 0xd700 */
+	{ 0xd9, 88 }, /* 0xd900 */
+	{ 0xda, 89 }, /* 0xda00 */
+	{ 0xdb, 90 }, /* 0xdb00 */
+	{ 0xde, 91 }, /* 0xde00 */
+	{ 0xdf, 92 }, /* 0xdf00 */
+	{ 0xe8, 35 }, /* 0xe800 */
+	{ 0xec, 38 }, /* 0xec00 */
+	{ 0xed, 93 }, /* 0xed00 */
+	{ 0xef, 54 }, /* 0xef00 */
+	{ 0xf0, 94 }, /* 0xf001 */
+	{ 0xf1, 95 }, /* 0xf100 */
+	{ 0xf2, 96 }, /* 0xf200 */
+	{ 0xf6, 97 }, /* 0xf600 */
+	{ 0xfb, 64 }, /* 0xfb00 */
+	{ 0xfc, 39 }, /* 0xfc06 */
+	{ 0xfe, 40 }, /* 0xfe07 */
+	{ 0xff, 1 }, /* 0xff00 */
+	{ 0x00, -1 }
+};
+
+static const error_equivalency ncp_0x1716_errors[] = {
+	{ 0x00, 0 }, /* 0x0000 */
+	{ 0x96, 83 }, /* 0x9602 */
+	{ 0xfb, 44 }, /* 0xfb0a */
+	{ 0xfc, 39 }, /* 0xfc06 */
+	{ 0xfd, 12 }, /* 0xfd00 */
+	{ 0xfe, 40 }, /* 0xfe07 */
+	{ 0xff, 1 }, /* 0xff00 */
+	{ 0x00, -1 }
+};
+
+static const error_equivalency ncp_0x1717_errors[] = {
+	{ 0x00, 0 }, /* 0x0000 */
+	{ 0x96, 83 }, /* 0x9602 */
+	{ 0x00, -1 }
+};
+
+static const error_equivalency ncp_0x1718_errors[] = {
+	{ 0x00, 0 }, /* 0x0000 */
+	{ 0x96, 83 }, /* 0x9602 */
+	{ 0xc1, 84 }, /* 0xc101 */
+	{ 0xc2, 85 }, /* 0xc200 */
+	{ 0xc5, 101 }, /* 0xc500 */
+	{ 0xd9, 102 }, /* 0xd904 */
+	{ 0xda, 89 }, /* 0xda00 */
+	{ 0xdb, 90 }, /* 0xdb00 */
+	{ 0xdc, 103 }, /* 0xdc00 */
+	{ 0xde, 91 }, /* 0xde00 */
+	{ 0xff, 1 }, /* 0xff00 */
+	{ 0x00, -1 }
+};
+
+static const error_equivalency ncp_0x171c_errors[] = {
+	{ 0x00, 0 }, /* 0x0000 */
+	{ 0x96, 83 }, /* 0x9602 */
+	{ 0xfb, 104 }, /* 0xfb02 */
+	{ 0xfc, 39 }, /* 0xfc06 */
+	{ 0xfd, 12 }, /* 0xfd00 */
+	{ 0xfe, 40 }, /* 0xfe07 */
+	{ 0xff, 1 }, /* 0xff00 */
+	{ 0x00, -1 }
+};
+
+static const error_equivalency ncp_0x171d_errors[] = {
+	{ 0x00, 0 }, /* 0x0000 */
+	{ 0x01, 105 }, /* 0x0109 */
+	{ 0x7a, 106 }, /* 0x7a00 */
+	{ 0x7b, 107 }, /* 0x7b00 */
+	{ 0x7c, 108 }, /* 0x7c00 */
+	{ 0xe0, 109 }, /* 0xe000 */
+	{ 0xfb, 110 }, /* 0xfb06 */
+	{ 0xfd, 12 }, /* 0xfd00 */
+	{ 0x00, -1 }
+};
+
+static const error_equivalency ncp_0x171e_errors[] = {
+	{ 0x00, 0 }, /* 0x0000 */
+	{ 0x01, 111 }, /* 0x0107 */
+	{ 0x00, -1 }
+};
+
+static const error_equivalency ncp_0x1720_errors[] = {
+	{ 0x00, 0 }, /* 0x0000 */
+	{ 0x96, 3 }, /* 0x9600 */
+	{ 0xef, 112 }, /* 0xef01 */
+	{ 0xfc, 113 }, /* 0xfc02 */
+	{ 0xfe, 114 }, /* 0xfe01 */
+	{ 0xff, 1 }, /* 0xff00 */
+	{ 0x00, -1 }
+};
+
+static const error_equivalency ncp_0x1732_errors[] = {
+	{ 0x00, 0 }, /* 0x0000 */
+	{ 0x96, 3 }, /* 0x9600 */
+	{ 0xe7, 115 }, /* 0xe700 */
+	{ 0xee, 116 }, /* 0xee00 */
+	{ 0xef, 54 }, /* 0xef00 */
+	{ 0xf1, 99 }, /* 0xf101 */
+	{ 0xf5, 100 }, /* 0xf501 */
+	{ 0xfc, 39 }, /* 0xfc06 */
+	{ 0xfe, 40 }, /* 0xfe07 */
+	{ 0xff, 1 }, /* 0xff00 */
+	{ 0x00, -1 }
+};
+
+static const error_equivalency ncp_0x1733_errors[] = {
+	{ 0x00, 0 }, /* 0x0000 */
+	{ 0x96, 3 }, /* 0x9600 */
+	{ 0xf0, 117 }, /* 0xf000 */
+	{ 0xf2, 96 }, /* 0xf200 */
+	{ 0xf4, 118 }, /* 0xf400 */
+	{ 0xf6, 97 }, /* 0xf600 */
+	{ 0xfb, 64 }, /* 0xfb00 */
+	{ 0xfc, 39 }, /* 0xfc06 */
+	{ 0xfe, 40 }, /* 0xfe07 */
+	{ 0xff, 1 }, /* 0xff00 */
+	{ 0x00, -1 }
+};
+
+static const error_equivalency ncp_0x1734_errors[] = {
+	{ 0x00, 0 }, /* 0x0000 */
+	{ 0x96, 3 }, /* 0x9600 */
+	{ 0xee, 116 }, /* 0xee00 */
+	{ 0xf0, 117 }, /* 0xf000 */
+	{ 0xf3, 119 }, /* 0xf300 */
+	{ 0xfc, 39 }, /* 0xfc06 */
+	{ 0xfe, 40 }, /* 0xfe07 */
+	{ 0xff, 1 }, /* 0xff00 */
+	{ 0x00, -1 }
+};
+
+static const error_equivalency ncp_0x1735_errors[] = {
+	{ 0x00, 0 }, /* 0x0000 */
+	{ 0x96, 3 }, /* 0x9600 */
+	{ 0xef, 112 }, /* 0xef01 */
+	{ 0xf0, 117 }, /* 0xf000 */
+	{ 0xfc, 113 }, /* 0xfc02 */
+	{ 0xfe, 114 }, /* 0xfe01 */
+	{ 0xff, 1 }, /* 0xff00 */
+	{ 0x00, -1 }
+};
+
+static const error_equivalency ncp_0x1736_errors[] = {
+	{ 0x00, 0 }, /* 0x0000 */
+	{ 0x96, 3 }, /* 0x9600 */
+	{ 0xf1, 99 }, /* 0xf101 */
+	{ 0xfc, 113 }, /* 0xfc02 */
+	{ 0xfe, 114 }, /* 0xfe01 */
+	{ 0xff, 1 }, /* 0xff00 */
+	{ 0x00, -1 }
+};
+
+static const error_equivalency ncp_0x1738_errors[] = {
+	{ 0x00, 0 }, /* 0x0000 */
+	{ 0x96, 3 }, /* 0x9600 */
+	{ 0xf0, 117 }, /* 0xf000 */
+	{ 0xf1, 99 }, /* 0xf101 */
+	{ 0xf5, 100 }, /* 0xf501 */
+	{ 0xfc, 113 }, /* 0xfc02 */
+	{ 0xfe, 114 }, /* 0xfe01 */
+	{ 0xff, 1 }, /* 0xff00 */
+	{ 0x00, -1 }
+};
+
+static const error_equivalency ncp_0x1739_errors[] = {
+	{ 0x00, 0 }, /* 0x0000 */
+	{ 0x96, 3 }, /* 0x9600 */
+	{ 0xed, 93 }, /* 0xed00 */
+	{ 0xef, 54 }, /* 0xef00 */
+	{ 0xf0, 117 }, /* 0xf000 */
+	{ 0xf1, 99 }, /* 0xf101 */
+	{ 0xf2, 96 }, /* 0xf200 */
+	{ 0xf6, 97 }, /* 0xf600 */
+	{ 0xf7, 120 }, /* 0xf700 */
+	{ 0xfb, 64 }, /* 0xfb00 */
+	{ 0xfc, 113 }, /* 0xfc02 */
+	{ 0xfe, 114 }, /* 0xfe01 */
+	{ 0xff, 1 }, /* 0xff00 */
+	{ 0x00, -1 }
+};
+
+static const error_equivalency ncp_0x173a_errors[] = {
+	{ 0x00, 0 }, /* 0x0000 */
+	{ 0x96, 3 }, /* 0x9600 */
+	{ 0xf0, 117 }, /* 0xf000 */
+	{ 0xf1, 99 }, /* 0xf101 */
+	{ 0xf6, 97 }, /* 0xf600 */
+	{ 0xfb, 64 }, /* 0xfb00 */
+	{ 0xfc, 113 }, /* 0xfc02 */
+	{ 0xfe, 114 }, /* 0xfe01 */
+	{ 0xff, 1 }, /* 0xff00 */
+	{ 0x00, -1 }
+};
+
+static const error_equivalency ncp_0x173b_errors[] = {
+	{ 0x00, 0 }, /* 0x0000 */
+	{ 0x96, 3 }, /* 0x9600 */
+	{ 0xf0, 117 }, /* 0xf000 */
+	{ 0xf1, 99 }, /* 0xf101 */
+	{ 0xf2, 96 }, /* 0xf200 */
+	{ 0xf6, 97 }, /* 0xf600 */
+	{ 0xfb, 64 }, /* 0xfb00 */
+	{ 0xfc, 113 }, /* 0xfc02 */
+	{ 0xfe, 114 }, /* 0xfe01 */
+	{ 0xff, 1 }, /* 0xff00 */
+	{ 0x00, -1 }
+};
+
+static const error_equivalency ncp_0x173d_errors[] = {
+	{ 0x00, 0 }, /* 0x0000 */
+	{ 0x88, 17 }, /* 0x8800 */
+	{ 0x93, 27 }, /* 0x9300 */
+	{ 0x96, 3 }, /* 0x9600 */
+	{ 0xec, 121 }, /* 0xec01 */
+	{ 0xf0, 117 }, /* 0xf000 */
+	{ 0xf1, 95 }, /* 0xf100 */
+	{ 0xf9, 122 }, /* 0xf900 */
+	{ 0xfb, 104 }, /* 0xfb02 */
+	{ 0xfc, 113 }, /* 0xfc02 */
+	{ 0xfe, 114 }, /* 0xfe01 */
+	{ 0xff, 1 }, /* 0xff00 */
+	{ 0x00, -1 }
+};
+
+static const error_equivalency ncp_0x173e_errors[] = {
+	{ 0x00, 0 }, /* 0x0000 */
+	{ 0x96, 3 }, /* 0x9600 */
+	{ 0xe8, 35 }, /* 0xe800 */
+	{ 0xec, 121 }, /* 0xec01 */
+	{ 0xf0, 117 }, /* 0xf000 */
+	{ 0xf8, 123 }, /* 0xf800 */
+	{ 0xfb, 104 }, /* 0xfb02 */
+	{ 0xfc, 124 }, /* 0xfc03 */
+	{ 0xfe, 114 }, /* 0xfe01 */
+	{ 0xff, 1 }, /* 0xff00 */
+	{ 0x00, -1 }
+};
+
+static const error_equivalency ncp_0x173f_errors[] = {
+	{ 0x00, 0 }, /* 0x0000 */
+	{ 0x96, 3 }, /* 0x9600 */
+	{ 0xe8, 35 }, /* 0xe800 */
+	{ 0xec, 121 }, /* 0xec01 */
+	{ 0xf0, 117 }, /* 0xf000 */
+	{ 0xf1, 99 }, /* 0xf101 */
+	{ 0xfb, 104 }, /* 0xfb02 */
+	{ 0xfc, 124 }, /* 0xfc03 */
+	{ 0xfe, 114 }, /* 0xfe01 */
+	{ 0xff, 1 }, /* 0xff00 */
+	{ 0x00, -1 }
+};
+
+static const error_equivalency ncp_0x1740_errors[] = {
+	{ 0x00, 0 }, /* 0x0000 */
+	{ 0x96, 3 }, /* 0x9600 */
+	{ 0xc5, 86 }, /* 0xc501 */
+	{ 0xd7, 125 }, /* 0xd701 */
+	{ 0xe8, 35 }, /* 0xe800 */
+	{ 0xec, 121 }, /* 0xec01 */
+	{ 0xf0, 94 }, /* 0xf001 */
+	{ 0xf1, 95 }, /* 0xf100 */
+	{ 0xf8, 123 }, /* 0xf800 */
+	{ 0xfb, 104 }, /* 0xfb02 */
+	{ 0xfc, 124 }, /* 0xfc03 */
+	{ 0xfe, 114 }, /* 0xfe01 */
+	{ 0xff, 1 }, /* 0xff00 */
+	{ 0x00, -1 }
+};
+
+static const error_equivalency ncp_0x1741_errors[] = {
+	{ 0x00, 0 }, /* 0x0000 */
+	{ 0x96, 3 }, /* 0x9600 */
+	{ 0xe8, 35 }, /* 0xe800 */
+	{ 0xe9, 126 }, /* 0xe900 */
+	{ 0xea, 36 }, /* 0xea00 */
+	{ 0xeb, 37 }, /* 0xeb00 */
+	{ 0xec, 121 }, /* 0xec01 */
+	{ 0xf0, 117 }, /* 0xf000 */
+	{ 0xf8, 123 }, /* 0xf800 */
+	{ 0xfb, 104 }, /* 0xfb02 */
+	{ 0xfc, 124 }, /* 0xfc03 */
+	{ 0xfe, 114 }, /* 0xfe01 */
+	{ 0xff, 1 }, /* 0xff00 */
+	{ 0x00, -1 }
+};
+
+static const error_equivalency ncp_0x1742_errors[] = {
+	{ 0x00, 0 }, /* 0x0000 */
+	{ 0x96, 3 }, /* 0x9600 */
+	{ 0xeb, 37 }, /* 0xeb00 */
+	{ 0xf0, 117 }, /* 0xf000 */
+	{ 0xf8, 123 }, /* 0xf800 */
+	{ 0xfb, 104 }, /* 0xfb02 */
+	{ 0xfc, 124 }, /* 0xfc03 */
+	{ 0xfe, 114 }, /* 0xfe01 */
+	{ 0xff, 1 }, /* 0xff00 */
+	{ 0x00, -1 }
+};
+
+static const error_equivalency ncp_0x1743_errors[] = {
+	{ 0x00, 0 }, /* 0x0000 */
+	{ 0x96, 3 }, /* 0x9600 */
+	{ 0xea, 36 }, /* 0xea00 */
+	{ 0xeb, 37 }, /* 0xeb00 */
+	{ 0xec, 121 }, /* 0xec01 */
+	{ 0xf0, 117 }, /* 0xf000 */
+	{ 0xfb, 104 }, /* 0xfb02 */
+	{ 0xfc, 124 }, /* 0xfc03 */
+	{ 0xfe, 114 }, /* 0xfe01 */
+	{ 0xff, 1 }, /* 0xff00 */
+	{ 0x00, -1 }
+};
+
+static const error_equivalency ncp_0x1747_errors[] = {
+	{ 0x00, 0 }, /* 0x0000 */
+	{ 0x93, 27 }, /* 0x9300 */
+	{ 0x96, 3 }, /* 0x9600 */
+	{ 0xa1, 11 }, /* 0xa100 */
+	{ 0xf0, 117 }, /* 0xf000 */
+	{ 0xf1, 95 }, /* 0xf100 */
+	{ 0xf2, 96 }, /* 0xf200 */
+	{ 0xfc, 113 }, /* 0xfc02 */
+	{ 0xfe, 114 }, /* 0xfe01 */
+	{ 0xff, 1 }, /* 0xff00 */
+	{ 0x00, -1 }
+};
+
+static const error_equivalency ncp_0x1749_errors[] = {
+	{ 0x00, 127 }, /* 0x0003 */
+	{ 0xff, 128 }, /* 0xff1e */
+	{ 0x00, -1 }
+};
+
+static const error_equivalency ncp_0x174a_errors[] = {
+	{ 0x00, 0 }, /* 0x0000 */
+	{ 0xc5, 101 }, /* 0xc500 */
+	{ 0xfe, 114 }, /* 0xfe01 */
+	{ 0xff, 129 }, /* 0xff0c */
+	{ 0x00, -1 }
+};
+
+static const error_equivalency ncp_0x174c_errors[] = {
+	{ 0x00, 0 }, /* 0x0000 */
+	{ 0xf0, 117 }, /* 0xf000 */
+	{ 0xf2, 96 }, /* 0xf200 */
+	{ 0xfe, 114 }, /* 0xfe01 */
+	{ 0xff, 1 }, /* 0xff00 */
+	{ 0x00, -1 }
+};
+
+static const error_equivalency ncp_0x1764_errors[] = {
+	{ 0x00, 0 }, /* 0x0000 */
+	{ 0x96, 3 }, /* 0x9600 */
+	{ 0x99, 24 }, /* 0x9900 */
+	{ 0xd0, 29 }, /* 0xd000 */
+	{ 0xd1, 30 }, /* 0xd100 */
+	{ 0xd2, 130 }, /* 0xd200 */
+	{ 0xd3, 32 }, /* 0xd300 */
+	{ 0xd4, 33 }, /* 0xd400 */
+	{ 0xd5, 131 }, /* 0xd500 */
+	{ 0xd6, 132 }, /* 0xd601 */
+	{ 0xd7, 133 }, /* 0xd703 */
+	{ 0xd8, 134 }, /* 0xd800 */
+	{ 0xd9, 135 }, /* 0xd902 */
+	{ 0xda, 34 }, /* 0xda01 */
+	{ 0xdb, 136 }, /* 0xdb02 */
+	{ 0xee, 116 }, /* 0xee00 */
+	{ 0xff, 1 }, /* 0xff00 */
+	{ 0x00, -1 }
+};
+
+static const error_equivalency ncp_0x1765_errors[] = {
+	{ 0x00, 0 }, /* 0x0000 */
+	{ 0x99, 24 }, /* 0x9900 */
+	{ 0xd0, 29 }, /* 0xd000 */
+	{ 0xd1, 30 }, /* 0xd100 */
+	{ 0xd2, 130 }, /* 0xd200 */
+	{ 0xd3, 32 }, /* 0xd300 */
+	{ 0xd4, 33 }, /* 0xd400 */
+	{ 0xd5, 131 }, /* 0xd500 */
+	{ 0xd6, 132 }, /* 0xd601 */
+	{ 0xd7, 133 }, /* 0xd703 */
+	{ 0xd8, 134 }, /* 0xd800 */
+	{ 0xd9, 135 }, /* 0xd902 */
+	{ 0xda, 34 }, /* 0xda01 */
+	{ 0xdb, 136 }, /* 0xdb02 */
+	{ 0xff, 1 }, /* 0xff00 */
+	{ 0x00, -1 }
+};
+
+static const error_equivalency ncp_0x1767_errors[] = {
+	{ 0x00, 0 }, /* 0x0000 */
+	{ 0x99, 24 }, /* 0x9900 */
+	{ 0xd0, 29 }, /* 0xd000 */
+	{ 0xd1, 30 }, /* 0xd100 */
+	{ 0xd2, 130 }, /* 0xd200 */
+	{ 0xd3, 32 }, /* 0xd300 */
+	{ 0xd4, 33 }, /* 0xd400 */
+	{ 0xd5, 131 }, /* 0xd500 */
+	{ 0xd6, 132 }, /* 0xd601 */
+	{ 0xd7, 133 }, /* 0xd703 */
+	{ 0xd8, 134 }, /* 0xd800 */
+	{ 0xd9, 135 }, /* 0xd902 */
+	{ 0xda, 34 }, /* 0xda01 */
+	{ 0xdb, 136 }, /* 0xdb02 */
+	{ 0xfc, 137 }, /* 0xfc07 */
+	{ 0xff, 1 }, /* 0xff00 */
+	{ 0x00, -1 }
+};
+
+static const error_equivalency ncp_0x176d_errors[] = {
+	{ 0x00, 0 }, /* 0x0000 */
+	{ 0x99, 24 }, /* 0x9900 */
+	{ 0xd0, 29 }, /* 0xd000 */
+	{ 0xd1, 30 }, /* 0xd100 */
+	{ 0xd2, 130 }, /* 0xd200 */
+	{ 0xd3, 32 }, /* 0xd300 */
+	{ 0xd4, 33 }, /* 0xd400 */
+	{ 0xd5, 131 }, /* 0xd500 */
+	{ 0xd6, 132 }, /* 0xd601 */
+	{ 0xd7, 133 }, /* 0xd703 */
+	{ 0xd8, 134 }, /* 0xd800 */
+	{ 0xd9, 135 }, /* 0xd902 */
+	{ 0xda, 34 }, /* 0xda01 */
+	{ 0xdb, 136 }, /* 0xdb02 */
+	{ 0xff, 138 }, /* 0xff18 */
+	{ 0x00, -1 }
+};
+
+static const error_equivalency ncp_0x176e_errors[] = {
+	{ 0x00, 0 }, /* 0x0000 */
+	{ 0x96, 3 }, /* 0x9600 */
+	{ 0xd0, 29 }, /* 0xd000 */
+	{ 0xd1, 30 }, /* 0xd100 */
+	{ 0xd5, 131 }, /* 0xd500 */
+	{ 0xd6, 132 }, /* 0xd601 */
+	{ 0xfe, 40 }, /* 0xfe07 */
+	{ 0xff, 139 }, /* 0xff1f */
+	{ 0x00, -1 }
+};
+
+static const error_equivalency ncp_0x176f_errors[] = {
+	{ 0x00, 0 }, /* 0x0000 */
+	{ 0x99, 24 }, /* 0x9900 */
+	{ 0xd0, 29 }, /* 0xd000 */
+	{ 0xd1, 30 }, /* 0xd100 */
+	{ 0xd2, 130 }, /* 0xd200 */
+	{ 0xd3, 32 }, /* 0xd300 */
+	{ 0xd4, 33 }, /* 0xd400 */
+	{ 0xd5, 131 }, /* 0xd500 */
+	{ 0xd6, 132 }, /* 0xd601 */
+	{ 0xd7, 133 }, /* 0xd703 */
+	{ 0xd8, 134 }, /* 0xd800 */
+	{ 0xd9, 135 }, /* 0xd902 */
+	{ 0xda, 34 }, /* 0xda01 */
+	{ 0xdb, 136 }, /* 0xdb02 */
+	{ 0xea, 36 }, /* 0xea00 */
+	{ 0xfc, 39 }, /* 0xfc06 */
+	{ 0xff, 1 }, /* 0xff00 */
+	{ 0x00, -1 }
+};
+
+static const error_equivalency ncp_0x1788_errors[] = {
+	{ 0x00, 0 }, /* 0x0000 */
+	{ 0x7e, 81 }, /* 0x7e01 */
+	{ 0xfc, 39 }, /* 0xfc06 */
+	{ 0x00, -1 }
+};
+
+static const error_equivalency ncp_0x1796_errors[] = {
+	{ 0x00, 0 }, /* 0x0000 */
+	{ 0x96, 3 }, /* 0x9600 */
+	{ 0xc0, 140 }, /* 0xc000 */
+	{ 0xc1, 84 }, /* 0xc101 */
+	{ 0xc4, 141 }, /* 0xc400 */
+	{ 0xe8, 35 }, /* 0xe800 */
+	{ 0xea, 36 }, /* 0xea00 */
+	{ 0xeb, 37 }, /* 0xeb00 */
+	{ 0xec, 38 }, /* 0xec00 */
+	{ 0xfc, 39 }, /* 0xfc06 */
+	{ 0xfe, 40 }, /* 0xfe07 */
+	{ 0xff, 1 }, /* 0xff00 */
+	{ 0x00, -1 }
+};
+
+static const error_equivalency ncp_0x1797_errors[] = {
+	{ 0x00, 0 }, /* 0x0000 */
+	{ 0x01, 74 }, /* 0x0102 */
+	{ 0x88, 17 }, /* 0x8800 */
+	{ 0x94, 22 }, /* 0x9400 */
+	{ 0x96, 3 }, /* 0x9600 */
+	{ 0xa2, 25 }, /* 0xa201 */
+	{ 0xc0, 140 }, /* 0xc000 */
+	{ 0xc1, 84 }, /* 0xc101 */
+	{ 0xc2, 85 }, /* 0xc200 */
+	{ 0xc4, 141 }, /* 0xc400 */
+	{ 0xe8, 35 }, /* 0xe800 */
+	{ 0xea, 36 }, /* 0xea00 */
+	{ 0xeb, 37 }, /* 0xeb00 */
+	{ 0xec, 38 }, /* 0xec00 */
+	{ 0xfe, 40 }, /* 0xfe07 */
+	{ 0xff, 1 }, /* 0xff00 */
+	{ 0x00, -1 }
+};
+
+static const error_equivalency ncp_0x1799_errors[] = {
+	{ 0x00, 0 }, /* 0x0000 */
+	{ 0x01, 74 }, /* 0x0102 */
+	{ 0x96, 3 }, /* 0x9600 */
+	{ 0xc0, 140 }, /* 0xc000 */
+	{ 0xc1, 84 }, /* 0xc101 */
+	{ 0xc4, 141 }, /* 0xc400 */
+	{ 0xe8, 35 }, /* 0xe800 */
+	{ 0xea, 36 }, /* 0xea00 */
+	{ 0xeb, 37 }, /* 0xeb00 */
+	{ 0xec, 38 }, /* 0xec00 */
+	{ 0xf0, 117 }, /* 0xf000 */
+	{ 0xfc, 39 }, /* 0xfc06 */
+	{ 0xff, 1 }, /* 0xff00 */
+	{ 0x00, -1 }
+};
+
+static const error_equivalency ncp_0x17c8_errors[] = {
+	{ 0x00, 0 }, /* 0x0000 */
+	{ 0xc6, 142 }, /* 0xc601 */
+	{ 0x00, -1 }
+};
+
+static const error_equivalency ncp_0x17cd_errors[] = {
+	{ 0x00, 0 }, /* 0x0000 */
+	{ 0x96, 3 }, /* 0x9600 */
+	{ 0xfb, 57 }, /* 0xfb01 */
+	{ 0x00, -1 }
+};
+
+static const error_equivalency ncp_0x17d1_errors[] = {
+	{ 0x00, 0 }, /* 0x0000 */
+	{ 0xc6, 142 }, /* 0xc601 */
+	{ 0xfd, 12 }, /* 0xfd00 */
+	{ 0x00, -1 }
+};
+
+static const error_equivalency ncp_0x17d3_errors[] = {
+	{ 0x00, 0 }, /* 0x0000 */
+	{ 0xc6, 142 }, /* 0xc601 */
+	{ 0xff, 1 }, /* 0xff00 */
+	{ 0x00, -1 }
+};
+
+static const error_equivalency ncp_0x17d4_errors[] = {
+	{ 0x00, 0 }, /* 0x0000 */
+	{ 0x96, 3 }, /* 0x9600 */
+	{ 0xc6, 142 }, /* 0xc601 */
+	{ 0xff, 1 }, /* 0xff00 */
+	{ 0x00, -1 }
+};
+
+static const error_equivalency ncp_0x17dd_errors[] = {
+	{ 0x00, 0 }, /* 0x0000 */
+	{ 0x96, 3 }, /* 0x9600 */
+	{ 0xc6, 142 }, /* 0xc601 */
+	{ 0xfd, 12 }, /* 0xfd00 */
+	{ 0xff, 1 }, /* 0xff00 */
+	{ 0x00, -1 }
+};
+
+static const error_equivalency ncp_0x17f3_errors[] = {
+	{ 0x00, 0 }, /* 0x0000 */
+	{ 0x96, 3 }, /* 0x9600 */
+	{ 0x9c, 46 }, /* 0x9c00 */
+	{ 0xc6, 142 }, /* 0xc601 */
+	{ 0xfd, 12 }, /* 0xfd00 */
+	{ 0xff, 1 }, /* 0xff00 */
+	{ 0x00, -1 }
+};
+
+static const error_equivalency ncp_0x1a_errors[] = {
+	{ 0x00, 0 }, /* 0x0000 */
+	{ 0x88, 17 }, /* 0x8800 */
+	{ 0x96, 3 }, /* 0x9600 */
+	{ 0xfd, 143 }, /* 0xfd02 */
+	{ 0xfe, 144 }, /* 0xfe04 */
+	{ 0xff, 5 }, /* 0xff01 */
+	{ 0x00, -1 }
+};
+
+static const error_equivalency ncp_0x1c_errors[] = {
+	{ 0x00, 0 }, /* 0x0000 */
+	{ 0x88, 17 }, /* 0x8800 */
+	{ 0x96, 3 }, /* 0x9600 */
+	{ 0xfd, 143 }, /* 0xfd02 */
+	{ 0xfe, 144 }, /* 0xfe04 */
+	{ 0xff, 145 }, /* 0xff03 */
+	{ 0x00, -1 }
+};
+
+static const error_equivalency ncp_0x2000_errors[] = {
+	{ 0x00, 0 }, /* 0x0000 */
+	{ 0x96, 3 }, /* 0x9600 */
+	{ 0xff, 5 }, /* 0xff01 */
+	{ 0x00, -1 }
+};
+
+static const error_equivalency ncp_0x2200_errors[] = {
+	{ 0x00, 146 }, /* 0x0001 */
+	{ 0xfd, 147 }, /* 0xfd03 */
+	{ 0xff, 148 }, /* 0xff12 */
+	{ 0x00, -1 }
+};
+
+static const error_equivalency ncp_0x2202_errors[] = {
+	{ 0x00, 0 }, /* 0x0000 */
+	{ 0xff, 5 }, /* 0xff01 */
+	{ 0x00, -1 }
+};
+
+static const error_equivalency ncp_0x2203_errors[] = {
+	{ 0x00, 0 }, /* 0x0000 */
+	{ 0xfd, 147 }, /* 0xfd03 */
+	{ 0xfe, 149 }, /* 0xfe0b */
+	{ 0xff, 5 }, /* 0xff01 */
+	{ 0x00, -1 }
+};
+
+static const error_equivalency ncp_0x2301_errors[] = {
+	{ 0x00, 0 }, /* 0x0000 */
+	{ 0x83, 150 }, /* 0x8301 */
+	{ 0x84, 43 }, /* 0x8400 */
+	{ 0x88, 17 }, /* 0x8800 */
+	{ 0x93, 27 }, /* 0x9300 */
+	{ 0x96, 3 }, /* 0x9600 */
+	{ 0x98, 9 }, /* 0x9804 */
+	{ 0x99, 24 }, /* 0x9900 */
+	{ 0x9c, 7 }, /* 0x9c03 */
+	{ 0x9e, 151 }, /* 0x9e02 */
+	{ 0xa1, 11 }, /* 0xa100 */
+	{ 0xa2, 25 }, /* 0xa201 */
+	{ 0xfd, 12 }, /* 0xfd00 */
+	{ 0xff, 138 }, /* 0xff18 */
+	{ 0x00, -1 }
+};
+
+static const error_equivalency ncp_0x2302_errors[] = {
+	{ 0x00, 0 }, /* 0x0000 */
+	{ 0x80, 14 }, /* 0x8000 */
+	{ 0x81, 15 }, /* 0x8101 */
+	{ 0x83, 150 }, /* 0x8301 */
+	{ 0x84, 43 }, /* 0x8400 */
+	{ 0x87, 16 }, /* 0x8701 */
+	{ 0x88, 17 }, /* 0x8800 */
+	{ 0x8a, 49 }, /* 0x8a00 */
+	{ 0x8d, 18 }, /* 0x8d00 */
+	{ 0x8e, 19 }, /* 0x8e00 */
+	{ 0x8f, 20 }, /* 0x8f00 */
+	{ 0x93, 27 }, /* 0x9300 */
+	{ 0x96, 3 }, /* 0x9600 */
+	{ 0x98, 9 }, /* 0x9804 */
+	{ 0x99, 24 }, /* 0x9900 */
+	{ 0x9b, 10 }, /* 0x9b03 */
+	{ 0x9c, 7 }, /* 0x9c03 */
+	{ 0x9e, 151 }, /* 0x9e02 */
+	{ 0xa1, 11 }, /* 0xa100 */
+	{ 0xa2, 25 }, /* 0xa201 */
+	{ 0xfd, 12 }, /* 0xfd00 */
+	{ 0xff, 138 }, /* 0xff18 */
+	{ 0x00, -1 }
+};
+
+static const error_equivalency ncp_0x2303_errors[] = {
+	{ 0x00, 0 }, /* 0x0000 */
+	{ 0x83, 150 }, /* 0x8301 */
+	{ 0x88, 17 }, /* 0x8800 */
+	{ 0x8a, 49 }, /* 0x8a00 */
+	{ 0x8d, 18 }, /* 0x8d00 */
+	{ 0x8e, 19 }, /* 0x8e00 */
+	{ 0x8f, 20 }, /* 0x8f00 */
+	{ 0x90, 69 }, /* 0x9000 */
+	{ 0x93, 27 }, /* 0x9300 */
+	{ 0x96, 3 }, /* 0x9600 */
+	{ 0x98, 9 }, /* 0x9804 */
+	{ 0x9b, 10 }, /* 0x9b03 */
+	{ 0x9c, 7 }, /* 0x9c03 */
+	{ 0x9e, 151 }, /* 0x9e02 */
+	{ 0xa0, 51 }, /* 0xa000 */
+	{ 0xa1, 11 }, /* 0xa100 */
+	{ 0xa2, 25 }, /* 0xa201 */
+	{ 0xfd, 12 }, /* 0xfd00 */
+	{ 0xff, 26 }, /* 0xff19 */
+	{ 0x00, -1 }
+};
+
+static const error_equivalency ncp_0x2304_errors[] = {
+	{ 0x00, 0 }, /* 0x0000 */
+	{ 0x83, 150 }, /* 0x8301 */
+	{ 0x88, 17 }, /* 0x8800 */
+	{ 0x93, 27 }, /* 0x9300 */
+	{ 0x96, 3 }, /* 0x9600 */
+	{ 0x98, 9 }, /* 0x9804 */
+	{ 0x9c, 7 }, /* 0x9c03 */
+	{ 0xa1, 11 }, /* 0xa100 */
+	{ 0xa2, 25 }, /* 0xa201 */
+	{ 0xfd, 12 }, /* 0xfd00 */
+	{ 0xff, 26 }, /* 0xff19 */
+	{ 0x00, -1 }
+};
+
+static const error_equivalency ncp_0x2306_errors[] = {
+	{ 0x00, 0 }, /* 0x0000 */
+	{ 0x83, 150 }, /* 0x8301 */
+	{ 0x88, 17 }, /* 0x8800 */
+	{ 0x93, 27 }, /* 0x9300 */
+	{ 0x96, 3 }, /* 0x9600 */
+	{ 0xa2, 25 }, /* 0xa201 */
+	{ 0x00, -1 }
+};
+
+static const error_equivalency ncp_0x2307_errors[] = {
+	{ 0x00, 0 }, /* 0x0000 */
+	{ 0x83, 150 }, /* 0x8301 */
+	{ 0x84, 59 }, /* 0x8401 */
+	{ 0x88, 17 }, /* 0x8800 */
+	{ 0x8b, 52 }, /* 0x8b00 */
+	{ 0x8e, 19 }, /* 0x8e00 */
+	{ 0x90, 21 }, /* 0x9001 */
+	{ 0x92, 76 }, /* 0x9201 */
+	{ 0x93, 27 }, /* 0x9300 */
+	{ 0x96, 3 }, /* 0x9600 */
+	{ 0x98, 9 }, /* 0x9804 */
+	{ 0x99, 24 }, /* 0x9900 */
+	{ 0x9c, 7 }, /* 0x9c03 */
+	{ 0x9e, 48 }, /* 0x9e00 */
+	{ 0xa1, 11 }, /* 0xa100 */
+	{ 0xa2, 25 }, /* 0xa201 */
+	{ 0xfd, 12 }, /* 0xfd00 */
+	{ 0xff, 152 }, /* 0xff0a */
+	{ 0x00, -1 }
+};
+
+static const error_equivalency ncp_0x2308_errors[] = {
+	{ 0x00, 0 }, /* 0x0000 */
+	{ 0x80, 14 }, /* 0x8000 */
+	{ 0x81, 15 }, /* 0x8101 */
+	{ 0x83, 150 }, /* 0x8301 */
+	{ 0x88, 17 }, /* 0x8800 */
+	{ 0x93, 27 }, /* 0x9300 */
+	{ 0x94, 22 }, /* 0x9400 */
+	{ 0x96, 3 }, /* 0x9600 */
+	{ 0x98, 9 }, /* 0x9804 */
+	{ 0x99, 24 }, /* 0x9900 */
+	{ 0x9c, 7 }, /* 0x9c03 */
+	{ 0xa1, 11 }, /* 0xa100 */
+	{ 0xa2, 25 }, /* 0xa201 */
+	{ 0xfd, 12 }, /* 0xfd00 */
+	{ 0xff, 56 }, /* 0xff16 */
+	{ 0x00, -1 }
+};
+
+static const error_equivalency ncp_0x2309_errors[] = {
+	{ 0x00, 0 }, /* 0x0000 */
+	{ 0x01, 13 }, /* 0x0104 */
+	{ 0x83, 150 }, /* 0x8301 */
+	{ 0x88, 17 }, /* 0x8800 */
+	{ 0x93, 27 }, /* 0x9300 */
+	{ 0x94, 22 }, /* 0x9400 */
+	{ 0x95, 23 }, /* 0x9500 */
+	{ 0x96, 3 }, /* 0x9600 */
+	{ 0x98, 9 }, /* 0x9804 */
+	{ 0x9c, 7 }, /* 0x9c03 */
+	{ 0xa1, 11 }, /* 0xa100 */
+	{ 0xa2, 25 }, /* 0xa201 */
+	{ 0xfd, 12 }, /* 0xfd00 */
+	{ 0xff, 56 }, /* 0xff16 */
+	{ 0x00, -1 }
+};
+
+static const error_equivalency ncp_0x230a_errors[] = {
+	{ 0x00, 0 }, /* 0x0000 */
+	{ 0x83, 150 }, /* 0x8301 */
+	{ 0x88, 17 }, /* 0x8800 */
+	{ 0x93, 27 }, /* 0x9300 */
+	{ 0x96, 3 }, /* 0x9600 */
+	{ 0x98, 9 }, /* 0x9804 */
+	{ 0x9c, 7 }, /* 0x9c03 */
+	{ 0xa1, 11 }, /* 0xa100 */
+	{ 0xa2, 25 }, /* 0xa201 */
+	{ 0xfd, 12 }, /* 0xfd00 */
+	{ 0xff, 56 }, /* 0xff16 */
+	{ 0x00, -1 }
+};
+
+static const error_equivalency ncp_0x230b_errors[] = {
+	{ 0x00, 0 }, /* 0x0000 */
+	{ 0x83, 150 }, /* 0x8301 */
+	{ 0x88, 17 }, /* 0x8800 */
+	{ 0x93, 27 }, /* 0x9300 */
+	{ 0x96, 3 }, /* 0x9600 */
+	{ 0x98, 9 }, /* 0x9804 */
+	{ 0x9b, 10 }, /* 0x9b03 */
+	{ 0x9c, 7 }, /* 0x9c03 */
+	{ 0x9d, 28 }, /* 0x9d00 */
+	{ 0xa1, 11 }, /* 0xa100 */
+	{ 0xa2, 25 }, /* 0xa201 */
+	{ 0xfd, 12 }, /* 0xfd00 */
+	{ 0xff, 1 }, /* 0xff00 */
+	{ 0x00, -1 }
+};
+
+static const error_equivalency ncp_0x230c_errors[] = {
+	{ 0x00, 0 }, /* 0x0000 */
+	{ 0x83, 150 }, /* 0x8301 */
+	{ 0x88, 17 }, /* 0x8800 */
+	{ 0x93, 27 }, /* 0x9300 */
+	{ 0x96, 3 }, /* 0x9600 */
+	{ 0x98, 9 }, /* 0x9804 */
+	{ 0x9b, 10 }, /* 0x9b03 */
+	{ 0x9c, 7 }, /* 0x9c03 */
+	{ 0xa1, 11 }, /* 0xa100 */
+	{ 0xa2, 25 }, /* 0xa201 */
+	{ 0xfd, 12 }, /* 0xfd00 */
+	{ 0xff, 1 }, /* 0xff00 */
+	{ 0x00, -1 }
+};
+
+static const error_equivalency ncp_0x230d_errors[] = {
+	{ 0x00, 0 }, /* 0x0000 */
+	{ 0x83, 150 }, /* 0x8301 */
+	{ 0x84, 43 }, /* 0x8400 */
+	{ 0x88, 17 }, /* 0x8800 */
+	{ 0x93, 27 }, /* 0x9300 */
+	{ 0x96, 3 }, /* 0x9600 */
+	{ 0x98, 9 }, /* 0x9804 */
+	{ 0x99, 24 }, /* 0x9900 */
+	{ 0x9c, 7 }, /* 0x9c03 */
+	{ 0x9e, 48 }, /* 0x9e00 */
+	{ 0xa1, 11 }, /* 0xa100 */
+	{ 0xa2, 25 }, /* 0xa201 */
+	{ 0xfd, 12 }, /* 0xfd00 */
+	{ 0xff, 1 }, /* 0xff00 */
+	{ 0x00, -1 }
+};
+
+static const error_equivalency ncp_0x230e_errors[] = {
+	{ 0x00, 0 }, /* 0x0000 */
+	{ 0x80, 14 }, /* 0x8000 */
+	{ 0x81, 15 }, /* 0x8101 */
+	{ 0x83, 150 }, /* 0x8301 */
+	{ 0x84, 43 }, /* 0x8400 */
+	{ 0x87, 16 }, /* 0x8701 */
+	{ 0x88, 17 }, /* 0x8800 */
+	{ 0x8a, 49 }, /* 0x8a00 */
+	{ 0x8d, 18 }, /* 0x8d00 */
+	{ 0x8e, 19 }, /* 0x8e00 */
+	{ 0x8f, 20 }, /* 0x8f00 */
+	{ 0x90, 21 }, /* 0x9001 */
+	{ 0x93, 27 }, /* 0x9300 */
+	{ 0x96, 3 }, /* 0x9600 */
+	{ 0x98, 9 }, /* 0x9804 */
+	{ 0x99, 24 }, /* 0x9900 */
+	{ 0x9b, 10 }, /* 0x9b03 */
+	{ 0x9c, 7 }, /* 0x9c03 */
+	{ 0x9e, 48 }, /* 0x9e00 */
+	{ 0xa1, 11 }, /* 0xa100 */
+	{ 0xa2, 25 }, /* 0xa201 */
+	{ 0xfd, 12 }, /* 0xfd00 */
+	{ 0xff, 1 }, /* 0xff00 */
+	{ 0x00, -1 }
+};
+
+static const error_equivalency ncp_0x2312_errors[] = {
+	{ 0x00, 0 }, /* 0x0000 */
+	{ 0x89, 62 }, /* 0x8900 */
+	{ 0x96, 3 }, /* 0x9600 */
+	{ 0xbf, 63 }, /* 0xbf00 */
+	{ 0x00, -1 }
+};
+
+static const error_equivalency ncp_0x2313_errors[] = {
+	{ 0x00, 0 }, /* 0x0000 */
+	{ 0x9c, 7 }, /* 0x9c03 */
+	{ 0xbf, 63 }, /* 0xbf00 */
+	{ 0x00, -1 }
+};
+
+static const error_equivalency ncp_0x2400_errors[] = {
+	{ 0x00, 0 }, /* 0x0000 */
+	{ 0xfe, 153 }, /* 0xfe00 */
+	{ 0x00, -1 }
+};
+
+static const error_equivalency ncp_0x2402_errors[] = {
+	{ 0x00, 0 }, /* 0x0000 */
+	{ 0xfe, 153 }, /* 0xfe00 */
+	{ 0xff, 154 }, /* 0xff20 */
+	{ 0x00, -1 }
+};
+
+static const error_equivalency ncp_0x25_errors[] = {
+	{ 0x00, 0 }, /* 0x0000 */
+	{ 0xd5, 155 }, /* 0xd504 */
+	{ 0xee, 116 }, /* 0xee00 */
+	{ 0xfe, 153 }, /* 0xfe00 */
+	{ 0x00, -1 }
+};
+
+static const error_equivalency ncp_0x3b_errors[] = {
+	{ 0x00, 0 }, /* 0x0000 */
+	{ 0x88, 17 }, /* 0x8800 */
+	{ 0x98, 9 }, /* 0x9804 */
+	{ 0xff, 1 }, /* 0xff00 */
+	{ 0x00, -1 }
+};
+
+static const error_equivalency ncp_0x3e_errors[] = {
+	{ 0x00, 0 }, /* 0x0000 */
+	{ 0x96, 3 }, /* 0x9600 */
+	{ 0x98, 9 }, /* 0x9804 */
+	{ 0x9b, 10 }, /* 0x9b03 */
+	{ 0x9c, 7 }, /* 0x9c03 */
+	{ 0xa1, 11 }, /* 0xa100 */
+	{ 0xfd, 12 }, /* 0xfd00 */
+	{ 0xff, 56 }, /* 0xff16 */
+	{ 0x00, -1 }
+};
+
+static const error_equivalency ncp_0x3f_errors[] = {
+	{ 0x00, 0 }, /* 0x0000 */
+	{ 0xff, 56 }, /* 0xff16 */
+	{ 0x00, -1 }
+};
+
+static const error_equivalency ncp_0x40_errors[] = {
+	{ 0x00, 0 }, /* 0x0000 */
+	{ 0x89, 62 }, /* 0x8900 */
+	{ 0x96, 3 }, /* 0x9600 */
+	{ 0x98, 9 }, /* 0x9804 */
+	{ 0x9b, 10 }, /* 0x9b03 */
+	{ 0x9c, 7 }, /* 0x9c03 */
+	{ 0xa1, 11 }, /* 0xa100 */
+	{ 0xfd, 12 }, /* 0xfd00 */
+	{ 0xff, 56 }, /* 0xff16 */
+	{ 0x00, -1 }
+};
+
+static const error_equivalency ncp_0x41_errors[] = {
+	{ 0x00, 0 }, /* 0x0000 */
+	{ 0x80, 14 }, /* 0x8000 */
+	{ 0x81, 15 }, /* 0x8101 */
+	{ 0x82, 2 }, /* 0x8200 */
+	{ 0x94, 22 }, /* 0x9400 */
+	{ 0x96, 3 }, /* 0x9600 */
+	{ 0x98, 9 }, /* 0x9804 */
+	{ 0x9c, 7 }, /* 0x9c03 */
+	{ 0xa1, 11 }, /* 0xa100 */
+	{ 0xfd, 12 }, /* 0xfd00 */
+	{ 0xff, 56 }, /* 0xff16 */
+	{ 0x00, -1 }
+};
+
+static const error_equivalency ncp_0x42_errors[] = {
+	{ 0x00, 0 }, /* 0x0000 */
+	{ 0x88, 17 }, /* 0x8800 */
+	{ 0xff, 8 }, /* 0xff1a */
+	{ 0x00, -1 }
+};
+
+static const error_equivalency ncp_0x43_errors[] = {
+	{ 0x00, 0 }, /* 0x0000 */
+	{ 0x80, 14 }, /* 0x8000 */
+	{ 0x81, 15 }, /* 0x8101 */
+	{ 0x84, 59 }, /* 0x8401 */
+	{ 0x85, 156 }, /* 0x8501 */
+	{ 0x87, 16 }, /* 0x8701 */
+	{ 0x8d, 18 }, /* 0x8d00 */
+	{ 0x8f, 20 }, /* 0x8f00 */
+	{ 0x90, 21 }, /* 0x9001 */
+	{ 0x96, 3 }, /* 0x9600 */
+	{ 0x98, 9 }, /* 0x9804 */
+	{ 0x99, 24 }, /* 0x9900 */
+	{ 0x9b, 10 }, /* 0x9b03 */
+	{ 0x9c, 7 }, /* 0x9c03 */
+	{ 0xfd, 12 }, /* 0xfd00 */
+	{ 0xff, 1 }, /* 0xff00 */
+	{ 0x00, -1 }
+};
+
+static const error_equivalency ncp_0x44_errors[] = {
+	{ 0x00, 0 }, /* 0x0000 */
+	{ 0x8a, 49 }, /* 0x8a00 */
+	{ 0x8d, 18 }, /* 0x8d00 */
+	{ 0x8e, 19 }, /* 0x8e00 */
+	{ 0x8f, 20 }, /* 0x8f00 */
+	{ 0x90, 21 }, /* 0x9001 */
+	{ 0x96, 3 }, /* 0x9600 */
+	{ 0x98, 9 }, /* 0x9804 */
+	{ 0x9b, 10 }, /* 0x9b03 */
+	{ 0x9c, 7 }, /* 0x9c03 */
+	{ 0xa1, 11 }, /* 0xa100 */
+	{ 0xfd, 12 }, /* 0xfd00 */
+	{ 0xff, 1 }, /* 0xff00 */
+	{ 0x00, -1 }
+};
+
+static const error_equivalency ncp_0x45_errors[] = {
+	{ 0x00, 0 }, /* 0x0000 */
+	{ 0x87, 16 }, /* 0x8701 */
+	{ 0x8b, 52 }, /* 0x8b00 */
+	{ 0x8d, 18 }, /* 0x8d00 */
+	{ 0x8e, 19 }, /* 0x8e00 */
+	{ 0x8f, 20 }, /* 0x8f00 */
+	{ 0x90, 21 }, /* 0x9001 */
+	{ 0x91, 75 }, /* 0x9101 */
+	{ 0x92, 76 }, /* 0x9201 */
+	{ 0x96, 3 }, /* 0x9600 */
+	{ 0x98, 9 }, /* 0x9804 */
+	{ 0x9a, 77 }, /* 0x9a00 */
+	{ 0x9b, 10 }, /* 0x9b03 */
+	{ 0x9c, 7 }, /* 0x9c03 */
+	{ 0xa1, 11 }, /* 0xa100 */
+	{ 0xfd, 12 }, /* 0xfd00 */
+	{ 0xff, 56 }, /* 0xff16 */
+	{ 0x00, -1 }
+};
+
+static const error_equivalency ncp_0x46_errors[] = {
+	{ 0x00, 0 }, /* 0x0000 */
+	{ 0x8c, 47 }, /* 0x8c00 */
+	{ 0x8d, 18 }, /* 0x8d00 */
+	{ 0x8e, 19 }, /* 0x8e00 */
+	{ 0x96, 3 }, /* 0x9600 */
+	{ 0x98, 9 }, /* 0x9804 */
+	{ 0x9b, 10 }, /* 0x9b03 */
+	{ 0x9c, 7 }, /* 0x9c03 */
+	{ 0xa1, 11 }, /* 0xa100 */
+	{ 0xfd, 12 }, /* 0xfd00 */
+	{ 0xff, 56 }, /* 0xff16 */
+	{ 0x00, -1 }
+};
+
+static const error_equivalency ncp_0x47_errors[] = {
+	{ 0x00, 0 }, /* 0x0000 */
+	{ 0x88, 17 }, /* 0x8800 */
+	{ 0x00, -1 }
+};
+
+static const error_equivalency ncp_0x48_errors[] = {
+	{ 0x00, 0 }, /* 0x0000 */
+	{ 0x83, 157 }, /* 0x8300 */
+	{ 0x88, 17 }, /* 0x8800 */
+	{ 0x93, 27 }, /* 0x9300 */
+	{ 0xff, 158 }, /* 0xff1b */
+	{ 0x00, -1 }
+};
+
+static const error_equivalency ncp_0x49_errors[] = {
+	{ 0x00, 0 }, /* 0x0000 */
+	{ 0x01, 13 }, /* 0x0104 */
+	{ 0x83, 157 }, /* 0x8300 */
+	{ 0x88, 17 }, /* 0x8800 */
+	{ 0x94, 22 }, /* 0x9400 */
+	{ 0x95, 23 }, /* 0x9500 */
+	{ 0xa2, 25 }, /* 0xa201 */
+	{ 0xff, 158 }, /* 0xff1b */
+	{ 0x00, -1 }
+};
+
+static const error_equivalency ncp_0x4a_errors[] = {
+	{ 0x00, 0 }, /* 0x0000 */
+	{ 0x01, 13 }, /* 0x0104 */
+	{ 0x83, 157 }, /* 0x8300 */
+	{ 0x88, 17 }, /* 0x8800 */
+	{ 0x93, 27 }, /* 0x9300 */
+	{ 0x94, 22 }, /* 0x9400 */
+	{ 0x95, 23 }, /* 0x9500 */
+	{ 0x96, 3 }, /* 0x9600 */
+	{ 0xa2, 25 }, /* 0xa201 */
+	{ 0xff, 158 }, /* 0xff1b */
+	{ 0x00, -1 }
+};
+
+static const error_equivalency ncp_0x4b_errors[] = {
+	{ 0x00, 0 }, /* 0x0000 */
+	{ 0x88, 17 }, /* 0x8800 */
+	{ 0x94, 22 }, /* 0x9400 */
+	{ 0x96, 3 }, /* 0x9600 */
+	{ 0xfb, 82 }, /* 0xfb08 */
+	{ 0x00, -1 }
+};
+
+static const error_equivalency ncp_0x54_errors[] = {
+	{ 0x00, 0 }, /* 0x0000 */
+	{ 0x80, 14 }, /* 0x8000 */
+	{ 0x81, 15 }, /* 0x8101 */
+	{ 0x84, 59 }, /* 0x8401 */
+	{ 0x85, 156 }, /* 0x8501 */
+	{ 0x87, 16 }, /* 0x8701 */
+	{ 0x8d, 18 }, /* 0x8d00 */
+	{ 0x8f, 20 }, /* 0x8f00 */
+	{ 0x90, 21 }, /* 0x9001 */
+	{ 0x96, 3 }, /* 0x9600 */
+	{ 0x98, 9 }, /* 0x9804 */
+	{ 0x9b, 10 }, /* 0x9b03 */
+	{ 0x9c, 7 }, /* 0x9c03 */
+	{ 0xfd, 12 }, /* 0xfd00 */
+	{ 0xff, 56 }, /* 0xff16 */
+	{ 0x00, -1 }
+};
+
+static const error_equivalency ncp_0x5601_errors[] = {
+	{ 0x00, 0 }, /* 0x0000 */
+	{ 0xcf, 159 }, /* 0xcf00 */
+	{ 0xd3, 160 }, /* 0xd301 */
+	{ 0x00, -1 }
+};
+
+static const error_equivalency ncp_0x5602_errors[] = {
+	{ 0x00, 0 }, /* 0x0000 */
+	{ 0xc8, 161 }, /* 0xc800 */
+	{ 0xc9, 162 }, /* 0xc900 */
+	{ 0xcb, 163 }, /* 0xcb00 */
+	{ 0xce, 164 }, /* 0xce00 */
+	{ 0xcf, 159 }, /* 0xcf00 */
+	{ 0xd1, 165 }, /* 0xd101 */
+	{ 0xd2, 166 }, /* 0xd203 */
+	{ 0xd3, 160 }, /* 0xd301 */
+	{ 0xd4, 167 }, /* 0xd402 */
+	{ 0x00, -1 }
+};
+
+static const error_equivalency ncp_0x5603_errors[] = {
+	{ 0x00, 0 }, /* 0x0000 */
+	{ 0xc9, 162 }, /* 0xc900 */
+	{ 0xce, 164 }, /* 0xce00 */
+	{ 0xcf, 159 }, /* 0xcf00 */
+	{ 0xd1, 165 }, /* 0xd101 */
+	{ 0xd3, 160 }, /* 0xd301 */
+	{ 0x00, -1 }
+};
+
+static const error_equivalency ncp_0x5604_errors[] = {
+	{ 0x00, 0 }, /* 0x0000 */
+	{ 0x88, 17 }, /* 0x8800 */
+	{ 0xc9, 162 }, /* 0xc900 */
+	{ 0xce, 164 }, /* 0xce00 */
+	{ 0xcf, 159 }, /* 0xcf00 */
+	{ 0xd1, 165 }, /* 0xd101 */
+	{ 0xd3, 160 }, /* 0xd301 */
+	{ 0x00, -1 }
+};
+
+static const error_equivalency ncp_0x5605_errors[] = {
+	{ 0x00, 0 }, /* 0x0000 */
+	{ 0xd1, 165 }, /* 0xd101 */
+	{ 0x00, -1 }
+};
+
+static const error_equivalency ncp_0x5701_errors[] = {
+	{ 0x00, 0 }, /* 0x0000 */
+	{ 0x7f, 168 }, /* 0x7f00 */
+	{ 0x80, 169 }, /* 0x8001 */
+	{ 0x81, 15 }, /* 0x8101 */
+	{ 0x84, 59 }, /* 0x8401 */
+	{ 0x85, 156 }, /* 0x8501 */
+	{ 0x87, 16 }, /* 0x8701 */
+	{ 0x89, 62 }, /* 0x8900 */
+	{ 0x8d, 18 }, /* 0x8d00 */
+	{ 0x8f, 20 }, /* 0x8f00 */
+	{ 0x90, 21 }, /* 0x9001 */
+	{ 0x94, 22 }, /* 0x9400 */
+	{ 0x96, 3 }, /* 0x9600 */
+	{ 0x98, 9 }, /* 0x9804 */
+	{ 0x9b, 10 }, /* 0x9b03 */
+	{ 0x9c, 7 }, /* 0x9c03 */
+	{ 0xa5, 170 }, /* 0xa500 */
+	{ 0xa8, 171 }, /* 0xa802 */
+	{ 0xbf, 63 }, /* 0xbf00 */
+	{ 0xfd, 12 }, /* 0xfd00 */
+	{ 0xff, 56 }, /* 0xff16 */
+	{ 0x00, -1 }
+};
+
+static const error_equivalency ncp_0x5702_errors[] = {
+	{ 0x00, 0 }, /* 0x0000 */
+	{ 0x80, 14 }, /* 0x8000 */
+	{ 0x81, 15 }, /* 0x8101 */
+	{ 0x84, 59 }, /* 0x8401 */
+	{ 0x85, 156 }, /* 0x8501 */
+	{ 0x87, 16 }, /* 0x8701 */
+	{ 0x8d, 18 }, /* 0x8d00 */
+	{ 0x8f, 20 }, /* 0x8f00 */
+	{ 0x90, 21 }, /* 0x9001 */
+	{ 0x96, 3 }, /* 0x9600 */
+	{ 0x98, 9 }, /* 0x9804 */
+	{ 0x9b, 10 }, /* 0x9b03 */
+	{ 0x9c, 7 }, /* 0x9c03 */
+	{ 0xbf, 63 }, /* 0xbf00 */
+	{ 0xfd, 12 }, /* 0xfd00 */
+	{ 0xff, 56 }, /* 0xff16 */
+	{ 0x00, -1 }
+};
+
+static const error_equivalency ncp_0x5704_errors[] = {
+	{ 0x00, 0 }, /* 0x0000 */
+	{ 0x80, 14 }, /* 0x8000 */
+	{ 0x81, 15 }, /* 0x8101 */
+	{ 0x84, 59 }, /* 0x8401 */
+	{ 0x85, 156 }, /* 0x8501 */
+	{ 0x87, 16 }, /* 0x8701 */
+	{ 0x8d, 18 }, /* 0x8d00 */
+	{ 0x8e, 19 }, /* 0x8e00 */
+	{ 0x8f, 20 }, /* 0x8f00 */
+	{ 0x90, 21 }, /* 0x9001 */
+	{ 0x92, 53 }, /* 0x9200 */
+	{ 0x96, 3 }, /* 0x9600 */
+	{ 0x98, 9 }, /* 0x9804 */
+	{ 0x9a, 77 }, /* 0x9a00 */
+	{ 0x9b, 10 }, /* 0x9b03 */
+	{ 0x9c, 7 }, /* 0x9c03 */
+	{ 0xbf, 63 }, /* 0xbf00 */
+	{ 0xfd, 12 }, /* 0xfd00 */
+	{ 0xff, 56 }, /* 0xff16 */
+	{ 0x00, -1 }
+};
+
+static const error_equivalency ncp_0x5706_errors[] = {
+	{ 0x00, 0 }, /* 0x0000 */
+	{ 0x80, 14 }, /* 0x8000 */
+	{ 0x81, 15 }, /* 0x8101 */
+	{ 0x84, 59 }, /* 0x8401 */
+	{ 0x85, 156 }, /* 0x8501 */
+	{ 0x87, 172 }, /* 0x8700 */
+	{ 0x89, 62 }, /* 0x8900 */
+	{ 0x8d, 18 }, /* 0x8d00 */
+	{ 0x8f, 20 }, /* 0x8f00 */
+	{ 0x90, 21 }, /* 0x9001 */
+	{ 0x96, 3 }, /* 0x9600 */
+	{ 0x98, 9 }, /* 0x9804 */
+	{ 0x9b, 10 }, /* 0x9b03 */
+	{ 0x9c, 7 }, /* 0x9c03 */
+	{ 0xa8, 171 }, /* 0xa802 */
+	{ 0xbf, 63 }, /* 0xbf00 */
+	{ 0xfd, 12 }, /* 0xfd00 */
+	{ 0xff, 56 }, /* 0xff16 */
+	{ 0x00, -1 }
+};
+
+static const error_equivalency ncp_0x5707_errors[] = {
+	{ 0x00, 0 }, /* 0x0000 */
+	{ 0x80, 14 }, /* 0x8000 */
+	{ 0x81, 15 }, /* 0x8101 */
+	{ 0x84, 59 }, /* 0x8401 */
+	{ 0x85, 156 }, /* 0x8501 */
+	{ 0x87, 16 }, /* 0x8701 */
+	{ 0x8c, 173 }, /* 0x8c01 */
+	{ 0x8d, 18 }, /* 0x8d00 */
+	{ 0x8e, 19 }, /* 0x8e00 */
+	{ 0x8f, 20 }, /* 0x8f00 */
+	{ 0x90, 21 }, /* 0x9001 */
+	{ 0x96, 3 }, /* 0x9600 */
+	{ 0x98, 9 }, /* 0x9804 */
+	{ 0x9b, 10 }, /* 0x9b03 */
+	{ 0x9c, 7 }, /* 0x9c03 */
+	{ 0xbf, 63 }, /* 0xbf00 */
+	{ 0xfd, 12 }, /* 0xfd00 */
+	{ 0xff, 56 }, /* 0xff16 */
+	{ 0x00, -1 }
+};
+
+static const error_equivalency ncp_0x5708_errors[] = {
+	{ 0x00, 0 }, /* 0x0000 */
+	{ 0x80, 14 }, /* 0x8000 */
+	{ 0x81, 15 }, /* 0x8101 */
+	{ 0x84, 59 }, /* 0x8401 */
+	{ 0x85, 156 }, /* 0x8501 */
+	{ 0x87, 16 }, /* 0x8701 */
+	{ 0x89, 62 }, /* 0x8900 */
+	{ 0x8a, 49 }, /* 0x8a00 */
+	{ 0x8d, 18 }, /* 0x8d00 */
+	{ 0x8e, 19 }, /* 0x8e00 */
+	{ 0x8f, 20 }, /* 0x8f00 */
+	{ 0x90, 21 }, /* 0x9001 */
+	{ 0x96, 3 }, /* 0x9600 */
+	{ 0x98, 9 }, /* 0x9804 */
+	{ 0x9b, 10 }, /* 0x9b03 */
+	{ 0x9c, 7 }, /* 0x9c03 */
+	{ 0xbf, 63 }, /* 0xbf00 */
+	{ 0xfd, 12 }, /* 0xfd00 */
+	{ 0xff, 56 }, /* 0xff16 */
+	{ 0x00, -1 }
+};
+
+static const error_equivalency ncp_0x570a_errors[] = {
+	{ 0x00, 0 }, /* 0x0000 */
+	{ 0x80, 14 }, /* 0x8000 */
+	{ 0x81, 15 }, /* 0x8101 */
+	{ 0x84, 59 }, /* 0x8401 */
+	{ 0x85, 156 }, /* 0x8501 */
+	{ 0x87, 16 }, /* 0x8701 */
+	{ 0x8d, 18 }, /* 0x8d00 */
+	{ 0x8f, 20 }, /* 0x8f00 */
+	{ 0x90, 21 }, /* 0x9001 */
+	{ 0x96, 3 }, /* 0x9600 */
+	{ 0x98, 9 }, /* 0x9804 */
+	{ 0x9b, 10 }, /* 0x9b03 */
+	{ 0x9c, 7 }, /* 0x9c03 */
+	{ 0xbf, 63 }, /* 0xbf00 */
+	{ 0xfc, 174 }, /* 0xfc01 */
+	{ 0xfd, 12 }, /* 0xfd00 */
+	{ 0xff, 56 }, /* 0xff16 */
+	{ 0x00, -1 }
+};
+
+static const error_equivalency ncp_0x5719_errors[] = {
+	{ 0x00, 0 }, /* 0x0000 */
+	{ 0x80, 14 }, /* 0x8000 */
+	{ 0x81, 15 }, /* 0x8101 */
+	{ 0x84, 59 }, /* 0x8401 */
+	{ 0x85, 156 }, /* 0x8501 */
+	{ 0x87, 16 }, /* 0x8701 */
+	{ 0x8b, 52 }, /* 0x8b00 */
+	{ 0x8d, 18 }, /* 0x8d00 */
+	{ 0x8f, 20 }, /* 0x8f00 */
+	{ 0x90, 21 }, /* 0x9001 */
+	{ 0x96, 3 }, /* 0x9600 */
+	{ 0x98, 9 }, /* 0x9804 */
+	{ 0x9b, 10 }, /* 0x9b03 */
+	{ 0x9c, 7 }, /* 0x9c03 */
+	{ 0xbf, 63 }, /* 0xbf00 */
+	{ 0xfd, 12 }, /* 0xfd00 */
+	{ 0xff, 56 }, /* 0xff16 */
+	{ 0x00, -1 }
+};
+
+static const error_equivalency ncp_0x5720_errors[] = {
+	{ 0x00, 0 }, /* 0x0000 */
+	{ 0x7f, 168 }, /* 0x7f00 */
+	{ 0x80, 14 }, /* 0x8000 */
+	{ 0x81, 15 }, /* 0x8101 */
+	{ 0x84, 59 }, /* 0x8401 */
+	{ 0x85, 156 }, /* 0x8501 */
+	{ 0x87, 16 }, /* 0x8701 */
+	{ 0x8d, 18 }, /* 0x8d00 */
+	{ 0x8f, 20 }, /* 0x8f00 */
+	{ 0x90, 21 }, /* 0x9001 */
+	{ 0x96, 3 }, /* 0x9600 */
+	{ 0x98, 9 }, /* 0x9804 */
+	{ 0x9b, 10 }, /* 0x9b03 */
+	{ 0x9c, 7 }, /* 0x9c03 */
+	{ 0xbf, 63 }, /* 0xbf00 */
+	{ 0xfd, 12 }, /* 0xfd00 */
+	{ 0xff, 56 }, /* 0xff16 */
+	{ 0x00, -1 }
+};
+
+static const error_equivalency ncp_0x5722_errors[] = {
+	{ 0x00, 0 }, /* 0x0000 */
+	{ 0x88, 17 }, /* 0x8800 */
+	{ 0xff, 56 }, /* 0xff16 */
+	{ 0x00, -1 }
+};
+
+static const error_equivalency ncp_0x572c_errors[] = {
+	{ 0x00, 0 }, /* 0x0000 */
+	{ 0x73, 175 }, /* 0x7300 */
+	{ 0x80, 14 }, /* 0x8000 */
+	{ 0x81, 15 }, /* 0x8101 */
+	{ 0x84, 59 }, /* 0x8401 */
+	{ 0x85, 156 }, /* 0x8501 */
+	{ 0x87, 16 }, /* 0x8701 */
+	{ 0x88, 17 }, /* 0x8800 */
+	{ 0x8d, 18 }, /* 0x8d00 */
+	{ 0x8f, 20 }, /* 0x8f00 */
+	{ 0x90, 21 }, /* 0x9001 */
+	{ 0x96, 3 }, /* 0x9600 */
+	{ 0x98, 9 }, /* 0x9804 */
+	{ 0x9b, 10 }, /* 0x9b03 */
+	{ 0x9c, 7 }, /* 0x9c03 */
+	{ 0xbf, 63 }, /* 0xbf00 */
+	{ 0xfd, 12 }, /* 0xfd00 */
+	{ 0xff, 56 }, /* 0xff16 */
+	{ 0x00, -1 }
+};
+
+static const error_equivalency ncp_0x5740_errors[] = {
+	{ 0x00, 0 }, /* 0x0000 */
+	{ 0x83, 157 }, /* 0x8300 */
+	{ 0x88, 17 }, /* 0x8800 */
+	{ 0x93, 27 }, /* 0x9300 */
+	{ 0x95, 23 }, /* 0x9500 */
+	{ 0xa2, 25 }, /* 0xa201 */
+	{ 0xfd, 12 }, /* 0xfd00 */
+	{ 0xff, 158 }, /* 0xff1b */
+	{ 0x00, -1 }
+};
+
+static const error_equivalency ncp_0x5741_errors[] = {
+	{ 0x00, 0 }, /* 0x0000 */
+	{ 0x83, 157 }, /* 0x8300 */
+	{ 0x88, 17 }, /* 0x8800 */
+	{ 0x94, 22 }, /* 0x9400 */
+	{ 0x95, 23 }, /* 0x9500 */
+	{ 0xa2, 25 }, /* 0xa201 */
+	{ 0xfd, 12 }, /* 0xfd00 */
+	{ 0xff, 158 }, /* 0xff1b */
+	{ 0x00, -1 }
+};
+
+static const error_equivalency ncp_0x5742_errors[] = {
+	{ 0x00, 0 }, /* 0x0000 */
+	{ 0x7f, 168 }, /* 0x7f00 */
+	{ 0x88, 17 }, /* 0x8800 */
+	{ 0x96, 3 }, /* 0x9600 */
+	{ 0xfd, 143 }, /* 0xfd02 */
+	{ 0xff, 5 }, /* 0xff01 */
+	{ 0x00, -1 }
+};
+
+static const error_equivalency ncp_0x5743_errors[] = {
+	{ 0x00, 0 }, /* 0x0000 */
+	{ 0x7f, 168 }, /* 0x7f00 */
+	{ 0x88, 17 }, /* 0x8800 */
+	{ 0x96, 3 }, /* 0x9600 */
+	{ 0xfb, 82 }, /* 0xfb08 */
+	{ 0xfd, 143 }, /* 0xfd02 */
+	{ 0xff, 5 }, /* 0xff01 */
+	{ 0x00, -1 }
+};
+
+static const error_equivalency ncp_0x5744_errors[] = {
+	{ 0x00, 0 }, /* 0x0000 */
+	{ 0x73, 175 }, /* 0x7300 */
+	{ 0x80, 14 }, /* 0x8000 */
+	{ 0x81, 15 }, /* 0x8101 */
+	{ 0x84, 59 }, /* 0x8401 */
+	{ 0x85, 156 }, /* 0x8501 */
+	{ 0x87, 16 }, /* 0x8701 */
+	{ 0x88, 17 }, /* 0x8800 */
+	{ 0x8d, 18 }, /* 0x8d00 */
+	{ 0x8f, 20 }, /* 0x8f00 */
+	{ 0x90, 21 }, /* 0x9001 */
+	{ 0x96, 3 }, /* 0x9600 */
+	{ 0x98, 9 }, /* 0x9804 */
+	{ 0x9b, 10 }, /* 0x9b03 */
+	{ 0x9c, 7 }, /* 0x9c03 */
+	{ 0xbf, 63 }, /* 0xbf00 */
+	{ 0xfd, 12 }, /* 0xfd00 */
+	{ 0xff, 8 }, /* 0xff1a */
+	{ 0x00, -1 }
+};
+
+static const error_equivalency ncp_0x5801_errors[] = {
+	{ 0x00, 0 }, /* 0x0000 */
+	{ 0x73, 175 }, /* 0x7300 */
+	{ 0x80, 14 }, /* 0x8000 */
+	{ 0x81, 15 }, /* 0x8101 */
+	{ 0x84, 59 }, /* 0x8401 */
+	{ 0x85, 156 }, /* 0x8501 */
+	{ 0x87, 16 }, /* 0x8701 */
+	{ 0x88, 17 }, /* 0x8800 */
+	{ 0x8d, 18 }, /* 0x8d00 */
+	{ 0x8f, 20 }, /* 0x8f00 */
+	{ 0x90, 21 }, /* 0x9001 */
+	{ 0x96, 3 }, /* 0x9600 */
+	{ 0x98, 9 }, /* 0x9804 */
+	{ 0x9b, 10 }, /* 0x9b03 */
+	{ 0x9c, 7 }, /* 0x9c03 */
+	{ 0xa6, 176 }, /* 0xa600 */
+	{ 0xa8, 177 }, /* 0xa801 */
+	{ 0xfd, 12 }, /* 0xfd00 */
+	{ 0xff, 56 }, /* 0xff16 */
+	{ 0x00, -1 }
+};
+
+static const error_equivalency ncp_0x580d_errors[] = {
+	{ 0x00, 0 }, /* 0x0000 */
+	{ 0x03, 178 }, /* 0x0300 */
+	{ 0x80, 14 }, /* 0x8000 */
+	{ 0x81, 15 }, /* 0x8101 */
+	{ 0x84, 59 }, /* 0x8401 */
+	{ 0x85, 156 }, /* 0x8501 */
+	{ 0x87, 16 }, /* 0x8701 */
+	{ 0x88, 17 }, /* 0x8800 */
+	{ 0x8d, 18 }, /* 0x8d00 */
+	{ 0x8f, 20 }, /* 0x8f00 */
+	{ 0x90, 21 }, /* 0x9001 */
+	{ 0x96, 3 }, /* 0x9600 */
+	{ 0x98, 9 }, /* 0x9804 */
+	{ 0x9b, 10 }, /* 0x9b03 */
+	{ 0x9c, 7 }, /* 0x9c03 */
+	{ 0xa6, 176 }, /* 0xa600 */
+	{ 0xa8, 177 }, /* 0xa801 */
+	{ 0xfd, 12 }, /* 0xfd00 */
+	{ 0xff, 56 }, /* 0xff16 */
+	{ 0x00, -1 }
+};
+
+static const error_equivalency ncp_0x5a01_errors[] = {
+	{ 0x00, 0 }, /* 0x0000 */
+	{ 0x7e, 81 }, /* 0x7e01 */
+	{ 0x80, 14 }, /* 0x8000 */
+	{ 0x81, 15 }, /* 0x8101 */
+	{ 0x84, 59 }, /* 0x8401 */
+	{ 0x85, 156 }, /* 0x8501 */
+	{ 0x87, 16 }, /* 0x8701 */
+	{ 0x88, 17 }, /* 0x8800 */
+	{ 0x8d, 18 }, /* 0x8d00 */
+	{ 0x8f, 20 }, /* 0x8f00 */
+	{ 0x90, 21 }, /* 0x9001 */
+	{ 0x96, 3 }, /* 0x9600 */
+	{ 0x98, 9 }, /* 0x9804 */
+	{ 0x9b, 10 }, /* 0x9b03 */
+	{ 0x9c, 7 }, /* 0x9c03 */
+	{ 0xfd, 12 }, /* 0xfd00 */
+	{ 0xff, 56 }, /* 0xff16 */
+	{ 0x00, -1 }
+};
+
+static const error_equivalency ncp_0x5a80_errors[] = {
+	{ 0x00, 0 }, /* 0x0000 */
+	{ 0x7e, 81 }, /* 0x7e01 */
+	{ 0x80, 14 }, /* 0x8000 */
+	{ 0x81, 15 }, /* 0x8101 */
+	{ 0x84, 59 }, /* 0x8401 */
+	{ 0x85, 156 }, /* 0x8501 */
+	{ 0x87, 16 }, /* 0x8701 */
+	{ 0x88, 17 }, /* 0x8800 */
+	{ 0x8d, 18 }, /* 0x8d00 */
+	{ 0x8f, 20 }, /* 0x8f00 */
+	{ 0x90, 21 }, /* 0x9001 */
+	{ 0x96, 3 }, /* 0x9600 */
+	{ 0x98, 9 }, /* 0x9804 */
+	{ 0x9b, 10 }, /* 0x9b03 */
+	{ 0x9c, 7 }, /* 0x9c03 */
+	{ 0xa8, 179 }, /* 0xa800 */
+	{ 0xfd, 12 }, /* 0xfd00 */
+	{ 0xff, 56 }, /* 0xff16 */
+	{ 0x00, -1 }
+};
+
+static const error_equivalency ncp_0x5b_errors[] = {
+	{ 0x00, 0 }, /* 0x0000 */
+	{ 0x7e, 81 }, /* 0x7e01 */
+	{ 0x80, 14 }, /* 0x8000 */
+	{ 0x81, 15 }, /* 0x8101 */
+	{ 0x84, 59 }, /* 0x8401 */
+	{ 0x85, 156 }, /* 0x8501 */
+	{ 0x87, 16 }, /* 0x8701 */
+	{ 0x88, 17 }, /* 0x8800 */
+	{ 0x8d, 18 }, /* 0x8d00 */
+	{ 0x8f, 20 }, /* 0x8f00 */
+	{ 0x90, 21 }, /* 0x9001 */
+	{ 0x96, 3 }, /* 0x9600 */
+	{ 0x98, 9 }, /* 0x9804 */
+	{ 0x9b, 10 }, /* 0x9b03 */
+	{ 0x9c, 7 }, /* 0x9c03 */
+	{ 0xa8, 179 }, /* 0xa800 */
+	{ 0xfb, 180 }, /* 0xfb0b */
+	{ 0xfd, 12 }, /* 0xfd00 */
+	{ 0xff, 56 }, /* 0xff16 */
+	{ 0x00, -1 }
+};
+
+static const error_equivalency ncp_0x5e01_errors[] = {
+	{ 0x00, 0 }, /* 0x0000 */
+	{ 0xfb, 181 }, /* 0xfb09 */
+	{ 0x00, -1 }
+};
+
+static const error_equivalency ncp_0x6801_errors[] = {
+	{ 0x00, 0 }, /* 0x0000 */
+	{ 0x81, 55 }, /* 0x8100 */
+	{ 0xfb, 182 }, /* 0xfb04 */
+	{ 0xfe, 183 }, /* 0xfe0c */
+	{ 0x00, -1 }
+};
+
+static const error_equivalency ncp_0x6802_errors[] = {
+	{ 0x00, 0 }, /* 0x0000 */
+	{ 0xfd, 184 }, /* 0xfd01 */
+	{ 0x00, -1 }
+};
+
+static const error_equivalency ncp_0x6804_errors[] = {
+	{ 0x00, 0 }, /* 0x0000 */
+	{ 0xfe, 183 }, /* 0xfe0c */
+	{ 0xff, 1 }, /* 0xff00 */
+	{ 0x00, -1 }
+};
+
+static const error_equivalency ncp_0x6805_errors[] = {
+	{ 0x00, 0 }, /* 0x0000 */
+	{ 0xfb, 64 }, /* 0xfb00 */
+	{ 0xfe, 183 }, /* 0xfe0c */
+	{ 0xff, 1 }, /* 0xff00 */
+	{ 0x00, -1 }
+};
+
+static const error_equivalency ncp_0x68c8_errors[] = {
+	{ 0x00, 0 }, /* 0x0000 */
+	{ 0xa7, 185 }, /* 0xa700 */
+	{ 0xfb, 64 }, /* 0xfb00 */
+	{ 0xfe, 183 }, /* 0xfe0c */
+	{ 0xff, 1 }, /* 0xff00 */
+	{ 0x00, -1 }
+};
+
+static const error_equivalency ncp_0x69_errors[] = {
+	{ 0x00, 0 }, /* 0x0000 */
+	{ 0x7f, 168 }, /* 0x7f00 */
+	{ 0x82, 2 }, /* 0x8200 */
+	{ 0x96, 3 }, /* 0x9600 */
+	{ 0xfe, 4 }, /* 0xfe0d */
+	{ 0xff, 5 }, /* 0xff01 */
+	{ 0x00, -1 }
+};
+
+static const error_equivalency ncp_0x6b_errors[] = {
+	{ 0x00, 0 }, /* 0x0000 */
+	{ 0x7f, 168 }, /* 0x7f00 */
+	{ 0x96, 3 }, /* 0x9600 */
+	{ 0xfe, 4 }, /* 0xfe0d */
+	{ 0xff, 5 }, /* 0xff01 */
+	{ 0x00, -1 }
+};
+
+static const error_equivalency ncp_0x6d_errors[] = {
+	{ 0x00, 0 }, /* 0x0000 */
+	{ 0x7f, 168 }, /* 0x7f00 */
+	{ 0x82, 2 }, /* 0x8200 */
+	{ 0x88, 17 }, /* 0x8800 */
+	{ 0x96, 3 }, /* 0x9600 */
+	{ 0xfd, 143 }, /* 0xfd02 */
+	{ 0xfe, 144 }, /* 0xfe04 */
+	{ 0xff, 5 }, /* 0xff01 */
+	{ 0x00, -1 }
+};
+
+static const error_equivalency ncp_0x6f02_errors[] = {
+	{ 0x00, 0 }, /* 0x0000 */
+	{ 0x96, 3 }, /* 0x9600 */
+	{ 0xfe, 144 }, /* 0xfe04 */
+	{ 0xff, 5 }, /* 0xff01 */
+	{ 0x00, -1 }
+};
+
+static const error_equivalency ncp_0x7201_errors[] = {
+	{ 0x00, 0 }, /* 0x0000 */
+	{ 0x7e, 186 }, /* 0x7e00 */
+	{ 0xfb, 110 }, /* 0xfb06 */
+	{ 0xff, 1 }, /* 0xff00 */
+	{ 0x00, -1 }
+};
+
+static const error_equivalency ncp_0x7b01_errors[] = {
+	{ 0x00, 0 }, /* 0x0000 */
+	{ 0x79, 187 }, /* 0x7900 */
+	{ 0x7e, 81 }, /* 0x7e01 */
+	{ 0xff, 1 }, /* 0xff00 */
+	{ 0x00, -1 }
+};
+
+static const error_equivalency ncp_0x7b02_errors[] = {
+	{ 0x00, 0 }, /* 0x0000 */
+	{ 0x79, 187 }, /* 0x7900 */
+	{ 0x7e, 81 }, /* 0x7e01 */
+	{ 0xfb, 110 }, /* 0xfb06 */
+	{ 0xff, 1 }, /* 0xff00 */
+	{ 0x00, -1 }
+};
+
+static const error_equivalency ncp_0x7b0e_errors[] = {
+	{ 0x00, 0 }, /* 0x0000 */
+	{ 0x79, 187 }, /* 0x7900 */
+	{ 0x7e, 81 }, /* 0x7e01 */
+	{ 0xfd, 184 }, /* 0xfd01 */
+	{ 0xff, 1 }, /* 0xff00 */
+	{ 0x00, -1 }
+};
+
+static const error_equivalency ncp_0x7b11_errors[] = {
+	{ 0x00, 0 }, /* 0x0000 */
+	{ 0x79, 187 }, /* 0x7900 */
+	{ 0x7e, 81 }, /* 0x7e01 */
+	{ 0xfb, 57 }, /* 0xfb01 */
+	{ 0xff, 1 }, /* 0xff00 */
+	{ 0x00, -1 }
+};
+
+static const error_equivalency ncp_0x7b2f_errors[] = {
+	{ 0x00, 0 }, /* 0x0000 */
+	{ 0x7e, 81 }, /* 0x7e01 */
+	{ 0xfb, 110 }, /* 0xfb06 */
+	{ 0xff, 1 }, /* 0xff00 */
+	{ 0x00, -1 }
+};
+
+static const error_equivalency ncp_0x7b33_errors[] = {
+	{ 0x00, 0 }, /* 0x0000 */
+	{ 0x01, 188 }, /* 0x0108 */
+	{ 0x7e, 81 }, /* 0x7e01 */
+	{ 0xfb, 110 }, /* 0xfb06 */
+	{ 0xff, 1 }, /* 0xff00 */
+	{ 0x00, -1 }
+};
+
+static const error_equivalency ncp_0x7b46_errors[] = {
+	{ 0x00, 0 }, /* 0x0000 */
+	{ 0x79, 189 }, /* 0x7901 */
+	{ 0x7e, 186 }, /* 0x7e00 */
+	{ 0xfb, 110 }, /* 0xfb06 */
+	{ 0xff, 1 }, /* 0xff00 */
+	{ 0x00, -1 }
+};
+
+static const error_equivalency ncp_0x8301_errors[] = {
+	{ 0x00, 0 }, /* 0x0000 */
+	{ 0x7e, 186 }, /* 0x7e00 */
+	{ 0xfb, 190 }, /* 0xfb07 */
+	{ 0xff, 1 }, /* 0xff00 */
+	{ 0x00, -1 }
+};
+
+/* Request Condition Indexes */
+static const int ncp_0x1720_req_cond_indexes[] = {
+	16,  58,  71,  107,  -1 };
+
+static const int ncp_0x3f_req_cond_indexes[] = {
+	19,  47,  -1 };
+
+static const int ncp_0x5701_req_cond_indexes[] = {
+	0,  2,  8,  12,  15,  17,  21,  27,  30,  32,  33,  34,  36,  37,  38,  40,  44,  46,  48,  50,  54,  56,  57,  60,  67,  69,  72,  73,  76,  77,  80,  82,  84,  88,  90,  91,  92,  93,  94,  95,  97,  102,  105,  108,  109,  110,  111,  -1 };
+
+static const int ncp_0x5706_req_cond_indexes[] = {
+	0,  2,  3,  8,  11,  12,  14,  15,  18,  21,  25,  28,  29,  30,  34,  37,  38,  41,  42,  43,  45,  49,  50,  51,  56,  59,  60,  64,  68,  69,  72,  75,  80,  85,  87,  90,  91,  95,  96,  97,  99,  102,  105,  106,  108,  110,  111,  -1 };
+
+static const int ncp_0x5710_req_cond_indexes[] = {
+	0,  2,  3,  5,  8,  11,  12,  14,  18,  20,  25,  28,  29,  34,  37,  38,  41,  42,  43,  45,  49,  51,  59,  64,  68,  75,  80,  85,  87,  96,  97,  99,  102,  105,  106,  -1 };
+
+static const int ncp_0x5713_req_cond_indexes[] = {
+	4,  9,  24,  26,  35,  39,  70,  74,  83,  89,  100,  103,  104,  -1 };
+
+static const int ncp_0x571f_req_cond_indexes[] = {
+	6,  61,  62,  63,  65,  66,  -1 };
+
+static const int ncp_0x5729_req_cond_indexes[] = {
+	86,  112,  -1 };
+
+static const int ncp_0x5a84_req_cond_indexes[] = {
+	52,  53,  55,  -1 };
+
+static const int ncp_0x7b10_req_cond_indexes[] = {
+	1,  7,  10,  13,  23,  78,  79,  98,  -1 };
+
+static const int ncp_0x7b22_req_cond_indexes[] = {
+	31,  81,  -1 };
+
+/* Info Strings */
+static const info_string_t info_str_0x9_req = {
+	&hf_ncp_logical_record_name,
+	"Log Logical Record: %s",
+	", %s"
+};
+
+static const info_string_t info_str_0xb_req = {
+	&hf_ncp_logical_record_name,
+	"Clear Logical Record: %s",
+	", %s"
+};
+
+static const info_string_t info_str_0xc_req = {
+	&hf_ncp_logical_record_name,
+	"Release Logical Record: %s",
+	", %s"
+};
+
+static const info_string_t info_str_0x1100_req = {
+	&hf_ncp_data,
+	"Write to Spool File: %s",
+	", %s"
+};
+
+static const info_string_t info_str_0x1103_req = {
+	&hf_ncp_data,
+	"Spool a Disk File: %s",
+	", %s"
+};
+
+static const info_string_t info_str_0x1109_req = {
+	&hf_ncp_data,
+	"Create Spool File: %s",
+	", %s"
+};
+
+static const info_string_t info_str_0x12_req = {
+	&hf_ncp_volume_number,
+	"Get Volume Information for Volume %d",
+	", %d"
+};
+
+static const info_string_t info_str_0x1500_req = {
+	&hf_ncp_target_message,
+	"Send Broadcast Message: %s",
+	", %s"
+};
+
+static const info_string_t info_str_0x1509_req = {
+	&hf_ncp_target_message,
+	"Broadcast to Console: %s",
+	", %s"
+};
+
+static const info_string_t info_str_0x150a_req = {
+	&hf_ncp_target_message,
+	"Send Broadcast Message: %s",
+	", %s"
+};
+
+static const info_string_t info_str_0x1600_req = {
+	&hf_ncp_path,
+	"Set Directory Handle to: %s",
+	", %s"
+};
+
+static const info_string_t info_str_0x1601_req = {
+	&hf_ncp_dir_handle,
+	"Get Directory Path for Directory Handle %d",
+	", %d"
+};
+
+static const info_string_t info_str_0x1602_req = {
+	&hf_ncp_path,
+	"Scan Directory Information: %s",
+	", %s"
+};
+
+static const info_string_t info_str_0x1603_req = {
+	&hf_ncp_path,
+	"Get Effective Directory Rights: %s",
+	", %s"
+};
+
+static const info_string_t info_str_0x1604_req = {
+	&hf_ncp_path,
+	"Modify Maximum Rights Mask: %s",
+	", %s"
+};
+
+static const info_string_t info_str_0x1605_req = {
+	&hf_ncp_volume_name_len,
+	"Get Volume Number for: %s",
+	", %s"
+};
+
+static const info_string_t info_str_0x1606_req = {
+	&hf_ncp_volume_number,
+	"Get Name for Volume %d",
+	", %d"
+};
+
+static const info_string_t info_str_0x160a_req = {
+	&hf_ncp_path,
+	"Create Directory: %s",
+	", %s"
+};
+
+static const info_string_t info_str_0x160b_req = {
+	&hf_ncp_path,
+	"Delete Directory: %s",
+	", %s"
+};
+
+static const info_string_t info_str_0x160c_req = {
+	&hf_ncp_path,
+	"Scan Directory for Trustees: %s",
+	", %s"
+};
+
+static const info_string_t info_str_0x160d_req = {
+	&hf_ncp_path,
+	"Add Trustee to Directory: %s",
+	", %s"
+};
+
+static const info_string_t info_str_0x160e_req = {
+	&hf_ncp_path,
+	"Delete Trustee from Directory: %s",
+	", %s"
+};
+
+static const info_string_t info_str_0x160f_req = {
+	&hf_ncp_path,
+	"Rename Directory: %s",
+	", %s"
+};
+
+static const info_string_t info_str_0x1611_req = {
+	&hf_ncp_dir_handle,
+	"Recover Erased File from Directory Handle %d",
+	", %d"
+};
+
+static const info_string_t info_str_0x1612_req = {
+	&hf_ncp_path,
+	"Allocate Permanent Directory Handle: %s",
+	", %s"
+};
+
+static const info_string_t info_str_0x1613_req = {
+	&hf_ncp_path,
+	"Allocate Temporary Directory Handle: %s",
+	", %s"
+};
+
+static const info_string_t info_str_0x1614_req = {
+	&hf_ncp_dir_handle,
+	"Deallocate Directory Handle %d",
+	", %d"
+};
+
+static const info_string_t info_str_0x1615_req = {
+	&hf_ncp_dir_handle,
+	"Get Volume Information with Handle %d",
+	", %d"
+};
+
+static const info_string_t info_str_0x1616_req = {
+	&hf_ncp_path,
+	"Allocate Special Temporary Directory Handle: %s",
+	", %s"
+};
+
+static const info_string_t info_str_0x1617_req = {
+	&hf_ncp_dir_handle,
+	"Extract a Base Handle from Directory Handle %d",
+	", %d"
+};
+
+static const info_string_t info_str_0x1619_req = {
+	&hf_ncp_path,
+	"Set Directory Information: %s",
+	", %s"
+};
+
+static const info_string_t info_str_0x161c_req = {
+	&hf_ncp_file_name,
+	"Recover File: %s",
+	", %s"
+};
+
+static const info_string_t info_str_0x161e_req = {
+	&hf_ncp_search_pattern,
+	"Scan a Directory: %s",
+	", %s"
+};
+
+static const info_string_t info_str_0x1626_req = {
+	&hf_ncp_path,
+	"Scan for Extended Trustees: %s",
+	", %s"
+};
+
+static const info_string_t info_str_0x1627_req = {
+	&hf_ncp_path,
+	"Add Extended Trustee: %s",
+	", %s"
+};
+
+static const info_string_t info_str_0x1628_req = {
+	&hf_ncp_search_pattern,
+	"Scan Directory Disk Space: %s",
+	", %s"
+};
+
+static const info_string_t info_str_0x162a_req = {
+	&hf_ncp_path,
+	"Get Effective Rights: %s",
+	", %s"
+};
+
+static const info_string_t info_str_0x162b_req = {
+	&hf_ncp_path,
+	"Remove Extended Trustee from %s",
+	", %s"
+};
+
+static const info_string_t info_str_0x162c_req = {
+	&hf_ncp_volume_number,
+	"Get Volume and Purge Information for Volume %d",
+	", %d"
+};
+
+static const info_string_t info_str_0x162e_req = {
+	&hf_ncp_source_path,
+	"Rename or Move: %s",
+	", %s"
+};
+
+static const info_string_t info_str_0x162f_req = {
+	&hf_ncp_volume_number,
+	"Get Name Space Information for Volume %d",
+	", %d"
+};
+
+static const info_string_t info_str_0x1631_req = {
+	&hf_ncp_file_name,
+	"Open Data Stream: %s",
+	", %s"
+};
+
+static const info_string_t info_str_0x1632_req = {
+	&hf_ncp_path,
+	"Get Object Effective Rights: %s",
+	", %s"
+};
+
+static const info_string_t info_str_0x1633_req = {
+	&hf_ncp_volume_number,
+	"Get Extended Volume Information for Volume %d",
+	", %d"
+};
+
+static const info_string_t info_str_0x1700_req = {
+	&hf_ncp_user_name,
+	"Login User: %s",
+	", %s"
+};
+
+static const info_string_t info_str_0x1701_req = {
+	&hf_ncp_user_name,
+	"Change Password for User: %s",
+	", %s"
+};
+
+static const info_string_t info_str_0x1702_req = {
+	&hf_ncp_user_name,
+	"Get User Connection: %s",
+	", %s"
+};
+
+static const info_string_t info_str_0x1703_req = {
+	&hf_ncp_user_name,
+	"Get User Number: %s",
+	", %s"
+};
+
+static const info_string_t info_str_0x1705_req = {
+	&hf_ncp_target_connection_number,
+	"Get Station's Logged Information on Connection %d",
+	", %d"
+};
+
+static const info_string_t info_str_0x170d_req = {
+	&hf_ncp_target_message,
+	"Log Network Message: %s",
+	", %s"
+};
+
+static const info_string_t info_str_0x170f_req = {
+	&hf_ncp_file_name,
+	"Scan File Information: %s",
+	", %s"
+};
+
+static const info_string_t info_str_0x1710_req = {
+	&hf_ncp_file_name,
+	"Set Information for File: %s",
+	", %s"
+};
+
+static const info_string_t info_str_0x1713_req = {
+	&hf_ncp_target_connection_number,
+	"Get Internet Address for Connection %d",
+	", %d"
+};
+
+static const info_string_t info_str_0x1714_req = {
+	&hf_ncp_user_name,
+	"Login Object: %s",
+	", %s"
+};
+
+static const info_string_t info_str_0x1715_req = {
+	&hf_ncp_user_name,
+	"Get Object Connection List: %s",
+	", %s"
+};
+
+static const info_string_t info_str_0x1718_req = {
+	&hf_ncp_object_name,
+	"Keyed Object Login: %s",
+	", %s"
+};
+
+static const info_string_t info_str_0x171b_req = {
+	&hf_ncp_object_name,
+	"Get Object Connection List: %s",
+	", %s"
+};
+
+static const info_string_t info_str_0x1720_req = {
+	&hf_ncp_object_name,
+	"Scan Bindery Object: %s",
+	", %s"
+};
+
+static const info_string_t info_str_0x1732_req = {
+	&hf_ncp_object_name,
+	"Create Bindery Object: %s",
+	", %s"
+};
+
+static const info_string_t info_str_0x1733_req = {
+	&hf_ncp_object_name,
+	"Delete Bindery Object: %s",
+	", %s"
+};
+
+static const info_string_t info_str_0x1734_req = {
+	&hf_ncp_object_name,
+	"Rename Bindery Object: %s",
+	", %s"
+};
+
+static const info_string_t info_str_0x1735_req = {
+	&hf_ncp_object_name,
+	"Get Bindery Object: %s",
+	", %s"
+};
+
+static const info_string_t info_str_0x1737_req = {
+	&hf_ncp_object_name,
+	"Scan Bindery Object: %s",
+	", %s"
+};
+
+static const info_string_t info_str_0x1738_req = {
+	&hf_ncp_object_name,
+	"Change Bindery Object Security: %s",
+	", %s"
+};
+
+static const info_string_t info_str_0x1739_req = {
+	&hf_ncp_property_name,
+	"Create Property: %s",
+	", %s"
+};
+
+static const info_string_t info_str_0x173a_req = {
+	&hf_ncp_property_name,
+	"Delete Property: %s",
+	", %s"
+};
+
+static const info_string_t info_str_0x173b_req = {
+	&hf_ncp_property_name,
+	"Change Property Security: %s",
+	", %s"
+};
+
+static const info_string_t info_str_0x173c_req = {
+	&hf_ncp_property_name,
+	"Scan Property: %s",
+	", %s"
+};
+
+static const info_string_t info_str_0x173d_req = {
+	&hf_ncp_property_name,
+	"Read Property Value: %s",
+	", %s"
+};
+
+static const info_string_t info_str_0x173e_req = {
+	&hf_ncp_property_name,
+	"Write Property Value: %s",
+	", %s"
+};
+
+static const info_string_t info_str_0x173f_req = {
+	&hf_ncp_object_name,
+	"Verify Bindery Object Password: %s",
+	", %s"
+};
+
+static const info_string_t info_str_0x1740_req = {
+	&hf_ncp_object_name,
+	"Change Bindery Object Password: %s",
+	", %s"
+};
+
+static const info_string_t info_str_0x1741_req = {
+	&hf_ncp_member_name,
+	"Add Bindery Object to Set: %s",
+	", %s"
+};
+
+static const info_string_t info_str_0x1742_req = {
+	&hf_ncp_member_name,
+	"Delete Bindery Object from Set: %s",
+	", %s"
+};
+
+static const info_string_t info_str_0x1743_req = {
+	&hf_ncp_member_name,
+	"Is Bindery Object in Set: %s",
+	", %s"
+};
+
+static const info_string_t info_str_0x174a_req = {
+	&hf_ncp_object_name,
+	"Keyed Verify Password: %s",
+	", %s"
+};
+
+static const info_string_t info_str_0x174b_req = {
+	&hf_ncp_object_name,
+	"Keyed Change Password: %s",
+	", %s"
+};
+
+static const info_string_t info_str_0x174c_req = {
+	&hf_ncp_object_name,
+	"List Relations of an Object: %s",
+	", %s"
+};
+
+static const info_string_t info_str_0x1764_req = {
+	&hf_ncp_queue_name,
+	"Create Queue: %s",
+	", %s"
+};
+
+static const info_string_t info_str_0x1796_req = {
+	&hf_ncp_object_name,
+	"Get Current Account Status: %s",
+	", %s"
+};
+
+static const info_string_t info_str_0x1797_req = {
+	&hf_ncp_object_name,
+	"Submit Account Charge: %s",
+	", %s"
+};
+
+static const info_string_t info_str_0x1798_req = {
+	&hf_ncp_object_name,
+	"Submit Account Hold: %s",
+	", %s"
+};
+
+static const info_string_t info_str_0x1799_req = {
+	&hf_ncp_object_name,
+	"Submit Account Note: %s",
+	", %s"
+};
+
+static const info_string_t info_str_0x17d1_req = {
+	&hf_ncp_target_message,
+	"Send Console Broadcast: %s",
+	", %s"
+};
+
+static const info_string_t info_str_0x17d2_req = {
+	&hf_ncp_connection_number,
+	"Clear Connection Number %d",
+	", %d"
+};
+
+static const info_string_t info_str_0x17dc_req = {
+	&hf_ncp_path,
+	"Get Connection Using File: %s",
+	", %s"
+};
+
+static const info_string_t info_str_0x17dd_req = {
+	&hf_ncp_file_name_14,
+	"Get Physical Record Locks by Connection and File: %s",
+	", %s"
+};
+
+static const info_string_t info_str_0x17de_req = {
+	&hf_ncp_path,
+	"Get Physical Record Locks by File: %s",
+	", %s"
+};
+
+static const info_string_t info_str_0x17e0_req = {
+	&hf_ncp_logical_record_name,
+	"Get Logical Record Information: %s",
+	", %s"
+};
+
+static const info_string_t info_str_0x17e2_req = {
+	&hf_ncp_semaphore_name,
+	"Get Semaphore Information: %s",
+	", %s"
+};
+
+static const info_string_t info_str_0x17e9_req = {
+	&hf_ncp_volume_number,
+	"Get Information on Volume %d",
+	", %d"
+};
+
+static const info_string_t info_str_0x17f2_req = {
+	&hf_ncp_semaphore_name,
+	"Get Semaphore Information: %s",
+	", %s"
+};
+
+static const info_string_t info_str_0x17f4_req = {
+	&hf_ncp_path,
+	"Convert Path to Directory Entry: %s",
+	", %s"
+};
+
+static const info_string_t info_str_0x17fd_req = {
+	&hf_ncp_target_message,
+	"Send Console Broadcast: %s",
+	", %s"
+};
+
+static const info_string_t info_str_0x1a_req = {
+	&hf_ncp_lock_area_len,
+	"Lock Record - Length of %d",
+	"%d"
+};
+
+static const info_string_t info_str_0x1c_req = {
+	&hf_ncp_lock_area_len,
+	"Release Lock Record - Length of %d",
+	"%d"
+};
+
+static const info_string_t info_str_0x1e_req = {
+	&hf_ncp_lock_area_len,
+	"Clear Lock Record - Length of %d",
+	"%d"
+};
+
+static const info_string_t info_str_0x2301_req = {
+	&hf_ncp_path,
+	"AFP Create Directory: %s",
+	", %s"
+};
+
+static const info_string_t info_str_0x2302_req = {
+	&hf_ncp_path,
+	"AFP Create File: %s",
+	", %s"
+};
+
+static const info_string_t info_str_0x2303_req = {
+	&hf_ncp_path,
+	"AFP Delete: %s",
+	", %s"
+};
+
+static const info_string_t info_str_0x2304_req = {
+	&hf_ncp_path,
+	"AFP Get Entry from Name: %s",
+	", %s"
+};
+
+static const info_string_t info_str_0x2305_req = {
+	&hf_ncp_path,
+	"AFP Get File Information: %s",
+	", %s"
+};
+
+static const info_string_t info_str_0x2307_req = {
+	&hf_ncp_path,
+	"AFP Rename: %s",
+	", %s"
+};
+
+static const info_string_t info_str_0x2308_req = {
+	&hf_ncp_path,
+	"AFP Open File Fork: %s",
+	", %s"
+};
+
+static const info_string_t info_str_0x2309_req = {
+	&hf_ncp_path,
+	"AFP Set File Information: %s",
+	", %s"
+};
+
+static const info_string_t info_str_0x230a_req = {
+	&hf_ncp_path,
+	"AFP Scan File Information: %s",
+	", %s"
+};
+
+static const info_string_t info_str_0x230b_req = {
+	&hf_ncp_path,
+	"AFP Allocate Temporary Directory Handle: %s",
+	", %s"
+};
+
+static const info_string_t info_str_0x230c_req = {
+	&hf_ncp_path,
+	"AFP Get Entry ID from Path Name: %s",
+	", %s"
+};
+
+static const info_string_t info_str_0x230d_req = {
+	&hf_ncp_path,
+	"AFP 2.0 Create Directory: %s",
+	", %s"
+};
+
+static const info_string_t info_str_0x230e_req = {
+	&hf_ncp_path,
+	"AFP 2.0 Create File: %s",
+	", %s"
+};
+
+static const info_string_t info_str_0x230f_req = {
+	&hf_ncp_path,
+	"AFP 2.0 Get Information: %s",
+	", %s"
+};
+
+static const info_string_t info_str_0x2310_req = {
+	&hf_ncp_path,
+	"AFP 2.0 Set File Information: %s",
+	", %s"
+};
+
+static const info_string_t info_str_0x2311_req = {
+	&hf_ncp_path,
+	"AFP 2.0 Scan File Information: %s",
+	", %s"
+};
+
+static const info_string_t info_str_0x2402_req = {
+	&hf_ncp_ncp_extension_name,
+	"Get NCP Extension Information by Name: %s",
+	", %s"
+};
+
+static const info_string_t info_str_0x3b_req = {
+	&hf_ncp_file_handle,
+	"Commit File - 0x%s",
+	", %s"
+};
+
+static const info_string_t info_str_0x3e_req = {
+	&hf_ncp_path,
+	"Initialize File Search: %s",
+	", %s"
+};
+
+static const info_string_t info_str_0x3f_req = {
+	&hf_ncp_path,
+	"File Search Continue: %s",
+	", %s"
+};
+
+static const info_string_t info_str_0x40_req = {
+	&hf_ncp_file_name,
+	"Search for File: %s",
+	", %s"
+};
+
+static const info_string_t info_str_0x41_req = {
+	&hf_ncp_file_name,
+	"Open File: %s",
+	", %s"
+};
+
+static const info_string_t info_str_0x42_req = {
+	&hf_ncp_file_handle,
+	"Close File - 0x%s",
+	", %s"
+};
+
+static const info_string_t info_str_0x43_req = {
+	&hf_ncp_file_name,
+	"Create File: %s",
+	", %s"
+};
+
+static const info_string_t info_str_0x44_req = {
+	&hf_ncp_file_name,
+	"Erase File: %s",
+	", %s"
+};
+
+static const info_string_t info_str_0x45_req = {
+	&hf_ncp_file_name,
+	"Rename File: %s",
+	", %s"
+};
+
+static const info_string_t info_str_0x46_req = {
+	&hf_ncp_file_name,
+	"Set File Attributes: %s",
+	", %s"
+};
+
+static const info_string_t info_str_0x47_req = {
+	&hf_ncp_file_handle,
+	"Get Current Size of File - 0x%s",
+	", %s"
+};
+
+static const info_string_t info_str_0x48_req = {
+	&hf_ncp_file_handle,
+	"Read From File - 0x%s",
+	", %s"
+};
+
+static const info_string_t info_str_0x49_req = {
+	&hf_ncp_file_handle,
+	"Write to a File - 0x%s",
+	", %s"
+};
+
+static const info_string_t info_str_0x4b_req = {
+	&hf_ncp_file_handle,
+	"Set Time and Date Stamp for File - 0x%s",
+	", %s"
+};
+
+static const info_string_t info_str_0x4c_req = {
+	&hf_ncp_file_name,
+	"Open File: %s",
+	", %s"
+};
+
+static const info_string_t info_str_0x4d_req = {
+	&hf_ncp_file_name,
+	"Create File: %s",
+	", %s"
+};
+
+static const info_string_t info_str_0x4f_req = {
+	&hf_ncp_file_name,
+	"Set File Extended Attributes: %s",
+	", %s"
+};
+
+static const info_string_t info_str_0x54_req = {
+	&hf_ncp_file_name,
+	"Open/Create File: %s",
+	", %s"
+};
+
+static const info_string_t info_str_0x55_req = {
+	&hf_ncp_file_handle,
+	"Get Sparse File Data Block Bitmap for File - 0x%s",
+	", %s"
+};
+
+static const info_string_t info_str_0x5602_req = {
+	&hf_ncp_ea_key,
+	"Write Extended Attribute: %s",
+	", %s"
+};
+
+static const info_string_t info_str_0x5603_req = {
+	&hf_ncp_ea_key,
+	"Read Extended Attribute: %s",
+	", %s"
+};
+
+static const info_string_t info_str_0x5604_req = {
+	&hf_ncp_ea_key,
+	"Enumerate Extended Attribute: %s",
+	", %s"
+};
+
+static const info_string_t info_str_0x5701_req = {
+	&hf_ncp_path,
+	"Open or Create: %s",
+	"/%s"
+};
+
+static const info_string_t info_str_0x5702_req = {
+	&hf_ncp_path,
+	"Set Search Pointer to: %s",
+	"/%s"
+};
+
+static const info_string_t info_str_0x5703_req = {
+	&hf_ncp_search_pattern,
+	"Search for: %s",
+	"/%s"
+};
+
+static const info_string_t info_str_0x5704_req = {
+	&hf_ncp_path,
+	"Rename or Move: %s",
+	"/%s"
+};
+
+static const info_string_t info_str_0x5705_req = {
+	&hf_ncp_path,
+	"Scan Trustees for: %s",
+	"/%s"
+};
+
+static const info_string_t info_str_0x5706_req = {
+	&hf_ncp_path,
+	"Obtain Info for: %s",
+	"/%s"
+};
+
+static const info_string_t info_str_0x5707_req = {
+	&hf_ncp_path,
+	"Modify DOS Information for: %s",
+	"/%s"
+};
+
+static const info_string_t info_str_0x5708_req = {
+	&hf_ncp_path,
+	"Delete a File or Subdirectory: %s",
+	"/%s"
+};
+
+static const info_string_t info_str_0x5709_req = {
+	&hf_ncp_path,
+	"Set Short Directory Handle to: %s",
+	"/%s"
+};
+
+static const info_string_t info_str_0x570a_req = {
+	&hf_ncp_path,
+	"Add Trustee Set to: %s",
+	"/%s"
+};
+
+static const info_string_t info_str_0x570b_req = {
+	&hf_ncp_path,
+	"Delete Trustee Set from: %s",
+	"/%s"
+};
+
+static const info_string_t info_str_0x570c_req = {
+	&hf_ncp_path,
+	"Allocate Short Directory Handle to: %s",
+	"/%s"
+};
+
+static const info_string_t info_str_0x5710_req = {
+	&hf_ncp_path,
+	"Scan for Deleted Files in: %s",
+	"/%s"
+};
+
+static const info_string_t info_str_0x5711_req = {
+	&hf_ncp_file_name,
+	"Recover Deleted File: %s",
+	", %s"
+};
+
+static const info_string_t info_str_0x5716_req = {
+	&hf_ncp_path,
+	"Get Volume and Directory Base from: %s",
+	"/%s"
+};
+
+static const info_string_t info_str_0x571c_req = {
+	&hf_ncp_path,
+	"Get Full Path from: %s",
+	"/%s"
+};
+
+static const info_string_t info_str_0x571d_req = {
+	&hf_ncp_path,
+	"Get Effective Rights for: %s",
+	"/%s"
+};
+
+static const info_string_t info_str_0x571e_req = {
+	&hf_ncp_path,
+	"Open or Create File: %s",
+	"/%s"
+};
+
+static const info_string_t info_str_0x571f_req = {
+	&hf_ncp_file_handle,
+	"Get File Information - 0x%s",
+	", %s"
+};
+
+static const info_string_t info_str_0x5720_req = {
+	&hf_ncp_path,
+	"Open or Create with Op-Lock: %s",
+	"/%s"
+};
+
+static const info_string_t info_str_0x5721_req = {
+	&hf_ncp_file_path,
+	"Open or Create II with Op-Lock: %s",
+	"/%s"
+};
+
+static const info_string_t info_str_0x5723_req = {
+	&hf_ncp_path,
+	"Modify DOS Attributes for: %s",
+	"/%s"
+};
+
+static const info_string_t info_str_0x5724_req = {
+	&hf_ncp_path,
+	"Lock File: %s",
+	"/%s"
+};
+
+static const info_string_t info_str_0x5725_req = {
+	&hf_ncp_path,
+	"Release Lock on: %s",
+	"/%s"
+};
+
+static const info_string_t info_str_0x5726_req = {
+	&hf_ncp_path,
+	"Clear File: %s",
+	"/%s"
+};
+
+static const info_string_t info_str_0x5727_req = {
+	&hf_ncp_path,
+	"Get Disk Space Restriction for: %s",
+	"/%s"
+};
+
+static const info_string_t info_str_0x5728_req = {
+	&hf_ncp_search_pattern,
+	"Search for: %s",
+	", %s"
+};
+
+static const info_string_t info_str_0x5729_req = {
+	&hf_ncp_path,
+	"Scan Deleted Files: %s",
+	"/%s"
+};
+
+static const info_string_t info_str_0x61_req = {
+	&hf_ncp_proposed_max_size,
+	"Get Big Max Packet Size - %d",
+	", %d"
+};
+
+static const info_string_t info_str_0x69_req = {
+	&hf_ncp_file_path,
+	"Log File: %s",
+	"/%s"
+};
+
+static const info_string_t info_str_0x6b_req = {
+	&hf_ncp_synch_name,
+	"Log Logical Record: %s",
+	", %s"
+};
+
+static const info_string_t info_str_0x6f00_req = {
+	&hf_ncp_semaphore_name,
+	"Open/Create Semaphore: %s",
+	", %s"
+};
+
+static const info_string_t info_str_0x7202_req = {
+	&hf_ncp_server_name_len,
+	"Timesync Exchange Time: %s",
+	", %s"
+};
+
+static const info_string_t info_str_0x7b36_req = {
+	&hf_ncp_server_name_len,
+	"Get Server Information: %s",
+	", %s"
+};
+
+static const info_string_t info_str_0x7b37_req = {
+	&hf_ncp_server_name_len,
+	"Get Server Sources Info: %s",
+	", %s"
+};
+
+static const info_string_t info_str_0x7b3e_req = {
+	&hf_ncp_set_parm_name,
+	"Get Server Set Command Info for: %s",
+	", %s"
+};
+
+static const info_string_t info_str_0x8301_req = {
+	&hf_ncp_path_and_name,
+	"RPC Load NLM: %s",
+	", %s"
+};
+
+static const info_string_t info_str_0x8302_req = {
+	&hf_ncp_nlm_name_stringz,
+	"RPC Unload NLM: %s",
+	", %s"
+};
+
+static const info_string_t info_str_0x8303_req = {
+	&hf_ncp_volume_name_stringz,
+	"RPC Mount Volume: %s",
+	", %s"
+};
+
+static const info_string_t info_str_0x8304_req = {
+	&hf_ncp_volume_name_stringz,
+	"RPC Dismount Volume: %s",
+	", %s"
+};
+
+static const info_string_t info_str_0x8305_req = {
+	&hf_ncp_add_nm_spc_and_vol,
+	"RPC Add Name Space to Volume: %s",
+	", %s"
+};
+
+static const info_string_t info_str_0x8306_req = {
+	&hf_ncp_set_cmd_name,
+	"RPC Set Command Value: %s",
+	", %s"
+};
+
+static const info_string_t info_str_0x8307_req = {
+	&hf_ncp_path_and_name,
+	"RPC Execute NCF File: %s",
+	", %s"
+};
+
+#define SUBFUNC_WITH_LENGTH	0x02
+#define SUBFUNC_NO_LENGTH	0x01
+#define NO_SUBFUNC		0x00
+/* ncp_record structs for packets */
+static const ncp_record ncp_packets[] = {
+	{ 0x01, 0x00, NO_SUBFUNC, "File Set Lock", 	0 /* file */,
+		NULL, NULL, ncp_0x1_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x02, 0x00, NO_SUBFUNC, "File Release Lock", 	0 /* file */,
+		NULL, NULL, ncp_0x2_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x03, 0x00, NO_SUBFUNC, "Log File Exclusive", 	0 /* file */,
+		ncp_0x3_request, NULL, ncp_0x3_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x04, 0x00, NO_SUBFUNC, "Lock File Set", 	0 /* file */,
+		ncp_0x4_request, NULL, ncp_0x4_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x05, 0x00, NO_SUBFUNC, "Release File", 	0 /* file */,
+		ncp_0x5_request, NULL, ncp_0x5_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x06, 0x00, NO_SUBFUNC, "Release File Set", 	0 /* file */,
+		ncp_0x6_request, NULL, ncp_0x1_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x07, 0x00, NO_SUBFUNC, "Clear File", 	0 /* file */,
+		ncp_0x5_request, NULL, ncp_0x7_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x08, 0x00, NO_SUBFUNC, "Clear File Set", 	0 /* file */,
+		ncp_0x6_request, NULL, ncp_0x1_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x09, 0x00, NO_SUBFUNC, "Log Logical Record", 	0 /* file */,
+		ncp_0x9_request, NULL, ncp_0x9_errors, NULL, NO_REQ_COND_SIZE, &info_str_0x9_req },
+
+	{ 0x0a, 0x00, NO_SUBFUNC, "Lock Logical Record Set", 	0 /* file */,
+		ncp_0xa_request, NULL, ncp_0xa_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x0b, 0x00, NO_SUBFUNC, "Clear Logical Record", 	0 /* file */,
+		ncp_0xb_request, NULL, ncp_0xb_errors, NULL, NO_REQ_COND_SIZE, &info_str_0xb_req },
+
+	{ 0x0c, 0x00, NO_SUBFUNC, "Release Logical Record", 	0 /* file */,
+		ncp_0xb_request, NULL, ncp_0xb_errors, NULL, NO_REQ_COND_SIZE, &info_str_0xc_req },
+
+	{ 0x0d, 0x00, NO_SUBFUNC, "Release Logical Record Set", 	0 /* file */,
+		ncp_0x6_request, NULL, ncp_0x1_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x0e, 0x00, NO_SUBFUNC, "Clear Logical Record Set", 	0 /* file */,
+		ncp_0x6_request, NULL, ncp_0x1_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x11, 0x00, SUBFUNC_WITH_LENGTH, "Write to Spool File", 	1 /* qms */,
+		ncp_0x1100_request, NULL, ncp_0x1100_errors, NULL, NO_REQ_COND_SIZE, &info_str_0x1100_req },
+
+	{ 0x11, 0x01, SUBFUNC_WITH_LENGTH, "Close Spool File", 	1 /* qms */,
+		ncp_0x1101_request, NULL, ncp_0x1101_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x11, 0x02, SUBFUNC_WITH_LENGTH, "Set Spool File Flags", 	1 /* qms */,
+		ncp_0x1102_request, NULL, ncp_0x1102_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x11, 0x03, SUBFUNC_WITH_LENGTH, "Spool A Disk File", 	1 /* qms */,
+		ncp_0x1103_request, NULL, ncp_0x1101_errors, NULL, NO_REQ_COND_SIZE, &info_str_0x1103_req },
+
+	{ 0x11, 0x06, SUBFUNC_WITH_LENGTH, "Get Printer Status", 	1 /* qms */,
+		ncp_0x1106_request, ncp_0x1106_reply, ncp_0x1106_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x11, 0x09, SUBFUNC_WITH_LENGTH, "Create Spool File", 	1 /* qms */,
+		ncp_0x1103_request, NULL, ncp_0x1109_errors, NULL, NO_REQ_COND_SIZE, &info_str_0x1109_req },
+
+	{ 0x11, 0x0a, SUBFUNC_WITH_LENGTH, "Get Printer's Queue", 	1 /* qms */,
+		ncp_0x1106_request, ncp_0x110a_reply, ncp_0x110a_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x12, 0x00, NO_SUBFUNC, "Get Volume Info with Number", 	0 /* file */,
+		ncp_0x12_request, ncp_0x12_reply, ncp_0x12_errors, NULL, NO_REQ_COND_SIZE, &info_str_0x12_req },
+
+	{ 0x13, 0x00, NO_SUBFUNC, "Get Station Number", 	2 /* connection */,
+		NULL, ncp_0x13_reply, ncp_0x2_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x14, 0x00, NO_SUBFUNC, "Get File Server Date And Time", 	3 /* fileserver */,
+		NULL, ncp_0x14_reply, ncp_0x1_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x15, 0x00, SUBFUNC_WITH_LENGTH, "Send Broadcast Message", 	4 /* message */,
+		ncp_0x1500_request, ncp_0x1500_reply, ncp_0x1500_errors, NULL, NO_REQ_COND_SIZE, &info_str_0x1500_req },
+
+	{ 0x15, 0x01, SUBFUNC_WITH_LENGTH, "Get Broadcast Message", 	4 /* message */,
+		NULL, ncp_0x1501_reply, ncp_0x1500_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x15, 0x02, SUBFUNC_WITH_LENGTH, "Disable Broadcasts", 	4 /* message */,
+		NULL, NULL, ncp_0x1502_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x15, 0x03, SUBFUNC_WITH_LENGTH, "Enable Broadcasts", 	4 /* message */,
+		NULL, NULL, ncp_0x1_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x15, 0x09, SUBFUNC_WITH_LENGTH, "Broadcast To Console", 	4 /* message */,
+		ncp_0x1501_reply, NULL, ncp_0x1_errors, NULL, NO_REQ_COND_SIZE, &info_str_0x1509_req },
+
+	{ 0x15, 0x0a, SUBFUNC_WITH_LENGTH, "Send Broadcast Message", 	4 /* message */,
+		ncp_0x150a_request, ncp_0x150a_reply, ncp_0x1500_errors, NULL, NO_REQ_COND_SIZE, &info_str_0x150a_req },
+
+	{ 0x15, 0x0b, SUBFUNC_WITH_LENGTH, "Get Broadcast Message", 	4 /* message */,
+		NULL, ncp_0x1501_reply, ncp_0x1500_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x15, 0x0c, SUBFUNC_WITH_LENGTH, "Connection Message Control", 	4 /* message */,
+		ncp_0x150c_request, NULL, ncp_0x2_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x16, 0x00, SUBFUNC_WITH_LENGTH, "Set Directory Handle", 	3 /* fileserver */,
+		ncp_0x1600_request, NULL, ncp_0x1600_errors, NULL, NO_REQ_COND_SIZE, &info_str_0x1600_req },
+
+	{ 0x16, 0x01, SUBFUNC_WITH_LENGTH, "Get Directory Path", 	3 /* fileserver */,
+		ncp_0x1601_request, ncp_0x1601_reply, ncp_0x1601_errors, NULL, NO_REQ_COND_SIZE, &info_str_0x1601_req },
+
+	{ 0x16, 0x02, SUBFUNC_WITH_LENGTH, "Scan Directory Information", 	3 /* fileserver */,
+		ncp_0x1602_request, ncp_0x1602_reply, ncp_0x1600_errors, NULL, NO_REQ_COND_SIZE, &info_str_0x1602_req },
+
+	{ 0x16, 0x03, SUBFUNC_WITH_LENGTH, "Get Effective Directory Rights", 	3 /* fileserver */,
+		ncp_0x1603_request, ncp_0x1603_reply, ncp_0x1600_errors, NULL, NO_REQ_COND_SIZE, &info_str_0x1603_req },
+
+	{ 0x16, 0x04, SUBFUNC_WITH_LENGTH, "Modify Maximum Rights Mask", 	3 /* fileserver */,
+		ncp_0x1604_request, NULL, ncp_0x1604_errors, NULL, NO_REQ_COND_SIZE, &info_str_0x1604_req },
+
+	{ 0x16, 0x05, SUBFUNC_WITH_LENGTH, "Get Volume Number", 	3 /* fileserver */,
+		ncp_0x1605_request, ncp_0x12_request, ncp_0x1605_errors, NULL, NO_REQ_COND_SIZE, &info_str_0x1605_req },
+
+	{ 0x16, 0x06, SUBFUNC_WITH_LENGTH, "Get Volume Name", 	3 /* fileserver */,
+		ncp_0x12_request, ncp_0x1605_request, ncp_0x1606_errors, NULL, NO_REQ_COND_SIZE, &info_str_0x1606_req },
+
+	{ 0x16, 0x0a, SUBFUNC_WITH_LENGTH, "Create Directory", 	3 /* fileserver */,
+		ncp_0x160a_request, NULL, ncp_0x160a_errors, NULL, NO_REQ_COND_SIZE, &info_str_0x160a_req },
+
+	{ 0x16, 0x0b, SUBFUNC_WITH_LENGTH, "Delete Directory", 	3 /* fileserver */,
+		ncp_0x160b_request, NULL, ncp_0x160b_errors, NULL, NO_REQ_COND_SIZE, &info_str_0x160b_req },
+
+	{ 0x16, 0x0c, SUBFUNC_WITH_LENGTH, "Scan Directory for Trustees", 	3 /* fileserver */,
+		ncp_0x160c_request, ncp_0x160c_reply, ncp_0x160c_errors, NULL, NO_REQ_COND_SIZE, &info_str_0x160c_req },
+
+	{ 0x16, 0x0d, SUBFUNC_WITH_LENGTH, "Add Trustee to Directory", 	3 /* fileserver */,
+		ncp_0x160d_request, NULL, ncp_0x160d_errors, NULL, NO_REQ_COND_SIZE, &info_str_0x160d_req },
+
+	{ 0x16, 0x0e, SUBFUNC_WITH_LENGTH, "Delete Trustee from Directory", 	3 /* fileserver */,
+		ncp_0x160e_request, NULL, ncp_0x160e_errors, NULL, NO_REQ_COND_SIZE, &info_str_0x160e_req },
+
+	{ 0x16, 0x0f, SUBFUNC_WITH_LENGTH, "Rename Directory", 	3 /* fileserver */,
+		ncp_0x160f_request, NULL, ncp_0x160f_errors, NULL, NO_REQ_COND_SIZE, &info_str_0x160f_req },
+
+	{ 0x16, 0x10, SUBFUNC_WITH_LENGTH, "Purge Erased Files", 	0 /* file */,
+		NULL, NULL, ncp_0x1610_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x16, 0x11, SUBFUNC_WITH_LENGTH, "Recover Erased File", 	3 /* fileserver */,
+		ncp_0x1601_request, ncp_0x1611_reply, ncp_0x1611_errors, NULL, NO_REQ_COND_SIZE, &info_str_0x1611_req },
+
+	{ 0x16, 0x12, SUBFUNC_WITH_LENGTH, "Alloc Permanent Directory Handle", 	3 /* fileserver */,
+		ncp_0x1612_request, ncp_0x1612_reply, ncp_0x1612_errors, NULL, NO_REQ_COND_SIZE, &info_str_0x1612_req },
+
+	{ 0x16, 0x13, SUBFUNC_WITH_LENGTH, "Alloc Temporary Directory Handle", 	3 /* fileserver */,
+		ncp_0x1612_request, ncp_0x1612_reply, ncp_0x1613_errors, NULL, NO_REQ_COND_SIZE, &info_str_0x1613_req },
+
+	{ 0x16, 0x14, SUBFUNC_WITH_LENGTH, "Deallocate Directory Handle", 	3 /* fileserver */,
+		ncp_0x1601_request, NULL, ncp_0x1614_errors, NULL, NO_REQ_COND_SIZE, &info_str_0x1614_req },
+
+	{ 0x16, 0x15, SUBFUNC_WITH_LENGTH, "Get Volume Info with Handle", 	0 /* file */,
+		ncp_0x1601_request, ncp_0x12_reply, ncp_0x2_errors, NULL, NO_REQ_COND_SIZE, &info_str_0x1615_req },
+
+	{ 0x16, 0x16, SUBFUNC_WITH_LENGTH, "Alloc Special Temporary Directory Handle", 	3 /* fileserver */,
+		ncp_0x1612_request, ncp_0x1612_reply, ncp_0x1613_errors, NULL, NO_REQ_COND_SIZE, &info_str_0x1616_req },
+
+	{ 0x16, 0x17, SUBFUNC_WITH_LENGTH, "Extract a Base Handle", 	3 /* fileserver */,
+		ncp_0x1601_request, ncp_0x1617_reply, ncp_0x1617_errors, NULL, NO_REQ_COND_SIZE, &info_str_0x1617_req },
+
+	{ 0x16, 0x18, SUBFUNC_WITH_LENGTH, "Restore an Extracted Base Handle", 	3 /* fileserver */,
+		ncp_0x1617_reply, ncp_0x1612_reply, ncp_0x1618_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x16, 0x19, SUBFUNC_WITH_LENGTH, "Set Directory Information", 	3 /* fileserver */,
+		ncp_0x1619_request, NULL, ncp_0x1619_errors, NULL, NO_REQ_COND_SIZE, &info_str_0x1619_req },
+
+	{ 0x16, 0x1a, SUBFUNC_WITH_LENGTH, "Get Path Name of a Volume-Directory Number Pair", 	3 /* fileserver */,
+		ncp_0x161a_request, ncp_0x1601_reply, ncp_0x161a_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x16, 0x1b, SUBFUNC_WITH_LENGTH, "Scan Salvageable Files", 	3 /* fileserver */,
+		ncp_0x161b_request, ncp_0x161b_reply, ncp_0x161b_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x16, 0x1c, SUBFUNC_WITH_LENGTH, "Recover Salvageable File", 	3 /* fileserver */,
+		ncp_0x161c_request, NULL, ncp_0x161c_errors, NULL, NO_REQ_COND_SIZE, &info_str_0x161c_req },
+
+	{ 0x16, 0x1d, SUBFUNC_WITH_LENGTH, "Purge Salvageable File", 	3 /* fileserver */,
+		ncp_0x161b_request, NULL, ncp_0x161d_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x16, 0x1e, SUBFUNC_WITH_LENGTH, "Scan a Directory", 	3 /* fileserver */,
+		ncp_0x161e_request, ncp_0x161e_reply, ncp_0x161d_errors, NULL, NO_REQ_COND_SIZE, &info_str_0x161e_req },
+
+	{ 0x16, 0x1f, SUBFUNC_WITH_LENGTH, "Get Directory Entry", 	3 /* fileserver */,
+		ncp_0x1601_request, ncp_0x161f_reply, ncp_0x161f_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x16, 0x20, SUBFUNC_WITH_LENGTH, "Scan Volume's User Disk Restrictions", 	3 /* fileserver */,
+		ncp_0x1620_request, ncp_0x1620_reply, ncp_0x1620_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x16, 0x21, SUBFUNC_WITH_LENGTH, "Add User Disk Space Restriction", 	3 /* fileserver */,
+		ncp_0x1621_request, NULL, ncp_0x1621_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x16, 0x22, SUBFUNC_WITH_LENGTH, "Remove User Disk Space Restrictions", 	3 /* fileserver */,
+		ncp_0x1622_request, NULL, ncp_0x1622_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x16, 0x23, SUBFUNC_WITH_LENGTH, "Get Directory Disk Space Restriction", 	3 /* fileserver */,
+		ncp_0x1601_request, ncp_0x1623_reply, ncp_0x1_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x16, 0x24, SUBFUNC_WITH_LENGTH, "Set Directory Disk Space Restriction", 	3 /* fileserver */,
+		ncp_0x1624_request, NULL, ncp_0x1624_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x16, 0x25, SUBFUNC_WITH_LENGTH, "Set Directory Entry Information", 	3 /* fileserver */,
+		ncp_0x1625_request, NULL, ncp_0x1625_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x16, 0x26, SUBFUNC_WITH_LENGTH, "Scan File or Directory for Extended Trustees", 	3 /* fileserver */,
+		ncp_0x1626_request, ncp_0x1626_reply, ncp_0x1626_errors, NULL, NO_REQ_COND_SIZE, &info_str_0x1626_req },
+
+	{ 0x16, 0x27, SUBFUNC_WITH_LENGTH, "Add Extended Trustee to Directory or File", 	3 /* fileserver */,
+		ncp_0x1627_request, NULL, ncp_0x1627_errors, NULL, NO_REQ_COND_SIZE, &info_str_0x1627_req },
+
+	{ 0x16, 0x28, SUBFUNC_WITH_LENGTH, "Scan Directory Disk Space", 	3 /* fileserver */,
+		ncp_0x1628_request, ncp_0x1628_reply, ncp_0x1628_errors, NULL, NO_REQ_COND_SIZE, &info_str_0x1628_req },
+
+	{ 0x16, 0x29, SUBFUNC_WITH_LENGTH, "Get Object Disk Usage and Restrictions", 	3 /* fileserver */,
+		ncp_0x1622_request, ncp_0x1629_reply, ncp_0x1629_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x16, 0x2a, SUBFUNC_WITH_LENGTH, "Get Effective Rights for Directory Entry", 	3 /* fileserver */,
+		ncp_0x162a_request, ncp_0x162a_reply, ncp_0x162a_errors, NULL, NO_REQ_COND_SIZE, &info_str_0x162a_req },
+
+	{ 0x16, 0x2b, SUBFUNC_WITH_LENGTH, "Remove Extended Trustee from Dir or File", 	3 /* fileserver */,
+		ncp_0x162b_request, NULL, ncp_0x162b_errors, NULL, NO_REQ_COND_SIZE, &info_str_0x162b_req },
+
+	{ 0x16, 0x2c, SUBFUNC_WITH_LENGTH, "Get Volume and Purge Information", 	0 /* file */,
+		ncp_0x12_request, ncp_0x162c_reply, ncp_0x1_errors, NULL, NO_REQ_COND_SIZE, &info_str_0x162c_req },
+
+	{ 0x16, 0x2d, SUBFUNC_WITH_LENGTH, "Get Directory Information", 	0 /* file */,
+		ncp_0x1601_request, ncp_0x162d_reply, ncp_0x1614_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x16, 0x2e, SUBFUNC_WITH_LENGTH, "Rename Or Move", 	0 /* file */,
+		ncp_0x162e_request, NULL, ncp_0x162e_errors, NULL, NO_REQ_COND_SIZE, &info_str_0x162e_req },
+
+	{ 0x16, 0x2f, SUBFUNC_WITH_LENGTH, "Get Name Space Information", 	0 /* file */,
+		ncp_0x12_request, ncp_0x162f_reply, ncp_0x162f_errors, NULL, NO_REQ_COND_SIZE, &info_str_0x162f_req },
+
+	{ 0x16, 0x30, SUBFUNC_WITH_LENGTH, "Get Name Space Directory Entry", 	0 /* file */,
+		ncp_0x1630_request, ncp_0x1630_reply, ncp_0x1630_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x16, 0x31, SUBFUNC_WITH_LENGTH, "Open Data Stream", 	0 /* file */,
+		ncp_0x1631_request, ncp_0x1631_reply, ncp_0x1631_errors, NULL, NO_REQ_COND_SIZE, &info_str_0x1631_req },
+
+	{ 0x16, 0x32, SUBFUNC_WITH_LENGTH, "Get Object Effective Rights for Directory Entry", 	0 /* file */,
+		ncp_0x1632_request, ncp_0x1632_reply, ncp_0x1632_errors, NULL, NO_REQ_COND_SIZE, &info_str_0x1632_req },
+
+	{ 0x16, 0x33, SUBFUNC_WITH_LENGTH, "Get Extended Volume Information", 	0 /* file */,
+		ncp_0x12_request, ncp_0x1633_reply, ncp_0x1633_errors, NULL, NO_REQ_COND_SIZE, &info_str_0x1633_req },
+
+	{ 0x16, 0x34, SUBFUNC_WITH_LENGTH, "Get Mount Volume List", 	0 /* file */,
+		ncp_0x1634_request, ncp_0x1634_reply, ncp_0x1_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x17, 0x00, SUBFUNC_WITH_LENGTH, "Login User", 	0 /* file */,
+		ncp_0x1700_request, NULL, ncp_0x1700_errors, NULL, NO_REQ_COND_SIZE, &info_str_0x1700_req },
+
+	{ 0x17, 0x01, SUBFUNC_WITH_LENGTH, "Change User Password", 	0 /* file */,
+		ncp_0x1701_request, NULL, ncp_0x1701_errors, NULL, NO_REQ_COND_SIZE, &info_str_0x1701_req },
+
+	{ 0x17, 0x02, SUBFUNC_WITH_LENGTH, "Get User Connection List", 	0 /* file */,
+		ncp_0x1702_request, ncp_0x1702_reply, ncp_0x1702_errors, NULL, NO_REQ_COND_SIZE, &info_str_0x1702_req },
+
+	{ 0x17, 0x03, SUBFUNC_WITH_LENGTH, "Get User Number", 	0 /* file */,
+		ncp_0x1702_request, ncp_0x110a_reply, ncp_0x1702_errors, NULL, NO_REQ_COND_SIZE, &info_str_0x1703_req },
+
+	{ 0x17, 0x05, SUBFUNC_WITH_LENGTH, "Get Station's Logged Info", 	0 /* file */,
+		ncp_0x1705_request, ncp_0x1705_reply, ncp_0x1705_errors, NULL, NO_REQ_COND_SIZE, &info_str_0x1705_req },
+
+	{ 0x17, 0x07, SUBFUNC_WITH_LENGTH, "Get Group Number", 	0 /* file */,
+		ncp_0x110a_reply, ncp_0x1707_reply, ncp_0x1707_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x17, 0x0c, SUBFUNC_WITH_LENGTH, "Verify Serialization", 	0 /* file */,
+		ncp_0x170c_request, NULL, ncp_0x2_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x17, 0x0d, SUBFUNC_WITH_LENGTH, "Log Network Message", 	0 /* file */,
+		ncp_0x1501_reply, NULL, ncp_0x170d_errors, NULL, NO_REQ_COND_SIZE, &info_str_0x170d_req },
+
+	{ 0x17, 0x0e, SUBFUNC_WITH_LENGTH, "Get Disk Utilization", 	0 /* file */,
+		ncp_0x170e_request, ncp_0x170e_reply, ncp_0x170e_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x17, 0x0f, SUBFUNC_WITH_LENGTH, "Scan File Information", 	0 /* file */,
+		ncp_0x170f_request, ncp_0x170f_reply, ncp_0x170f_errors, NULL, NO_REQ_COND_SIZE, &info_str_0x170f_req },
+
+	{ 0x17, 0x10, SUBFUNC_WITH_LENGTH, "Set File Information", 	0 /* file */,
+		ncp_0x1710_request, NULL, ncp_0x1710_errors, NULL, NO_REQ_COND_SIZE, &info_str_0x1710_req },
+
+	{ 0x17, 0x11, SUBFUNC_WITH_LENGTH, "Get File Server Information", 	3 /* fileserver */,
+		NULL, ncp_0x1711_reply, ncp_0x1711_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x17, 0x12, SUBFUNC_WITH_LENGTH, "Get Network Serial Number", 	3 /* fileserver */,
+		NULL, ncp_0x1712_reply, ncp_0x1711_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x17, 0x13, SUBFUNC_WITH_LENGTH, "Get Internet Address", 	3 /* fileserver */,
+		ncp_0x1705_request, ncp_0x1713_reply, ncp_0x2_errors, NULL, NO_REQ_COND_SIZE, &info_str_0x1713_req },
+
+	{ 0x17, 0x14, SUBFUNC_WITH_LENGTH, "Login Object", 	5 /* bindery */,
+		ncp_0x1714_request, NULL, ncp_0x1714_errors, NULL, NO_REQ_COND_SIZE, &info_str_0x1714_req },
+
+	{ 0x17, 0x15, SUBFUNC_WITH_LENGTH, "Get Object Connection List", 	5 /* bindery */,
+		ncp_0x1715_request, ncp_0x1702_reply, ncp_0x1702_errors, NULL, NO_REQ_COND_SIZE, &info_str_0x1715_req },
+
+	{ 0x17, 0x16, SUBFUNC_WITH_LENGTH, "Get Station's Logged Info", 	5 /* bindery */,
+		ncp_0x1705_request, ncp_0x1716_reply, ncp_0x1716_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x17, 0x17, SUBFUNC_WITH_LENGTH, "Get Login Key", 	5 /* bindery */,
+		NULL, ncp_0x1717_reply, ncp_0x1717_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x17, 0x18, SUBFUNC_WITH_LENGTH, "Keyed Object Login", 	5 /* bindery */,
+		ncp_0x1718_request, NULL, ncp_0x1718_errors, NULL, NO_REQ_COND_SIZE, &info_str_0x1718_req },
+
+	{ 0x17, 0x1a, SUBFUNC_WITH_LENGTH, "Get Internet Address", 	3 /* fileserver */,
+		ncp_0x1705_request, ncp_0x171a_reply, ncp_0x1_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x17, 0x1b, SUBFUNC_WITH_LENGTH, "Get Object Connection List", 	5 /* bindery */,
+		ncp_0x171b_request, ncp_0x171b_reply, ncp_0x1702_errors, NULL, NO_REQ_COND_SIZE, &info_str_0x171b_req },
+
+	{ 0x17, 0x1c, SUBFUNC_WITH_LENGTH, "Get Station's Logged Info", 	2 /* connection */,
+		ncp_0x171c_request, ncp_0x1716_reply, ncp_0x171c_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x17, 0x1d, SUBFUNC_WITH_LENGTH, "Change Connection State", 	2 /* connection */,
+		ncp_0x171d_request, NULL, ncp_0x171d_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x17, 0x1e, SUBFUNC_WITH_LENGTH, "Set Watchdog Delay Interval", 	2 /* connection */,
+		ncp_0x171e_request, NULL, ncp_0x171e_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x17, 0x1f, SUBFUNC_WITH_LENGTH, "Get Connection List From Object", 	5 /* bindery */,
+		ncp_0x171f_request, ncp_0x1702_reply, ncp_0x1702_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x17, 0x20, SUBFUNC_WITH_LENGTH, "Scan Bindery Object (List)", 	5 /* bindery */,
+		ncp_0x1720_request, ncp_0x1720_reply, ncp_0x1720_errors, ncp_0x1720_req_cond_indexes, REQ_COND_SIZE_VARIABLE, &info_str_0x1720_req },
+
+	{ 0x17, 0x21, SUBFUNC_WITH_LENGTH, "Generate GUIDs", 	6 /* nds */,
+		ncp_0x1721_request, ncp_0x1721_reply, ncp_0x1_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x17, 0x32, SUBFUNC_WITH_LENGTH, "Create Bindery Object", 	5 /* bindery */,
+		ncp_0x1732_request, NULL, ncp_0x1732_errors, NULL, NO_REQ_COND_SIZE, &info_str_0x1732_req },
+
+	{ 0x17, 0x33, SUBFUNC_WITH_LENGTH, "Delete Bindery Object", 	5 /* bindery */,
+		ncp_0x1733_request, NULL, ncp_0x1733_errors, NULL, NO_REQ_COND_SIZE, &info_str_0x1733_req },
+
+	{ 0x17, 0x34, SUBFUNC_WITH_LENGTH, "Rename Bindery Object", 	5 /* bindery */,
+		ncp_0x1734_request, NULL, ncp_0x1734_errors, NULL, NO_REQ_COND_SIZE, &info_str_0x1734_req },
+
+	{ 0x17, 0x35, SUBFUNC_WITH_LENGTH, "Get Bindery Object ID", 	5 /* bindery */,
+		ncp_0x1733_request, ncp_0x1707_reply, ncp_0x1735_errors, NULL, NO_REQ_COND_SIZE, &info_str_0x1735_req },
+
+	{ 0x17, 0x36, SUBFUNC_WITH_LENGTH, "Get Bindery Object Name", 	5 /* bindery */,
+		ncp_0x110a_reply, ncp_0x1707_reply, ncp_0x1736_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x17, 0x37, SUBFUNC_WITH_LENGTH, "Scan Bindery Object", 	5 /* bindery */,
+		ncp_0x1737_request, ncp_0x1737_reply, ncp_0x1720_errors, NULL, NO_REQ_COND_SIZE, &info_str_0x1737_req },
+
+	{ 0x17, 0x38, SUBFUNC_WITH_LENGTH, "Change Bindery Object Security", 	5 /* bindery */,
+		ncp_0x1738_request, NULL, ncp_0x1738_errors, NULL, NO_REQ_COND_SIZE, &info_str_0x1738_req },
+
+	{ 0x17, 0x39, SUBFUNC_WITH_LENGTH, "Create Property", 	5 /* bindery */,
+		ncp_0x1739_request, NULL, ncp_0x1739_errors, NULL, NO_REQ_COND_SIZE, &info_str_0x1739_req },
+
+	{ 0x17, 0x3a, SUBFUNC_WITH_LENGTH, "Delete Property", 	5 /* bindery */,
+		ncp_0x173a_request, NULL, ncp_0x173a_errors, NULL, NO_REQ_COND_SIZE, &info_str_0x173a_req },
+
+	{ 0x17, 0x3b, SUBFUNC_WITH_LENGTH, "Change Property Security", 	5 /* bindery */,
+		ncp_0x173b_request, NULL, ncp_0x173b_errors, NULL, NO_REQ_COND_SIZE, &info_str_0x173b_req },
+
+	{ 0x17, 0x3c, SUBFUNC_WITH_LENGTH, "Scan Property", 	5 /* bindery */,
+		ncp_0x173c_request, ncp_0x173c_reply, ncp_0x173b_errors, NULL, NO_REQ_COND_SIZE, &info_str_0x173c_req },
+
+	{ 0x17, 0x3d, SUBFUNC_WITH_LENGTH, "Read Property Value", 	5 /* bindery */,
+		ncp_0x173d_request, ncp_0x173d_reply, ncp_0x173d_errors, NULL, NO_REQ_COND_SIZE, &info_str_0x173d_req },
+
+	{ 0x17, 0x3e, SUBFUNC_WITH_LENGTH, "Write Property Value", 	5 /* bindery */,
+		ncp_0x173e_request, NULL, ncp_0x173e_errors, NULL, NO_REQ_COND_SIZE, &info_str_0x173e_req },
+
+	{ 0x17, 0x3f, SUBFUNC_WITH_LENGTH, "Verify Bindery Object Password", 	5 /* bindery */,
+		ncp_0x173f_request, NULL, ncp_0x173f_errors, NULL, NO_REQ_COND_SIZE, &info_str_0x173f_req },
+
+	{ 0x17, 0x40, SUBFUNC_WITH_LENGTH, "Change Bindery Object Password", 	5 /* bindery */,
+		ncp_0x1740_request, NULL, ncp_0x1740_errors, NULL, NO_REQ_COND_SIZE, &info_str_0x1740_req },
+
+	{ 0x17, 0x41, SUBFUNC_WITH_LENGTH, "Add Bindery Object To Set", 	5 /* bindery */,
+		ncp_0x1741_request, NULL, ncp_0x1741_errors, NULL, NO_REQ_COND_SIZE, &info_str_0x1741_req },
+
+	{ 0x17, 0x42, SUBFUNC_WITH_LENGTH, "Delete Bindery Object From Set", 	5 /* bindery */,
+		ncp_0x1741_request, NULL, ncp_0x1742_errors, NULL, NO_REQ_COND_SIZE, &info_str_0x1742_req },
+
+	{ 0x17, 0x43, SUBFUNC_WITH_LENGTH, "Is Bindery Object In Set", 	5 /* bindery */,
+		ncp_0x1741_request, NULL, ncp_0x1743_errors, NULL, NO_REQ_COND_SIZE, &info_str_0x1743_req },
+
+	{ 0x17, 0x44, SUBFUNC_WITH_LENGTH, "Close Bindery", 	5 /* bindery */,
+		NULL, NULL, ncp_0x2_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x17, 0x45, SUBFUNC_WITH_LENGTH, "Open Bindery", 	5 /* bindery */,
+		NULL, NULL, ncp_0x2_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x17, 0x46, SUBFUNC_WITH_LENGTH, "Get Bindery Access Level", 	5 /* bindery */,
+		NULL, ncp_0x1746_reply, ncp_0x1711_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x17, 0x47, SUBFUNC_WITH_LENGTH, "Scan Bindery Object Trustee Paths", 	5 /* bindery */,
+		ncp_0x1747_request, ncp_0x1747_reply, ncp_0x1747_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x17, 0x48, SUBFUNC_WITH_LENGTH, "Get Bindery Object Access Level", 	5 /* bindery */,
+		ncp_0x110a_reply, ncp_0x1748_reply, ncp_0x1711_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x17, 0x49, SUBFUNC_WITH_LENGTH, "Is Calling Station a Manager", 	5 /* bindery */,
+		NULL, NULL, ncp_0x1749_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x17, 0x4a, SUBFUNC_WITH_LENGTH, "Keyed Verify Password", 	5 /* bindery */,
+		ncp_0x1718_request, NULL, ncp_0x174a_errors, NULL, NO_REQ_COND_SIZE, &info_str_0x174a_req },
+
+	{ 0x17, 0x4b, SUBFUNC_WITH_LENGTH, "Keyed Change Password", 	5 /* bindery */,
+		ncp_0x174b_request, NULL, ncp_0x174a_errors, NULL, NO_REQ_COND_SIZE, &info_str_0x174b_req },
+
+	{ 0x17, 0x4c, SUBFUNC_WITH_LENGTH, "List Relations Of an Object", 	5 /* bindery */,
+		ncp_0x174c_request, ncp_0x174c_reply, ncp_0x174c_errors, NULL, NO_REQ_COND_SIZE, &info_str_0x174c_req },
+
+	{ 0x17, 0x64, SUBFUNC_WITH_LENGTH, "Create Queue", 	1 /* qms */,
+		ncp_0x1764_request, ncp_0x1764_reply, ncp_0x1764_errors, NULL, NO_REQ_COND_SIZE, &info_str_0x1764_req },
+
+	{ 0x17, 0x65, SUBFUNC_WITH_LENGTH, "Destroy Queue", 	1 /* qms */,
+		ncp_0x1764_reply, NULL, ncp_0x1765_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x17, 0x66, SUBFUNC_WITH_LENGTH, "Read Queue Current Status", 	1 /* qms */,
+		ncp_0x1764_reply, ncp_0x1766_reply, ncp_0x1765_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x17, 0x67, SUBFUNC_WITH_LENGTH, "Set Queue Current Status", 	1 /* qms */,
+		ncp_0x1767_request, NULL, ncp_0x1767_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x17, 0x68, SUBFUNC_WITH_LENGTH, "Create Queue Job And File", 	1 /* qms */,
+		ncp_0x1768_request, ncp_0x1768_reply, ncp_0x1767_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x17, 0x69, SUBFUNC_WITH_LENGTH, "Close File And Start Queue Job", 	1 /* qms */,
+		ncp_0x1769_request, NULL, ncp_0x1765_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x17, 0x6a, SUBFUNC_WITH_LENGTH, "Remove Job From Queue", 	1 /* qms */,
+		ncp_0x1769_request, NULL, ncp_0x1765_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x17, 0x6b, SUBFUNC_WITH_LENGTH, "Get Queue Job List", 	1 /* qms */,
+		ncp_0x1764_reply, ncp_0x176b_reply, ncp_0x1765_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x17, 0x6c, SUBFUNC_WITH_LENGTH, "Read Queue Job Entry", 	1 /* qms */,
+		ncp_0x1769_request, ncp_0x176c_reply, ncp_0x1765_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x17, 0x6d, SUBFUNC_WITH_LENGTH, "Change Queue Job Entry", 	1 /* qms */,
+		ncp_0x176c_reply, NULL, ncp_0x176d_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x17, 0x6e, SUBFUNC_WITH_LENGTH, "Change Queue Job Position", 	1 /* qms */,
+		ncp_0x176e_request, NULL, ncp_0x176e_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x17, 0x6f, SUBFUNC_WITH_LENGTH, "Attach Queue Server To Queue", 	1 /* qms */,
+		ncp_0x1764_reply, NULL, ncp_0x176f_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x17, 0x70, SUBFUNC_WITH_LENGTH, "Detach Queue Server From Queue", 	1 /* qms */,
+		ncp_0x1764_reply, NULL, ncp_0x1765_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x17, 0x71, SUBFUNC_WITH_LENGTH, "Service Queue Job", 	1 /* qms */,
+		ncp_0x1771_request, ncp_0x1768_reply, ncp_0x1765_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x17, 0x72, SUBFUNC_WITH_LENGTH, "Finish Servicing Queue Job", 	1 /* qms */,
+		ncp_0x1772_request, NULL, ncp_0x1765_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x17, 0x73, SUBFUNC_WITH_LENGTH, "Abort Servicing Queue Job", 	1 /* qms */,
+		ncp_0x1769_request, NULL, ncp_0x176d_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x17, 0x74, SUBFUNC_WITH_LENGTH, "Change To Client Rights", 	1 /* qms */,
+		ncp_0x1769_request, NULL, ncp_0x176d_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x17, 0x75, SUBFUNC_WITH_LENGTH, "Restore Queue Server Rights", 	1 /* qms */,
+		NULL, NULL, ncp_0x1765_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x17, 0x76, SUBFUNC_WITH_LENGTH, "Read Queue Server Current Status", 	1 /* qms */,
+		ncp_0x1776_request, ncp_0x1776_reply, ncp_0x1765_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x17, 0x77, SUBFUNC_WITH_LENGTH, "Set Queue Server Current Status", 	1 /* qms */,
+		ncp_0x1777_request, NULL, ncp_0x1765_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x17, 0x78, SUBFUNC_WITH_LENGTH, "Get Queue Job File Size", 	1 /* qms */,
+		ncp_0x1769_request, ncp_0x1778_reply, ncp_0x1765_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x17, 0x79, SUBFUNC_WITH_LENGTH, "Create Queue Job And File", 	1 /* qms */,
+		ncp_0x1779_request, ncp_0x1779_reply, ncp_0x1767_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x17, 0x7a, SUBFUNC_WITH_LENGTH, "Read Queue Job Entry", 	1 /* qms */,
+		ncp_0x177a_request, ncp_0x177a_reply, ncp_0x1765_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x17, 0x7b, SUBFUNC_WITH_LENGTH, "Change Queue Job Entry", 	1 /* qms */,
+		ncp_0x1768_request, NULL, ncp_0x1767_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x17, 0x7c, SUBFUNC_WITH_LENGTH, "Service Queue Job", 	1 /* qms */,
+		ncp_0x177c_request, ncp_0x1779_reply, ncp_0x1765_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x17, 0x7d, SUBFUNC_WITH_LENGTH, "Read Queue Current Status", 	1 /* qms */,
+		ncp_0x1764_reply, ncp_0x177d_reply, ncp_0x1765_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x17, 0x7e, SUBFUNC_WITH_LENGTH, "Set Queue Current Status", 	1 /* qms */,
+		ncp_0x1767_request, NULL, ncp_0x1765_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x17, 0x7f, SUBFUNC_WITH_LENGTH, "Close File And Start Queue Job", 	1 /* qms */,
+		ncp_0x177a_request, NULL, ncp_0x1767_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x17, 0x80, SUBFUNC_WITH_LENGTH, "Remove Job From Queue", 	1 /* qms */,
+		ncp_0x177a_request, NULL, ncp_0x1765_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x17, 0x81, SUBFUNC_WITH_LENGTH, "Get Queue Job List", 	1 /* qms */,
+		ncp_0x177a_request, ncp_0x1781_reply, ncp_0x1765_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x17, 0x82, SUBFUNC_WITH_LENGTH, "Change Job Priority", 	1 /* qms */,
+		ncp_0x1782_request, NULL, ncp_0x1765_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x17, 0x83, SUBFUNC_WITH_LENGTH, "Finish Servicing Queue Job", 	1 /* qms */,
+		ncp_0x1783_request, NULL, ncp_0x1765_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x17, 0x84, SUBFUNC_WITH_LENGTH, "Abort Servicing Queue Job", 	1 /* qms */,
+		ncp_0x177a_request, NULL, ncp_0x176d_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x17, 0x85, SUBFUNC_WITH_LENGTH, "Change To Client Rights", 	1 /* qms */,
+		ncp_0x177a_request, NULL, ncp_0x176d_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x17, 0x86, SUBFUNC_WITH_LENGTH, "Read Queue Server Current Status", 	1 /* qms */,
+		ncp_0x1786_request, ncp_0x1776_reply, ncp_0x1765_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x17, 0x87, SUBFUNC_WITH_LENGTH, "Get Queue Job File Size", 	1 /* qms */,
+		ncp_0x177a_request, ncp_0x1778_reply, ncp_0x1765_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x17, 0x88, SUBFUNC_WITH_LENGTH, "Move Queue Job From Src Q to Dst Q", 	1 /* qms */,
+		ncp_0x1788_request, ncp_0x1788_reply, ncp_0x1788_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x17, 0x89, SUBFUNC_WITH_LENGTH, "Get Queue Jobs From Form List", 	1 /* qms */,
+		ncp_0x1789_request, ncp_0x1789_reply, ncp_0x1788_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x17, 0x8a, SUBFUNC_WITH_LENGTH, "Service Queue Job By Form List", 	1 /* qms */,
+		ncp_0x1789_request, ncp_0x1779_reply, ncp_0x1788_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x17, 0x96, SUBFUNC_WITH_LENGTH, "Get Current Account Status", 	7 /* accounting */,
+		ncp_0x1733_request, ncp_0x1796_reply, ncp_0x1796_errors, NULL, NO_REQ_COND_SIZE, &info_str_0x1796_req },
+
+	{ 0x17, 0x97, SUBFUNC_WITH_LENGTH, "Submit Account Charge", 	7 /* accounting */,
+		ncp_0x1797_request, NULL, ncp_0x1797_errors, NULL, NO_REQ_COND_SIZE, &info_str_0x1797_req },
+
+	{ 0x17, 0x98, SUBFUNC_WITH_LENGTH, "Submit Account Hold", 	7 /* accounting */,
+		ncp_0x1798_request, NULL, ncp_0x1797_errors, NULL, NO_REQ_COND_SIZE, &info_str_0x1798_req },
+
+	{ 0x17, 0x99, SUBFUNC_WITH_LENGTH, "Submit Account Note", 	7 /* accounting */,
+		ncp_0x1799_request, NULL, ncp_0x1799_errors, NULL, NO_REQ_COND_SIZE, &info_str_0x1799_req },
+
+	{ 0x17, 0xc8, SUBFUNC_WITH_LENGTH, "Check Console Privileges", 	8 /* stats */,
+		NULL, NULL, ncp_0x17c8_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x17, 0xc9, SUBFUNC_WITH_LENGTH, "Get File Server Description Strings", 	8 /* stats */,
+		NULL, ncp_0x17c9_reply, ncp_0x1711_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x17, 0xca, SUBFUNC_WITH_LENGTH, "Set File Server Date And Time", 	8 /* stats */,
+		ncp_0x17ca_request, NULL, ncp_0x17c8_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x17, 0xcb, SUBFUNC_WITH_LENGTH, "Disable File Server Login", 	8 /* stats */,
+		NULL, NULL, ncp_0x17c8_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x17, 0xcc, SUBFUNC_WITH_LENGTH, "Enable File Server Login", 	8 /* stats */,
+		NULL, NULL, ncp_0x17c8_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x17, 0xcd, SUBFUNC_WITH_LENGTH, "Get File Server Login Status", 	8 /* stats */,
+		NULL, ncp_0x17cd_reply, ncp_0x17cd_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x17, 0xcf, SUBFUNC_WITH_LENGTH, "Disable Transaction Tracking", 	8 /* stats */,
+		NULL, NULL, ncp_0x17c8_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x17, 0xd0, SUBFUNC_WITH_LENGTH, "Enable Transaction Tracking", 	8 /* stats */,
+		NULL, NULL, ncp_0x17c8_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x17, 0xd1, SUBFUNC_WITH_LENGTH, "Send Console Broadcast", 	8 /* stats */,
+		ncp_0x17d1_request, NULL, ncp_0x17d1_errors, NULL, NO_REQ_COND_SIZE, &info_str_0x17d1_req },
+
+	{ 0x17, 0xd2, SUBFUNC_WITH_LENGTH, "Clear Connection Number", 	8 /* stats */,
+		ncp_0x17d2_request, NULL, ncp_0x17d1_errors, NULL, NO_REQ_COND_SIZE, &info_str_0x17d2_req },
+
+	{ 0x17, 0xd3, SUBFUNC_WITH_LENGTH, "Down File Server", 	8 /* stats */,
+		ncp_0x17d3_request, NULL, ncp_0x17d3_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x17, 0xd4, SUBFUNC_WITH_LENGTH, "Get File System Statistics", 	8 /* stats */,
+		NULL, ncp_0x17d4_reply, ncp_0x17d4_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x17, 0xd5, SUBFUNC_WITH_LENGTH, "Get Transaction Tracking Statistics", 	8 /* stats */,
+		ncp_0x17d5_request, ncp_0x17d5_reply, ncp_0x17d4_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x17, 0xd6, SUBFUNC_WITH_LENGTH, "Read Disk Cache Statistics", 	8 /* stats */,
+		NULL, ncp_0x17d6_reply, ncp_0x17d4_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x17, 0xd7, SUBFUNC_WITH_LENGTH, "Get Drive Mapping Table", 	8 /* stats */,
+		NULL, ncp_0x17d7_reply, ncp_0x17d4_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x17, 0xd8, SUBFUNC_WITH_LENGTH, "Read Physical Disk Statistics", 	8 /* stats */,
+		ncp_0x17d8_request, ncp_0x17d8_reply, ncp_0x17d4_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x17, 0xd9, SUBFUNC_WITH_LENGTH, "Get Disk Channel Statistics", 	8 /* stats */,
+		ncp_0x17d9_request, ncp_0x17d9_reply, ncp_0x17d4_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x17, 0xdb, SUBFUNC_WITH_LENGTH, "Get Connection's Open Files", 	0 /* file */,
+		ncp_0x17db_request, ncp_0x17db_reply, ncp_0x17d4_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x17, 0xdc, SUBFUNC_WITH_LENGTH, "Get Connection Using A File", 	0 /* file */,
+		ncp_0x17dc_request, ncp_0x17dc_reply, ncp_0x17d4_errors, NULL, NO_REQ_COND_SIZE, &info_str_0x17dc_req },
+
+	{ 0x17, 0xdd, SUBFUNC_WITH_LENGTH, "Get Physical Record Locks By Connection And File", 	0 /* file */,
+		ncp_0x17dd_request, ncp_0x17dd_reply, ncp_0x17dd_errors, NULL, NO_REQ_COND_SIZE, &info_str_0x17dd_req },
+
+	{ 0x17, 0xde, SUBFUNC_WITH_LENGTH, "Get Physical Record Locks By File", 	0 /* file */,
+		ncp_0x17de_request, ncp_0x17de_reply, ncp_0x17dd_errors, NULL, NO_REQ_COND_SIZE, &info_str_0x17de_req },
+
+	{ 0x17, 0xdf, SUBFUNC_WITH_LENGTH, "Get Logical Records By Connection", 	0 /* file */,
+		ncp_0x17df_request, ncp_0x17df_reply, ncp_0x17dd_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x17, 0xe0, SUBFUNC_WITH_LENGTH, "Get Logical Record Information", 	0 /* file */,
+		ncp_0x17e0_request, ncp_0x17e0_reply, ncp_0x17dd_errors, NULL, NO_REQ_COND_SIZE, &info_str_0x17e0_req },
+
+	{ 0x17, 0xe1, SUBFUNC_WITH_LENGTH, "Get Connection's Semaphores", 	0 /* file */,
+		ncp_0x17e1_request, ncp_0x17e1_reply, ncp_0x17dd_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x17, 0xe2, SUBFUNC_WITH_LENGTH, "Get Semaphore Information", 	0 /* file */,
+		ncp_0x17d5_request, ncp_0x17e2_reply, ncp_0x17dd_errors, NULL, NO_REQ_COND_SIZE, &info_str_0x17e2_req },
+
+	{ 0x17, 0xe3, SUBFUNC_WITH_LENGTH, "Get LAN Driver Configuration Information", 	8 /* stats */,
+		ncp_0x17e3_request, ncp_0x17e3_reply, ncp_0x17dd_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x17, 0xe5, SUBFUNC_WITH_LENGTH, "Get Connection Usage Statistics", 	8 /* stats */,
+		ncp_0x17e5_request, ncp_0x17e5_reply, ncp_0x17dd_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x17, 0xe6, SUBFUNC_WITH_LENGTH, "Get Object's Remaining Disk Space", 	8 /* stats */,
+		ncp_0x110a_reply, ncp_0x17e6_reply, ncp_0x17dd_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x17, 0xe7, SUBFUNC_WITH_LENGTH, "Get File Server LAN I/O Statistics", 	8 /* stats */,
+		NULL, ncp_0x17e7_reply, ncp_0x17dd_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x17, 0xe8, SUBFUNC_WITH_LENGTH, "Get File Server Misc Information", 	8 /* stats */,
+		NULL, ncp_0x17e8_reply, ncp_0x17dd_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x17, 0xe9, SUBFUNC_WITH_LENGTH, "Get Volume Information", 	8 /* stats */,
+		ncp_0x12_request, ncp_0x17e9_reply, ncp_0x17dd_errors, NULL, NO_REQ_COND_SIZE, &info_str_0x17e9_req },
+
+	{ 0x17, 0xea, SUBFUNC_WITH_LENGTH, "Get Connection's Task Information", 	8 /* stats */,
+		ncp_0x17e5_request, ncp_0x17ea_reply, ncp_0x17dd_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x17, 0xeb, SUBFUNC_WITH_LENGTH, "Get Connection's Open Files", 	0 /* file */,
+		ncp_0x17e1_request, ncp_0x17eb_reply, ncp_0x17d4_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x17, 0xec, SUBFUNC_WITH_LENGTH, "Get Connection Using A File", 	0 /* file */,
+		ncp_0x17ec_request, ncp_0x17ec_reply, ncp_0x17d4_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x17, 0xed, SUBFUNC_WITH_LENGTH, "Get Physical Record Locks By Connection And File", 	0 /* file */,
+		ncp_0x17ed_request, ncp_0x17ed_reply, ncp_0x17dd_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x17, 0xee, SUBFUNC_WITH_LENGTH, "Get Physical Record Locks By File", 	0 /* file */,
+		ncp_0x17ec_request, ncp_0x17ee_reply, ncp_0x17dd_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x17, 0xef, SUBFUNC_WITH_LENGTH, "Get Logical Records By Connection", 	0 /* file */,
+		ncp_0x17ef_request, ncp_0x17ef_reply, ncp_0x17dd_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x17, 0xf0, SUBFUNC_WITH_LENGTH, "Get Logical Record Information (old)", 	0 /* file */,
+		ncp_0x17e0_request, ncp_0x17f0_reply, ncp_0x17dd_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x17, 0xf1, SUBFUNC_WITH_LENGTH, "Get Connection's Semaphores", 	0 /* file */,
+		ncp_0x17e1_request, ncp_0x17f1_reply, ncp_0x17dd_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x17, 0xf2, SUBFUNC_WITH_LENGTH, "Get Semaphore Information", 	0 /* file */,
+		ncp_0x17d5_request, ncp_0x17f2_reply, ncp_0x17dd_errors, NULL, NO_REQ_COND_SIZE, &info_str_0x17f2_req },
+
+	{ 0x17, 0xf3, SUBFUNC_WITH_LENGTH, "Map Directory Number to Path", 	0 /* file */,
+		ncp_0x17f3_request, ncp_0x1601_reply, ncp_0x17f3_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x17, 0xf4, SUBFUNC_WITH_LENGTH, "Convert Path to Dir Entry", 	0 /* file */,
+		ncp_0x162a_request, ncp_0x17f4_reply, ncp_0x17dd_errors, NULL, NO_REQ_COND_SIZE, &info_str_0x17f4_req },
+
+	{ 0x17, 0xfd, SUBFUNC_WITH_LENGTH, "Send Console Broadcast", 	8 /* stats */,
+		ncp_0x17fd_request, NULL, ncp_0x17d1_errors, NULL, NO_REQ_COND_SIZE, &info_str_0x17fd_req },
+
+	{ 0x17, 0xfe, SUBFUNC_WITH_LENGTH, "Clear Connection Number", 	8 /* stats */,
+		ncp_0x17fe_request, NULL, ncp_0x17d1_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x18, 0x00, NO_SUBFUNC, "End of Job", 	2 /* connection */,
+		NULL, NULL, ncp_0x1_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x19, 0x00, NO_SUBFUNC, "Logout", 	2 /* connection */,
+		NULL, NULL, ncp_0x1_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x1a, 0x00, NO_SUBFUNC, "Log Physical Record", 	0 /* file */,
+		ncp_0x1a_request, NULL, ncp_0x1a_errors, NULL, NO_REQ_COND_SIZE, &info_str_0x1a_req },
+
+	{ 0x1b, 0x00, NO_SUBFUNC, "Lock Physical Record Set", 	0 /* file */,
+		ncp_0x1b_request, NULL, ncp_0x1a_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x1c, 0x00, NO_SUBFUNC, "Release Physical Record", 	0 /* file */,
+		ncp_0x1c_request, NULL, ncp_0x1c_errors, NULL, NO_REQ_COND_SIZE, &info_str_0x1c_req },
+
+	{ 0x1d, 0x00, NO_SUBFUNC, "Release Physical Record Set", 	0 /* file */,
+		ncp_0x6_request, NULL, ncp_0x1c_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x1e, 0x00, NO_SUBFUNC, "Clear Physical Record", 	0 /* file */,
+		ncp_0x1e_request, NULL, ncp_0x1c_errors, NULL, NO_REQ_COND_SIZE, &info_str_0x1e_req },
+
+	{ 0x1f, 0x00, NO_SUBFUNC, "Clear Physical Record Set", 	0 /* file */,
+		ncp_0x6_request, NULL, ncp_0x1c_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x20, 0x00, SUBFUNC_NO_LENGTH, "Open Semaphore", 	0 /* file */,
+		ncp_0x2000_request, ncp_0x2000_reply, ncp_0x2000_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x20, 0x01, SUBFUNC_NO_LENGTH, "Examine Semaphore", 	0 /* file */,
+		ncp_0x2001_request, ncp_0x2001_reply, ncp_0x2000_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x20, 0x02, SUBFUNC_NO_LENGTH, "Wait On Semaphore", 	0 /* file */,
+		ncp_0x2002_request, NULL, ncp_0x2000_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x20, 0x03, SUBFUNC_NO_LENGTH, "Signal Semaphore", 	0 /* file */,
+		ncp_0x2001_request, NULL, ncp_0x2000_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x20, 0x04, SUBFUNC_NO_LENGTH, "Close Semaphore", 	0 /* file */,
+		ncp_0x2001_request, NULL, ncp_0x2000_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x21, 0x00, NO_SUBFUNC, "Negotiate Buffer Size", 	2 /* connection */,
+		ncp_0x21_request, ncp_0x21_request, ncp_0x1_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x22, 0x00, SUBFUNC_NO_LENGTH, "TTS Is Available", 	9 /* tts */,
+		NULL, NULL, ncp_0x2200_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x22, 0x01, SUBFUNC_NO_LENGTH, "TTS Begin Transaction", 	9 /* tts */,
+		NULL, NULL, ncp_0x1_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x22, 0x02, SUBFUNC_NO_LENGTH, "TTS End Transaction", 	9 /* tts */,
+		NULL, ncp_0x2202_reply, ncp_0x2202_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x22, 0x03, SUBFUNC_NO_LENGTH, "TTS Abort Transaction", 	9 /* tts */,
+		NULL, NULL, ncp_0x2203_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x22, 0x04, SUBFUNC_NO_LENGTH, "TTS Transaction Status", 	9 /* tts */,
+		ncp_0x2202_reply, NULL, ncp_0x1_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x22, 0x05, SUBFUNC_NO_LENGTH, "TTS Get Application Thresholds", 	9 /* tts */,
+		NULL, ncp_0x2205_reply, ncp_0x1_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x22, 0x06, SUBFUNC_NO_LENGTH, "TTS Set Application Thresholds", 	9 /* tts */,
+		ncp_0x2205_reply, NULL, ncp_0x1711_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x22, 0x07, SUBFUNC_NO_LENGTH, "TTS Get Workstation Thresholds", 	9 /* tts */,
+		ncp_0x2205_reply, NULL, ncp_0x1_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x22, 0x08, SUBFUNC_NO_LENGTH, "TTS Set Workstation Thresholds", 	9 /* tts */,
+		ncp_0x2205_reply, NULL, ncp_0x1_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x22, 0x09, SUBFUNC_NO_LENGTH, "TTS Get Transaction Bits", 	9 /* tts */,
+		NULL, ncp_0x2209_reply, ncp_0x1_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x22, 0x0a, SUBFUNC_NO_LENGTH, "TTS Set Transaction Bits", 	9 /* tts */,
+		ncp_0x2209_reply, NULL, ncp_0x1_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x23, 0x01, SUBFUNC_WITH_LENGTH, "AFP Create Directory", 	10 /* afp */,
+		ncp_0x2301_request, ncp_0x2301_reply, ncp_0x2301_errors, NULL, NO_REQ_COND_SIZE, &info_str_0x2301_req },
+
+	{ 0x23, 0x02, SUBFUNC_WITH_LENGTH, "AFP Create File", 	10 /* afp */,
+		ncp_0x2302_request, ncp_0x2301_reply, ncp_0x2302_errors, NULL, NO_REQ_COND_SIZE, &info_str_0x2302_req },
+
+	{ 0x23, 0x03, SUBFUNC_WITH_LENGTH, "AFP Delete", 	10 /* afp */,
+		ncp_0x2303_request, NULL, ncp_0x2303_errors, NULL, NO_REQ_COND_SIZE, &info_str_0x2303_req },
+
+	{ 0x23, 0x04, SUBFUNC_WITH_LENGTH, "AFP Get Entry ID From Name", 	10 /* afp */,
+		ncp_0x2303_request, ncp_0x2304_reply, ncp_0x2304_errors, NULL, NO_REQ_COND_SIZE, &info_str_0x2304_req },
+
+	{ 0x23, 0x05, SUBFUNC_WITH_LENGTH, "AFP Get File Information", 	10 /* afp */,
+		ncp_0x2305_request, ncp_0x2305_reply, ncp_0x2304_errors, NULL, NO_REQ_COND_SIZE, &info_str_0x2305_req },
+
+	{ 0x23, 0x06, SUBFUNC_WITH_LENGTH, "AFP Get Entry ID From NetWare Handle", 	10 /* afp */,
+		ncp_0x2306_request, ncp_0x2306_reply, ncp_0x2306_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x23, 0x07, SUBFUNC_WITH_LENGTH, "AFP Rename", 	10 /* afp */,
+		ncp_0x2307_request, NULL, ncp_0x2307_errors, NULL, NO_REQ_COND_SIZE, &info_str_0x2307_req },
+
+	{ 0x23, 0x08, SUBFUNC_WITH_LENGTH, "AFP Open File Fork", 	10 /* afp */,
+		ncp_0x2308_request, ncp_0x2308_reply, ncp_0x2308_errors, NULL, NO_REQ_COND_SIZE, &info_str_0x2308_req },
+
+	{ 0x23, 0x09, SUBFUNC_WITH_LENGTH, "AFP Set File Information", 	10 /* afp */,
+		ncp_0x2309_request, NULL, ncp_0x2309_errors, NULL, NO_REQ_COND_SIZE, &info_str_0x2309_req },
+
+	{ 0x23, 0x0a, SUBFUNC_WITH_LENGTH, "AFP Scan File Information", 	10 /* afp */,
+		ncp_0x230a_request, ncp_0x230a_reply, ncp_0x230a_errors, NULL, NO_REQ_COND_SIZE, &info_str_0x230a_req },
+
+	{ 0x23, 0x0b, SUBFUNC_WITH_LENGTH, "AFP Alloc Temporary Directory Handle", 	10 /* afp */,
+		ncp_0x230b_request, ncp_0x1612_reply, ncp_0x230b_errors, NULL, NO_REQ_COND_SIZE, &info_str_0x230b_req },
+
+	{ 0x23, 0x0c, SUBFUNC_WITH_LENGTH, "AFP Get Entry ID From Path Name", 	10 /* afp */,
+		ncp_0x162a_request, ncp_0x230c_reply, ncp_0x230c_errors, NULL, NO_REQ_COND_SIZE, &info_str_0x230c_req },
+
+	{ 0x23, 0x0d, SUBFUNC_WITH_LENGTH, "AFP 2.0 Create Directory", 	10 /* afp */,
+		ncp_0x230d_request, ncp_0x2301_reply, ncp_0x230d_errors, NULL, NO_REQ_COND_SIZE, &info_str_0x230d_req },
+
+	{ 0x23, 0x0e, SUBFUNC_WITH_LENGTH, "AFP 2.0 Create File", 	10 /* afp */,
+		ncp_0x230e_request, ncp_0x2301_reply, ncp_0x230e_errors, NULL, NO_REQ_COND_SIZE, &info_str_0x230e_req },
+
+	{ 0x23, 0x0f, SUBFUNC_WITH_LENGTH, "AFP 2.0 Get File Or Directory Information", 	10 /* afp */,
+		ncp_0x2305_request, ncp_0x230f_reply, ncp_0x2304_errors, NULL, NO_REQ_COND_SIZE, &info_str_0x230f_req },
+
+	{ 0x23, 0x10, SUBFUNC_WITH_LENGTH, "AFP 2.0 Set File Information", 	10 /* afp */,
+		ncp_0x2310_request, NULL, ncp_0x2309_errors, NULL, NO_REQ_COND_SIZE, &info_str_0x2310_req },
+
+	{ 0x23, 0x11, SUBFUNC_WITH_LENGTH, "AFP 2.0 Scan File Information", 	10 /* afp */,
+		ncp_0x230a_request, ncp_0x2311_reply, ncp_0x230a_errors, NULL, NO_REQ_COND_SIZE, &info_str_0x2311_req },
+
+	{ 0x23, 0x12, SUBFUNC_WITH_LENGTH, "AFP Get DOS Name From Entry ID", 	10 /* afp */,
+		ncp_0x2312_request, ncp_0x1601_reply, ncp_0x2312_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x23, 0x13, SUBFUNC_WITH_LENGTH, "AFP Get Macintosh Info On Deleted File", 	10 /* afp */,
+		ncp_0x2313_request, ncp_0x2313_reply, ncp_0x2313_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x24, 0x00, SUBFUNC_WITH_LENGTH, "Get NCP Extension Information", 	3 /* fileserver */,
+		ncp_0x2400_request, ncp_0x2400_reply, ncp_0x2400_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x24, 0x01, SUBFUNC_WITH_LENGTH, "Get NCP Extension Maximum Data Size", 	3 /* fileserver */,
+		NULL, ncp_0x2401_reply, ncp_0x2400_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x24, 0x02, SUBFUNC_WITH_LENGTH, "Get NCP Extension Information by Name", 	3 /* fileserver */,
+		ncp_0x2402_request, ncp_0x2400_reply, ncp_0x2402_errors, NULL, NO_REQ_COND_SIZE, &info_str_0x2402_req },
+
+	{ 0x24, 0x03, SUBFUNC_WITH_LENGTH, "Get Number of Registered NCP Extensions", 	3 /* fileserver */,
+		NULL, ncp_0x2403_reply, ncp_0x2400_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x24, 0x04, SUBFUNC_WITH_LENGTH, "Get NCP Extension Registered Verbs List", 	3 /* fileserver */,
+		ncp_0x2404_request, ncp_0x2404_reply, ncp_0x2400_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x24, 0x05, SUBFUNC_WITH_LENGTH, "Return NCP Extension Information", 	3 /* fileserver */,
+		ncp_0x2400_request, ncp_0x2400_reply, ncp_0x2400_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x24, 0x06, SUBFUNC_WITH_LENGTH, "Return NCP Extension Maximum Data Size", 	3 /* fileserver */,
+		NULL, ncp_0x2406_reply, ncp_0x2400_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x25, 0x00, NO_SUBFUNC, "Execute NCP Extension", 	3 /* fileserver */,
+		ncp_0x2400_request, NULL, ncp_0x25_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x3b, 0x00, NO_SUBFUNC, "Commit File", 	0 /* file */,
+		ncp_0x3b_request, NULL, ncp_0x3b_errors, NULL, NO_REQ_COND_SIZE, &info_str_0x3b_req },
+
+	{ 0x3e, 0x00, NO_SUBFUNC, "File Search Initialize", 	0 /* file */,
+		ncp_0x162a_request, ncp_0x3e_reply, ncp_0x3e_errors, NULL, NO_REQ_COND_SIZE, &info_str_0x3e_req },
+
+	{ 0x3f, 0x00, NO_SUBFUNC, "File Search Continue", 	0 /* file */,
+		ncp_0x3f_request, ncp_0x3f_reply, ncp_0x3f_errors, ncp_0x3f_req_cond_indexes, REQ_COND_SIZE_VARIABLE, &info_str_0x3f_req },
+
+	{ 0x40, 0x00, NO_SUBFUNC, "Search for a File", 	0 /* file */,
+		ncp_0x40_request, ncp_0x40_reply, ncp_0x40_errors, NULL, NO_REQ_COND_SIZE, &info_str_0x40_req },
+
+	{ 0x41, 0x00, NO_SUBFUNC, "Open File", 	0 /* file */,
+		ncp_0x41_request, ncp_0x41_reply, ncp_0x41_errors, NULL, NO_REQ_COND_SIZE, &info_str_0x41_req },
+
+	{ 0x42, 0x00, NO_SUBFUNC, "Close File", 	0 /* file */,
+		ncp_0x3b_request, NULL, ncp_0x42_errors, NULL, NO_REQ_COND_SIZE, &info_str_0x42_req },
+
+	{ 0x43, 0x00, NO_SUBFUNC, "Create File", 	0 /* file */,
+		ncp_0x43_request, ncp_0x41_reply, ncp_0x43_errors, NULL, NO_REQ_COND_SIZE, &info_str_0x43_req },
+
+	{ 0x44, 0x00, NO_SUBFUNC, "Erase File", 	0 /* file */,
+		ncp_0x41_request, NULL, ncp_0x44_errors, NULL, NO_REQ_COND_SIZE, &info_str_0x44_req },
+
+	{ 0x45, 0x00, NO_SUBFUNC, "Rename File", 	0 /* file */,
+		ncp_0x45_request, NULL, ncp_0x45_errors, NULL, NO_REQ_COND_SIZE, &info_str_0x45_req },
+
+	{ 0x46, 0x00, NO_SUBFUNC, "Set File Attributes", 	0 /* file */,
+		ncp_0x46_request, NULL, ncp_0x46_errors, NULL, NO_REQ_COND_SIZE, &info_str_0x46_req },
+
+	{ 0x47, 0x00, NO_SUBFUNC, "Get Current Size of File", 	0 /* file */,
+		ncp_0x3b_request, ncp_0x47_reply, ncp_0x47_errors, NULL, NO_REQ_COND_SIZE, &info_str_0x47_req },
+
+	{ 0x48, 0x00, NO_SUBFUNC, "Read From A File", 	0 /* file */,
+		ncp_0x48_request, ncp_0x48_reply, ncp_0x48_errors, NULL, NO_REQ_COND_SIZE, &info_str_0x48_req },
+
+	{ 0x49, 0x00, NO_SUBFUNC, "Write to a File", 	0 /* file */,
+		ncp_0x48_request, NULL, ncp_0x49_errors, NULL, NO_REQ_COND_SIZE, &info_str_0x49_req },
+
+	{ 0x4a, 0x00, NO_SUBFUNC, "Copy from One File to Another", 	0 /* file */,
+		ncp_0x4a_request, ncp_0x4a_reply, ncp_0x4a_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x4b, 0x00, NO_SUBFUNC, "Set File Time Date Stamp", 	0 /* file */,
+		ncp_0x4b_request, NULL, ncp_0x4b_errors, NULL, NO_REQ_COND_SIZE, &info_str_0x4b_req },
+
+	{ 0x4c, 0x00, NO_SUBFUNC, "Open File", 	0 /* file */,
+		ncp_0x4c_request, ncp_0x41_reply, ncp_0x41_errors, NULL, NO_REQ_COND_SIZE, &info_str_0x4c_req },
+
+	{ 0x4d, 0x00, NO_SUBFUNC, "Create File", 	0 /* file */,
+		ncp_0x43_request, ncp_0x41_reply, ncp_0x43_errors, NULL, NO_REQ_COND_SIZE, &info_str_0x4d_req },
+
+	{ 0x4f, 0x00, NO_SUBFUNC, "Set File Extended Attributes", 	0 /* file */,
+		ncp_0x4f_request, NULL, ncp_0x46_errors, NULL, NO_REQ_COND_SIZE, &info_str_0x4f_req },
+
+	{ 0x54, 0x00, NO_SUBFUNC, "Open/Create File", 	0 /* file */,
+		ncp_0x54_request, ncp_0x41_reply, ncp_0x54_errors, NULL, NO_REQ_COND_SIZE, &info_str_0x54_req },
+
+	{ 0x55, 0x00, NO_SUBFUNC, "Get Sparse File Data Block Bit Map", 	0 /* file */,
+		ncp_0x55_request, ncp_0x55_reply, ncp_0x47_errors, NULL, NO_REQ_COND_SIZE, &info_str_0x55_req },
+
+	{ 0x56, 0x01, SUBFUNC_NO_LENGTH, "Close Extended Attribute Handle", 	0 /* file */,
+		ncp_0x5601_request, NULL, ncp_0x5601_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x56, 0x02, SUBFUNC_NO_LENGTH, "Write Extended Attribute", 	0 /* file */,
+		ncp_0x5602_request, ncp_0x5602_reply, ncp_0x5602_errors, NULL, NO_REQ_COND_SIZE, &info_str_0x5602_req },
+
+	{ 0x56, 0x03, SUBFUNC_NO_LENGTH, "Read Extended Attribute", 	0 /* file */,
+		ncp_0x5603_request, ncp_0x5603_reply, ncp_0x5603_errors, NULL, NO_REQ_COND_SIZE, &info_str_0x5603_req },
+
+	{ 0x56, 0x04, SUBFUNC_NO_LENGTH, "Enumerate Extended Attribute", 	0 /* file */,
+		ncp_0x5604_request, ncp_0x5604_reply, ncp_0x5604_errors, NULL, NO_REQ_COND_SIZE, &info_str_0x5604_req },
+
+	{ 0x56, 0x05, SUBFUNC_NO_LENGTH, "Duplicate Extended Attributes", 	0 /* file */,
+		ncp_0x5605_request, ncp_0x5605_reply, ncp_0x5605_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x57, 0x01, SUBFUNC_NO_LENGTH, "Open/Create File or Subdirectory", 	0 /* file */,
+		ncp_0x5701_request, ncp_0x5701_reply, ncp_0x5701_errors, ncp_0x5701_req_cond_indexes, REQ_COND_SIZE_VARIABLE, &info_str_0x5701_req },
+
+	{ 0x57, 0x02, SUBFUNC_NO_LENGTH, "Initialize Search", 	0 /* file */,
+		ncp_0x5702_request, ncp_0x5702_reply, ncp_0x5702_errors, NULL, NO_REQ_COND_SIZE, &info_str_0x5702_req },
+
+	{ 0x57, 0x03, SUBFUNC_NO_LENGTH, "Search for File or Subdirectory", 	0 /* file */,
+		ncp_0x5703_request, ncp_0x5703_reply, ncp_0x5702_errors, ncp_0x5701_req_cond_indexes, REQ_COND_SIZE_VARIABLE, &info_str_0x5703_req },
+
+	{ 0x57, 0x04, SUBFUNC_NO_LENGTH, "Rename Or Move a File or Subdirectory", 	0 /* file */,
+		ncp_0x5704_request, NULL, ncp_0x5704_errors, NULL, NO_REQ_COND_SIZE, &info_str_0x5704_req },
+
+	{ 0x57, 0x05, SUBFUNC_NO_LENGTH, "Scan File or Subdirectory for Trustees", 	0 /* file */,
+		ncp_0x5705_request, ncp_0x5705_reply, ncp_0x5702_errors, NULL, NO_REQ_COND_SIZE, &info_str_0x5705_req },
+
+	{ 0x57, 0x06, SUBFUNC_NO_LENGTH, "Obtain File or SubDirectory Information", 	0 /* file */,
+		ncp_0x5706_request, ncp_0x5706_reply, ncp_0x5706_errors, ncp_0x5706_req_cond_indexes, REQ_COND_SIZE_VARIABLE, &info_str_0x5706_req },
+
+	{ 0x57, 0x07, SUBFUNC_NO_LENGTH, "Modify File or Subdirectory DOS Information", 	0 /* file */,
+		ncp_0x5707_request, NULL, ncp_0x5707_errors, NULL, NO_REQ_COND_SIZE, &info_str_0x5707_req },
+
+	{ 0x57, 0x08, SUBFUNC_NO_LENGTH, "Delete a File or Subdirectory", 	0 /* file */,
+		ncp_0x5708_request, NULL, ncp_0x5708_errors, NULL, NO_REQ_COND_SIZE, &info_str_0x5708_req },
+
+	{ 0x57, 0x09, SUBFUNC_NO_LENGTH, "Set Short Directory Handle", 	0 /* file */,
+		ncp_0x5709_request, NULL, ncp_0x5702_errors, NULL, NO_REQ_COND_SIZE, &info_str_0x5709_req },
+
+	{ 0x57, 0x0a, SUBFUNC_NO_LENGTH, "Add Trustee Set to File or Subdirectory", 	0 /* file */,
+		ncp_0x570a_request, NULL, ncp_0x570a_errors, NULL, NO_REQ_COND_SIZE, &info_str_0x570a_req },
+
+	{ 0x57, 0x0b, SUBFUNC_NO_LENGTH, "Delete Trustee Set from File or SubDirectory", 	0 /* file */,
+		ncp_0x570b_request, NULL, ncp_0x5702_errors, NULL, NO_REQ_COND_SIZE, &info_str_0x570b_req },
+
+	{ 0x57, 0x0c, SUBFUNC_NO_LENGTH, "Allocate Short Directory Handle", 	0 /* file */,
+		ncp_0x570c_request, ncp_0x570c_reply, ncp_0x5702_errors, NULL, NO_REQ_COND_SIZE, &info_str_0x570c_req },
+
+	{ 0x57, 0x10, SUBFUNC_NO_LENGTH, "Scan Salvageable Files", 	0 /* file */,
+		ncp_0x5710_request, ncp_0x5710_reply, ncp_0x5702_errors, ncp_0x5710_req_cond_indexes, REQ_COND_SIZE_VARIABLE, &info_str_0x5710_req },
+
+	{ 0x57, 0x11, SUBFUNC_NO_LENGTH, "Recover Salvageable File", 	0 /* file */,
+		ncp_0x5711_request, NULL, ncp_0x5702_errors, NULL, NO_REQ_COND_SIZE, &info_str_0x5711_req },
+
+	{ 0x57, 0x12, SUBFUNC_NO_LENGTH, "Purge Salvageable Files", 	0 /* file */,
+		ncp_0x5712_request, NULL, ncp_0x5702_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x57, 0x13, SUBFUNC_NO_LENGTH, "Get Name Space Information", 	0 /* file */,
+		ncp_0x5713_request, ncp_0x5713_reply, ncp_0x5702_errors, ncp_0x5713_req_cond_indexes, REQ_COND_SIZE_VARIABLE, NULL },
+
+	{ 0x57, 0x14, SUBFUNC_NO_LENGTH, "Search for File or Subdirectory Set", 	0 /* file */,
+		ncp_0x5714_request, ncp_0x5714_reply, ncp_0x5702_errors, ncp_0x5706_req_cond_indexes, REQ_COND_SIZE_VARIABLE, NULL },
+
+	{ 0x57, 0x15, SUBFUNC_NO_LENGTH, "Get Path String from Short Directory Handle", 	0 /* file */,
+		ncp_0x5715_request, ncp_0x1601_reply, ncp_0x54_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x57, 0x16, SUBFUNC_NO_LENGTH, "Generate Directory Base and Volume Number", 	0 /* file */,
+		ncp_0x5716_request, ncp_0x5716_reply, ncp_0x5702_errors, NULL, NO_REQ_COND_SIZE, &info_str_0x5716_req },
+
+	{ 0x57, 0x17, SUBFUNC_NO_LENGTH, "Query Name Space Information Format", 	0 /* file */,
+		ncp_0x5717_request, ncp_0x5717_reply, ncp_0x5702_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x57, 0x18, SUBFUNC_NO_LENGTH, "Get Name Spaces Loaded List from Volume Number", 	0 /* file */,
+		ncp_0x5718_request, ncp_0x5718_reply, ncp_0x5702_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x57, 0x19, SUBFUNC_NO_LENGTH, "Set Name Space Information", 	0 /* file */,
+		ncp_0x5719_request, NULL, ncp_0x5719_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x57, 0x1a, SUBFUNC_NO_LENGTH, "Get Huge Name Space Information", 	0 /* file */,
+		ncp_0x571a_request, ncp_0x571a_reply, ncp_0x5719_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x57, 0x1b, SUBFUNC_NO_LENGTH, "Set Huge Name Space Information", 	0 /* file */,
+		ncp_0x571b_request, ncp_0x571b_reply, ncp_0x5719_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x57, 0x1c, SUBFUNC_NO_LENGTH, "Get Full Path String", 	0 /* file */,
+		ncp_0x571c_request, ncp_0x571c_reply, ncp_0x5719_errors, NULL, NO_REQ_COND_SIZE, &info_str_0x571c_req },
+
+	{ 0x57, 0x1d, SUBFUNC_NO_LENGTH, "Get Effective Directory Rights", 	0 /* file */,
+		ncp_0x571d_request, ncp_0x571d_reply, ncp_0x5702_errors, ncp_0x5710_req_cond_indexes, REQ_COND_SIZE_VARIABLE, &info_str_0x571d_req },
+
+	{ 0x57, 0x1e, SUBFUNC_NO_LENGTH, "Open/Create File or Subdirectory", 	0 /* file */,
+		ncp_0x571e_request, ncp_0x571e_reply, ncp_0x5702_errors, ncp_0x5710_req_cond_indexes, REQ_COND_SIZE_VARIABLE, &info_str_0x571e_req },
+
+	{ 0x57, 0x1f, SUBFUNC_NO_LENGTH, "Get File Information", 	0 /* file */,
+		ncp_0x571f_request, ncp_0x571f_reply, ncp_0x5702_errors, ncp_0x571f_req_cond_indexes, REQ_COND_SIZE_VARIABLE, &info_str_0x571f_req },
+
+	{ 0x57, 0x20, SUBFUNC_NO_LENGTH, "Open/Create File or Subdirectory with Callback", 	0 /* file */,
+		ncp_0x5701_request, ncp_0x5720_reply, ncp_0x5720_errors, ncp_0x5701_req_cond_indexes, REQ_COND_SIZE_VARIABLE, &info_str_0x5720_req },
+
+	{ 0x57, 0x21, SUBFUNC_NO_LENGTH, "Open/Create File or Subdirectory II with Callback", 	0 /* file */,
+		ncp_0x571e_request, ncp_0x5721_reply, ncp_0x5702_errors, NULL, NO_REQ_COND_SIZE, &info_str_0x5721_req },
+
+	{ 0x57, 0x22, SUBFUNC_NO_LENGTH, "Open CallBack Control (Op-Lock)", 	0 /* file */,
+		ncp_0x5722_request, NULL, ncp_0x5722_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x57, 0x23, SUBFUNC_NO_LENGTH, "Modify DOS Attributes on a File or Subdirectory", 	0 /* file */,
+		ncp_0x5723_request, ncp_0x5723_reply, ncp_0x5702_errors, NULL, NO_REQ_COND_SIZE, &info_str_0x5723_req },
+
+	{ 0x57, 0x24, SUBFUNC_NO_LENGTH, "Log File", 	0 /* file */,
+		ncp_0x5724_request, NULL, ncp_0x5702_errors, NULL, NO_REQ_COND_SIZE, &info_str_0x5724_req },
+
+	{ 0x57, 0x25, SUBFUNC_NO_LENGTH, "Release File", 	0 /* file */,
+		ncp_0x5725_request, NULL, ncp_0x5702_errors, NULL, NO_REQ_COND_SIZE, &info_str_0x5725_req },
+
+	{ 0x57, 0x26, SUBFUNC_NO_LENGTH, "Clear File", 	0 /* file */,
+		ncp_0x5725_request, NULL, ncp_0x5702_errors, NULL, NO_REQ_COND_SIZE, &info_str_0x5726_req },
+
+	{ 0x57, 0x27, SUBFUNC_NO_LENGTH, "Get Directory Disk Space Restriction", 	0 /* file */,
+		ncp_0x5727_request, ncp_0x5727_reply, ncp_0x5702_errors, NULL, NO_REQ_COND_SIZE, &info_str_0x5727_req },
+
+	{ 0x57, 0x28, SUBFUNC_NO_LENGTH, "Search for File or Subdirectory Set (Extended Errors)", 	0 /* file */,
+		ncp_0x5714_request, ncp_0x5728_reply, ncp_0x5702_errors, ncp_0x5710_req_cond_indexes, REQ_COND_SIZE_VARIABLE, &info_str_0x5728_req },
+
+	{ 0x57, 0x29, SUBFUNC_NO_LENGTH, "Scan Salvageable Files", 	0 /* file */,
+		ncp_0x5729_request, ncp_0x5729_reply, ncp_0x5702_errors, ncp_0x5729_req_cond_indexes, REQ_COND_SIZE_VARIABLE, &info_str_0x5729_req },
+
+	{ 0x57, 0x2a, SUBFUNC_NO_LENGTH, "Purge Salvageable File List", 	0 /* file */,
+		ncp_0x572a_request, ncp_0x572a_reply, ncp_0x5702_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x57, 0x2b, SUBFUNC_NO_LENGTH, "Revoke File Handle Rights", 	0 /* file */,
+		ncp_0x572b_request, ncp_0x572b_reply, ncp_0x5702_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x57, 0x2c, SUBFUNC_NO_LENGTH, "Update File Handle Rights", 	0 /* file */,
+		ncp_0x572c_request, ncp_0x572c_reply, ncp_0x572c_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x57, 0x40, SUBFUNC_NO_LENGTH, "Read from File", 	0 /* file */,
+		ncp_0x5740_request, ncp_0x48_reply, ncp_0x5740_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x57, 0x41, SUBFUNC_NO_LENGTH, "Write to File", 	0 /* file */,
+		ncp_0x5740_request, NULL, ncp_0x5741_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x57, 0x42, SUBFUNC_NO_LENGTH, "Get Current Size of File", 	0 /* file */,
+		ncp_0x5742_request, ncp_0x5742_reply, ncp_0x5742_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x57, 0x43, SUBFUNC_NO_LENGTH, "Log Physical Record", 	0 /* file */,
+		ncp_0x5743_request, NULL, ncp_0x5743_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x57, 0x44, SUBFUNC_NO_LENGTH, "Release Physical Record", 	0 /* file */,
+		ncp_0x5744_request, NULL, ncp_0x5744_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x57, 0x45, SUBFUNC_NO_LENGTH, "Clear Physical Record", 	0 /* file */,
+		ncp_0x5744_request, NULL, ncp_0x5744_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x58, 0x01, SUBFUNC_NO_LENGTH, "Query Volume Audit Status", 	11 /* auditing */,
+		ncp_0x17fe_request, ncp_0x5801_reply, ncp_0x5801_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x58, 0x02, SUBFUNC_NO_LENGTH, "Add User Audit Property", 	11 /* auditing */,
+		ncp_0x5802_request, NULL, ncp_0x5801_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x58, 0x03, SUBFUNC_NO_LENGTH, "Add Auditor Access", 	11 /* auditing */,
+		NULL, NULL, ncp_0x5801_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x58, 0x04, SUBFUNC_NO_LENGTH, "Change Auditor Volume Password", 	11 /* auditing */,
+		NULL, NULL, ncp_0x5801_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x58, 0x05, SUBFUNC_NO_LENGTH, "Check Auditor Access", 	11 /* auditing */,
+		NULL, NULL, ncp_0x5801_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x58, 0x06, SUBFUNC_NO_LENGTH, "Delete User Audit Property", 	11 /* auditing */,
+		NULL, NULL, ncp_0x5801_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x58, 0x07, SUBFUNC_NO_LENGTH, "Disable Auditing On A Volume", 	11 /* auditing */,
+		NULL, NULL, ncp_0x5801_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x58, 0x08, SUBFUNC_NO_LENGTH, "Enable Auditing On A Volume", 	11 /* auditing */,
+		NULL, NULL, ncp_0x5801_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x58, 0x09, SUBFUNC_NO_LENGTH, "Query User Being Audited", 	11 /* auditing */,
+		NULL, NULL, ncp_0x5801_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x58, 0x0a, SUBFUNC_NO_LENGTH, "Read Audit Bit Map", 	11 /* auditing */,
+		NULL, NULL, ncp_0x5801_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x58, 0x0b, SUBFUNC_NO_LENGTH, "Read Audit File Configuration Header", 	11 /* auditing */,
+		NULL, NULL, ncp_0x5801_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x58, 0x0d, SUBFUNC_NO_LENGTH, "Remove Auditor Access", 	11 /* auditing */,
+		NULL, NULL, ncp_0x580d_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x58, 0x0e, SUBFUNC_NO_LENGTH, "Reset Audit File", 	11 /* auditing */,
+		NULL, NULL, ncp_0x5801_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x58, 0x0f, SUBFUNC_NO_LENGTH, "Auditing NCP", 	11 /* auditing */,
+		NULL, NULL, ncp_0x5801_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x58, 0x10, SUBFUNC_NO_LENGTH, "Write Audit Bit Map", 	11 /* auditing */,
+		NULL, NULL, ncp_0x5801_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x58, 0x11, SUBFUNC_NO_LENGTH, "Write Audit File Configuration Header", 	11 /* auditing */,
+		NULL, NULL, ncp_0x5801_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x58, 0x12, SUBFUNC_NO_LENGTH, "Change Auditor Volume Password2", 	11 /* auditing */,
+		NULL, NULL, ncp_0x5801_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x58, 0x13, SUBFUNC_NO_LENGTH, "Return Audit Flags", 	11 /* auditing */,
+		NULL, NULL, ncp_0x5801_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x58, 0x14, SUBFUNC_NO_LENGTH, "Close Old Audit File", 	11 /* auditing */,
+		NULL, NULL, ncp_0x5801_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x58, 0x16, SUBFUNC_NO_LENGTH, "Check Level Two Access", 	11 /* auditing */,
+		NULL, NULL, ncp_0x5801_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x58, 0x17, SUBFUNC_NO_LENGTH, "Return Old Audit File List", 	11 /* auditing */,
+		NULL, NULL, ncp_0x5801_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x58, 0x18, SUBFUNC_NO_LENGTH, "Init Audit File Reads", 	11 /* auditing */,
+		NULL, NULL, ncp_0x5801_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x58, 0x19, SUBFUNC_NO_LENGTH, "Read Auditing File", 	11 /* auditing */,
+		NULL, NULL, ncp_0x5801_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x58, 0x1a, SUBFUNC_NO_LENGTH, "Delete Old Audit File", 	11 /* auditing */,
+		NULL, NULL, ncp_0x5801_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x58, 0x1e, SUBFUNC_NO_LENGTH, "Restart Volume auditing", 	11 /* auditing */,
+		NULL, NULL, ncp_0x5801_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x58, 0x1f, SUBFUNC_NO_LENGTH, "Set Volume Password", 	11 /* auditing */,
+		NULL, NULL, ncp_0x5801_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x5a, 0x01, SUBFUNC_WITH_LENGTH, "Parse Tree", 	0 /* file */,
+		ncp_0x5a01_request, ncp_0x5a01_reply, ncp_0x5a01_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x5a, 0x0a, SUBFUNC_WITH_LENGTH, "Get Reference Count from Dir Entry Number", 	0 /* file */,
+		ncp_0x5a0a_request, ncp_0x5a0a_reply, ncp_0x5a01_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x5a, 0x0b, SUBFUNC_WITH_LENGTH, "Get Reference Count from Dir Handle", 	0 /* file */,
+		ncp_0x5a0b_request, ncp_0x5a0a_reply, ncp_0x5a01_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x5a, 0x0c, SUBFUNC_WITH_LENGTH, "Set Compressed File Size", 	0 /* file */,
+		ncp_0x5a0c_request, ncp_0x5a0c_reply, ncp_0x5a01_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x5a, 0x80, SUBFUNC_WITH_LENGTH, "Move File Data To Data Migration", 	0 /* file */,
+		ncp_0x5a80_request, NULL, ncp_0x5a80_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x5a, 0x81, SUBFUNC_WITH_LENGTH, "Data Migration File Information", 	0 /* file */,
+		ncp_0x5a81_request, ncp_0x5a81_reply, ncp_0x5a80_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x5a, 0x82, SUBFUNC_WITH_LENGTH, "Volume Data Migration Status", 	0 /* file */,
+		ncp_0x5a82_request, ncp_0x5a82_reply, ncp_0x5a80_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x5a, 0x83, SUBFUNC_WITH_LENGTH, "Migrator Status Info", 	0 /* file */,
+		NULL, ncp_0x5a83_reply, ncp_0x5a80_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x5a, 0x84, SUBFUNC_WITH_LENGTH, "Data Migration Support Module Information", 	0 /* file */,
+		ncp_0x5a84_request, ncp_0x5a84_reply, ncp_0x5a80_errors, ncp_0x5a84_req_cond_indexes, REQ_COND_SIZE_VARIABLE, NULL },
+
+	{ 0x5a, 0x85, SUBFUNC_WITH_LENGTH, "Move File Data From Data Migration", 	0 /* file */,
+		ncp_0x5a81_request, NULL, ncp_0x5a80_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x5a, 0x86, SUBFUNC_WITH_LENGTH, "Get/Set Default Read-Write Support Module ID", 	0 /* file */,
+		ncp_0x5a86_request, ncp_0x5a86_reply, ncp_0x5a80_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x5a, 0x87, SUBFUNC_WITH_LENGTH, "Data Migration Support Module Capacity Request", 	0 /* file */,
+		ncp_0x5a87_request, ncp_0x5a87_reply, ncp_0x5a80_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x5a, 0x88, SUBFUNC_WITH_LENGTH, "RTDM Request", 	0 /* file */,
+		ncp_0x5a88_request, NULL, ncp_0x5a80_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x5b, 0x00, NO_SUBFUNC, "NMAS Graded Authentication", 	12 /* nmas */,
+		NULL, NULL, ncp_0x5b_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x5c, 0x01, SUBFUNC_NO_LENGTH, "SecretStore Services (Ping Server)", 	13 /* sss */,
+		NULL, NULL, ncp_0x5b_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x5c, 0x02, SUBFUNC_NO_LENGTH, "SecretStore Services", 	13 /* sss */,
+		NULL, NULL, ncp_0x5b_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x5c, 0x03, SUBFUNC_NO_LENGTH, "SecretStore Services", 	13 /* sss */,
+		NULL, NULL, ncp_0x5b_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x5c, 0x04, SUBFUNC_NO_LENGTH, "SecretStore Services", 	13 /* sss */,
+		NULL, NULL, ncp_0x5b_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x5c, 0x05, SUBFUNC_NO_LENGTH, "SecretStore Services", 	13 /* sss */,
+		NULL, NULL, ncp_0x5b_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x5c, 0x06, SUBFUNC_NO_LENGTH, "SecretStore Services", 	13 /* sss */,
+		NULL, NULL, ncp_0x5b_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x5c, 0x07, SUBFUNC_NO_LENGTH, "SecretStore Services", 	13 /* sss */,
+		NULL, NULL, ncp_0x5b_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x5c, 0x08, SUBFUNC_NO_LENGTH, "SecretStore Services", 	13 /* sss */,
+		NULL, NULL, ncp_0x5b_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x5c, 0x09, SUBFUNC_NO_LENGTH, "SecretStore Services", 	13 /* sss */,
+		NULL, NULL, ncp_0x5b_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x5c, 0x0a, SUBFUNC_NO_LENGTH, "SecretStore Services", 	13 /* sss */,
+		NULL, NULL, ncp_0x5b_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x5e, 0x01, SUBFUNC_NO_LENGTH, "NMAS Communications Packet", 	12 /* nmas */,
+		NULL, NULL, ncp_0x5e01_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x5e, 0x02, SUBFUNC_NO_LENGTH, "NMAS Communications Packet", 	12 /* nmas */,
+		NULL, NULL, ncp_0x5e01_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x5e, 0x03, SUBFUNC_NO_LENGTH, "NMAS Communications Packet", 	12 /* nmas */,
+		NULL, NULL, ncp_0x5e01_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x61, 0x00, NO_SUBFUNC, "Get Big Packet NCP Max Packet Size", 	14 /* comm */,
+		ncp_0x61_request, ncp_0x61_reply, ncp_0x1_errors, NULL, NO_REQ_COND_SIZE, &info_str_0x61_req },
+
+	{ 0x63, 0x00, NO_SUBFUNC, "Undocumented Packet Burst", 	14 /* comm */,
+		NULL, NULL, ncp_0x1_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x64, 0x00, NO_SUBFUNC, "Undocumented Packet Burst", 	14 /* comm */,
+		NULL, NULL, ncp_0x1_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x65, 0x00, NO_SUBFUNC, "Packet Burst Connection Request", 	14 /* comm */,
+		ncp_0x65_request, ncp_0x65_reply, ncp_0x1_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x66, 0x00, NO_SUBFUNC, "Undocumented Packet Burst", 	14 /* comm */,
+		NULL, NULL, ncp_0x1_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x67, 0x00, NO_SUBFUNC, "Undocumented Packet Burst", 	14 /* comm */,
+		NULL, NULL, ncp_0x1_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x68, 0x01, SUBFUNC_NO_LENGTH, "Ping for NDS NCP", 	6 /* nds */,
+		NULL, NULL, ncp_0x6801_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x68, 0x02, SUBFUNC_NO_LENGTH, "Send NDS Fragmented Request/Reply", 	6 /* nds */,
+		NULL, NULL, ncp_0x6802_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x68, 0x03, SUBFUNC_NO_LENGTH, "Fragment Close", 	6 /* nds */,
+		ncp_0x6803_request, NULL, ncp_0x2_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x68, 0x04, SUBFUNC_NO_LENGTH, "Return Bindery Context", 	6 /* nds */,
+		NULL, ncp_0x6804_reply, ncp_0x6804_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x68, 0x05, SUBFUNC_NO_LENGTH, "Monitor NDS Connection", 	6 /* nds */,
+		NULL, NULL, ncp_0x6805_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x68, 0x06, SUBFUNC_NO_LENGTH, "Return NDS Statistics", 	6 /* nds */,
+		ncp_0x6806_request, NULL, ncp_0x6805_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x68, 0x07, SUBFUNC_NO_LENGTH, "Clear NDS Statistics", 	6 /* nds */,
+		NULL, NULL, ncp_0x6805_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x68, 0x08, SUBFUNC_NO_LENGTH, "Reload NDS Software", 	6 /* nds */,
+		NULL, ncp_0x6808_reply, ncp_0x6805_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x68, 0xc8, SUBFUNC_NO_LENGTH, "Query Container Audit Status", 	11 /* auditing */,
+		ncp_0x17fe_request, ncp_0x5801_reply, ncp_0x68c8_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x68, 0xca, SUBFUNC_NO_LENGTH, "Add Auditor Access", 	11 /* auditing */,
+		NULL, NULL, ncp_0x68c8_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x68, 0xcb, SUBFUNC_NO_LENGTH, "Change Auditor Container Password", 	11 /* auditing */,
+		NULL, NULL, ncp_0x68c8_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x68, 0xcc, SUBFUNC_NO_LENGTH, "Check Auditor Access", 	11 /* auditing */,
+		NULL, NULL, ncp_0x68c8_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x80, 0xce, SUBFUNC_NO_LENGTH, "Disable Container Auditing", 	11 /* auditing */,
+		NULL, NULL, ncp_0x68c8_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x68, 0xcf, SUBFUNC_NO_LENGTH, "Enable Container Auditing", 	11 /* auditing */,
+		NULL, NULL, ncp_0x68c8_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x68, 0xd1, SUBFUNC_NO_LENGTH, "Read Audit File Header", 	11 /* auditing */,
+		NULL, NULL, ncp_0x68c8_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x68, 0xd3, SUBFUNC_NO_LENGTH, "Remove Auditor Access", 	11 /* auditing */,
+		NULL, NULL, ncp_0x68c8_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x68, 0xd4, SUBFUNC_NO_LENGTH, "Reset Audit File", 	11 /* auditing */,
+		NULL, NULL, ncp_0x68c8_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x68, 0xd6, SUBFUNC_NO_LENGTH, "Write Audit File Configuration Header", 	11 /* auditing */,
+		NULL, NULL, ncp_0x68c8_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x68, 0xd7, SUBFUNC_NO_LENGTH, "Change Auditor Container Password2", 	11 /* auditing */,
+		NULL, NULL, ncp_0x68c8_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x68, 0xd8, SUBFUNC_NO_LENGTH, "Return Audit Flags", 	11 /* auditing */,
+		NULL, NULL, ncp_0x68c8_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x68, 0xd9, SUBFUNC_NO_LENGTH, "Close Old Audit File", 	11 /* auditing */,
+		NULL, NULL, ncp_0x68c8_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x68, 0xdb, SUBFUNC_NO_LENGTH, "Check Level Two Access", 	11 /* auditing */,
+		NULL, NULL, ncp_0x68c8_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x68, 0xdc, SUBFUNC_NO_LENGTH, "Check Object Audited", 	11 /* auditing */,
+		NULL, NULL, ncp_0x68c8_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x68, 0xdd, SUBFUNC_NO_LENGTH, "Change Object Audited", 	11 /* auditing */,
+		NULL, NULL, ncp_0x68c8_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x68, 0xde, SUBFUNC_NO_LENGTH, "Return Old Audit File List", 	11 /* auditing */,
+		NULL, NULL, ncp_0x68c8_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x68, 0xdf, SUBFUNC_NO_LENGTH, "Init Audit File Reads", 	11 /* auditing */,
+		NULL, NULL, ncp_0x68c8_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x68, 0xe0, SUBFUNC_NO_LENGTH, "Read Auditing File", 	11 /* auditing */,
+		NULL, NULL, ncp_0x68c8_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x68, 0xe1, SUBFUNC_NO_LENGTH, "Delete Old Audit File", 	11 /* auditing */,
+		NULL, NULL, ncp_0x68c8_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x68, 0xe5, SUBFUNC_NO_LENGTH, "Set Audit Password", 	11 /* auditing */,
+		NULL, NULL, ncp_0x68c8_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x68, 0xe7, SUBFUNC_NO_LENGTH, "External Audit Append To File", 	11 /* auditing */,
+		NULL, NULL, ncp_0x68c8_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x69, 0x00, NO_SUBFUNC, "Log File", 	0 /* file */,
+		ncp_0x69_request, NULL, ncp_0x69_errors, NULL, NO_REQ_COND_SIZE, &info_str_0x69_req },
+
+	{ 0x6a, 0x00, NO_SUBFUNC, "Lock File Set", 	0 /* file */,
+		ncp_0x4_request, NULL, ncp_0x69_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x6b, 0x00, NO_SUBFUNC, "Log Logical Record", 	0 /* file */,
+		ncp_0x6b_request, NULL, ncp_0x6b_errors, NULL, NO_REQ_COND_SIZE, &info_str_0x6b_req },
+
+	{ 0x6c, 0x00, NO_SUBFUNC, "Log Logical Record", 	0 /* file */,
+		ncp_0xa_request, NULL, ncp_0x6b_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x6d, 0x00, NO_SUBFUNC, "Log Physical Record", 	0 /* file */,
+		ncp_0x6d_request, NULL, ncp_0x6d_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x6e, 0x00, NO_SUBFUNC, "Lock Physical Record Set", 	0 /* file */,
+		ncp_0x1b_request, NULL, ncp_0x6d_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x6f, 0x00, SUBFUNC_NO_LENGTH, "Open/Create a Semaphore", 	0 /* file */,
+		ncp_0x6f00_request, ncp_0x6f00_reply, ncp_0x2000_errors, NULL, NO_REQ_COND_SIZE, &info_str_0x6f00_req },
+
+	{ 0x6f, 0x01, SUBFUNC_NO_LENGTH, "Examine Semaphore", 	0 /* file */,
+		ncp_0x6f01_request, ncp_0x2001_reply, ncp_0x2000_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x6f, 0x02, SUBFUNC_NO_LENGTH, "Wait On (P) Semaphore", 	0 /* file */,
+		ncp_0x6f02_request, NULL, ncp_0x6f02_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x6f, 0x03, SUBFUNC_NO_LENGTH, "Signal (V) Semaphore", 	0 /* file */,
+		ncp_0x6f01_request, NULL, ncp_0x6f02_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x6f, 0x04, SUBFUNC_NO_LENGTH, "Close Semaphore", 	0 /* file */,
+		ncp_0x6f01_request, ncp_0x6f04_reply, ncp_0x6f02_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x72, 0x01, SUBFUNC_WITH_LENGTH, "Timesync Get Time", 	0 /* file */,
+		NULL, ncp_0x7201_reply, ncp_0x7201_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x72, 0x02, SUBFUNC_WITH_LENGTH, "Timesync Exchange Time", 	0 /* file */,
+		ncp_0x7202_request, ncp_0x7202_reply, ncp_0x7201_errors, NULL, NO_REQ_COND_SIZE, &info_str_0x7202_req },
+
+	{ 0x72, 0x05, SUBFUNC_WITH_LENGTH, "Timesync Get Server List", 	0 /* file */,
+		ncp_0x7205_request, ncp_0x7205_reply, ncp_0x7201_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x72, 0x06, SUBFUNC_WITH_LENGTH, "Timesync Set Server List", 	0 /* file */,
+		ncp_0x7205_request, ncp_0x7205_reply, ncp_0x7201_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x72, 0x0c, SUBFUNC_WITH_LENGTH, "Timesync Get Version", 	0 /* file */,
+		NULL, ncp_0x720c_reply, ncp_0x7201_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x7b, 0x01, SUBFUNC_WITH_LENGTH, "Get Cache Information", 	8 /* stats */,
+		ncp_0x7b01_request, ncp_0x7b01_reply, ncp_0x7b01_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x7b, 0x02, SUBFUNC_WITH_LENGTH, "Get File Server Information", 	8 /* stats */,
+		NULL, ncp_0x7b02_reply, ncp_0x7b02_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x7b, 0x03, SUBFUNC_WITH_LENGTH, "NetWare File System Information", 	8 /* stats */,
+		ncp_0x7b03_request, ncp_0x7b03_reply, ncp_0x7b02_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x7b, 0x04, SUBFUNC_WITH_LENGTH, "User Information", 	8 /* stats */,
+		ncp_0x17fe_request, ncp_0x7b04_reply, ncp_0x7b02_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x7b, 0x05, SUBFUNC_WITH_LENGTH, "Packet Burst Information", 	8 /* stats */,
+		NULL, ncp_0x7b05_reply, ncp_0x7b02_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x7b, 0x06, SUBFUNC_WITH_LENGTH, "IPX SPX Information", 	8 /* stats */,
+		NULL, ncp_0x7b06_reply, ncp_0x7b02_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x7b, 0x07, SUBFUNC_WITH_LENGTH, "Garbage Collection Information", 	8 /* stats */,
+		NULL, ncp_0x7b07_reply, ncp_0x7b02_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x7b, 0x08, SUBFUNC_WITH_LENGTH, "CPU Information", 	8 /* stats */,
+		ncp_0x7b08_request, ncp_0x7b08_reply, ncp_0x7b02_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x7b, 0x09, SUBFUNC_WITH_LENGTH, "Volume Switch Information", 	8 /* stats */,
+		ncp_0x7205_request, ncp_0x7b09_reply, ncp_0x7b02_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x7b, 0x0a, SUBFUNC_WITH_LENGTH, "Get NLM Loaded List", 	8 /* stats */,
+		ncp_0x7205_request, ncp_0x7b0a_reply, ncp_0x7b02_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x7b, 0x0b, SUBFUNC_WITH_LENGTH, "NLM Information", 	8 /* stats */,
+		ncp_0x7b0b_request, ncp_0x7b0b_reply, ncp_0x7b02_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x7b, 0x0c, SUBFUNC_WITH_LENGTH, "Get Directory Cache Information", 	8 /* stats */,
+		NULL, ncp_0x7b0c_reply, ncp_0x7b02_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x7b, 0x0d, SUBFUNC_WITH_LENGTH, "Get Operating System Version Information", 	8 /* stats */,
+		NULL, ncp_0x7b0d_reply, ncp_0x7b02_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x7b, 0x0e, SUBFUNC_WITH_LENGTH, "Get Active Connection List by Type", 	8 /* stats */,
+		ncp_0x7b0e_request, ncp_0x7b0e_reply, ncp_0x7b0e_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x7b, 0x0f, SUBFUNC_WITH_LENGTH, "Get NLM Resource Tag List", 	8 /* stats */,
+		ncp_0x7b0f_request, ncp_0x7b0f_reply, ncp_0x7b02_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x7b, 0x10, SUBFUNC_WITH_LENGTH, "Enumerate Connection Information from Connection List", 	8 /* stats */,
+		ncp_0x7b10_request, ncp_0x7b10_reply, ncp_0x7b02_errors, ncp_0x7b10_req_cond_indexes, REQ_COND_SIZE_VARIABLE, NULL },
+
+	{ 0x7b, 0x11, SUBFUNC_WITH_LENGTH, "Enumerate NCP Service Network Addresses", 	8 /* stats */,
+		ncp_0x7b11_request, ncp_0x7b11_reply, ncp_0x7b11_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x7b, 0x14, SUBFUNC_WITH_LENGTH, "Active LAN Board List", 	8 /* stats */,
+		ncp_0x7205_request, ncp_0x7b14_reply, ncp_0x7b02_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x7b, 0x15, SUBFUNC_WITH_LENGTH, "LAN Configuration Information", 	8 /* stats */,
+		ncp_0x7b15_request, ncp_0x7b15_reply, ncp_0x7b02_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x7b, 0x16, SUBFUNC_WITH_LENGTH, "LAN Common Counters Information", 	8 /* stats */,
+		ncp_0x7b16_request, ncp_0x7b16_reply, ncp_0x7b02_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x7b, 0x17, SUBFUNC_WITH_LENGTH, "LAN Custom Counters Information", 	8 /* stats */,
+		ncp_0x7b17_request, ncp_0x7b17_reply, ncp_0x7b02_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x7b, 0x18, SUBFUNC_WITH_LENGTH, "LAN Name Information", 	8 /* stats */,
+		ncp_0x7b15_request, ncp_0x7b18_reply, ncp_0x7b02_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x7b, 0x19, SUBFUNC_WITH_LENGTH, "LSL Information", 	8 /* stats */,
+		NULL, ncp_0x7b19_reply, ncp_0x7b02_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x7b, 0x1a, SUBFUNC_WITH_LENGTH, "LSL Logical Board Statistics", 	8 /* stats */,
+		ncp_0x7b15_request, ncp_0x7b1a_reply, ncp_0x7b02_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x7b, 0x1b, SUBFUNC_WITH_LENGTH, "MLID Board Information", 	8 /* stats */,
+		ncp_0x7b15_request, ncp_0x7b1b_reply, ncp_0x7b02_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x7b, 0x1e, SUBFUNC_WITH_LENGTH, "Get Media Manager Object Information", 	8 /* stats */,
+		ncp_0x7b1e_request, ncp_0x7b1e_reply, ncp_0x7b02_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x7b, 0x1f, SUBFUNC_WITH_LENGTH, "Get Media Manager Objects List", 	8 /* stats */,
+		ncp_0x7b1f_request, ncp_0x7b1f_reply, ncp_0x7b02_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x7b, 0x20, SUBFUNC_WITH_LENGTH, "Get Media Manager Object Childrens List", 	8 /* stats */,
+		ncp_0x7b20_request, ncp_0x7b1f_reply, ncp_0x7b02_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x7b, 0x21, SUBFUNC_WITH_LENGTH, "Get Volume Segment List", 	8 /* stats */,
+		ncp_0x7b21_request, ncp_0x7b21_reply, ncp_0x7b02_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x7b, 0x22, SUBFUNC_WITH_LENGTH, "Get Volume Information by Level", 	8 /* stats */,
+		ncp_0x7b22_request, ncp_0x7b22_reply, ncp_0x7b02_errors, ncp_0x7b22_req_cond_indexes, REQ_COND_SIZE_VARIABLE, NULL },
+
+	{ 0x7b, 0x28, SUBFUNC_WITH_LENGTH, "Active Protocol Stacks", 	8 /* stats */,
+		ncp_0x7205_request, ncp_0x7b28_reply, ncp_0x7b02_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x7b, 0x29, SUBFUNC_WITH_LENGTH, "Get Protocol Stack Configuration Information", 	8 /* stats */,
+		ncp_0x7b29_request, ncp_0x7b29_reply, ncp_0x7b02_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x7b, 0x2a, SUBFUNC_WITH_LENGTH, "Get Protocol Stack Statistics Information", 	8 /* stats */,
+		ncp_0x7b29_request, ncp_0x7b2a_reply, ncp_0x7b02_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x7b, 0x2b, SUBFUNC_WITH_LENGTH, "Get Protocol Stack Custom Information", 	8 /* stats */,
+		ncp_0x7b2b_request, ncp_0x7b2b_reply, ncp_0x7b02_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x7b, 0x2c, SUBFUNC_WITH_LENGTH, "Get Protocol Stack Numbers by Media Number", 	8 /* stats */,
+		ncp_0x7b2c_request, ncp_0x7b2c_reply, ncp_0x7b02_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x7b, 0x2d, SUBFUNC_WITH_LENGTH, "Get Protocol Stack Numbers by LAN Board Number", 	8 /* stats */,
+		ncp_0x7b15_request, ncp_0x7b2c_reply, ncp_0x7b02_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x7b, 0x2e, SUBFUNC_WITH_LENGTH, "Get Media Name by Media Number", 	8 /* stats */,
+		ncp_0x7b2c_request, ncp_0x7b2e_reply, ncp_0x7b02_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x7b, 0x2f, SUBFUNC_WITH_LENGTH, "Get Loaded Media Number", 	8 /* stats */,
+		NULL, ncp_0x7b2f_reply, ncp_0x7b2f_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x7b, 0x32, SUBFUNC_WITH_LENGTH, "Get General Router and SAP Information", 	8 /* stats */,
+		NULL, ncp_0x7b32_reply, ncp_0x7b2f_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x7b, 0x33, SUBFUNC_WITH_LENGTH, "Get Network Router Information", 	8 /* stats */,
+		ncp_0x7b33_request, ncp_0x7b33_reply, ncp_0x7b33_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x7b, 0x34, SUBFUNC_WITH_LENGTH, "Get Network Routers Information", 	8 /* stats */,
+		ncp_0x7b34_request, ncp_0x7b34_reply, ncp_0x7b33_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x7b, 0x35, SUBFUNC_WITH_LENGTH, "Get Known Networks Information", 	8 /* stats */,
+		ncp_0x7205_request, ncp_0x7b35_reply, ncp_0x7b2f_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x7b, 0x36, SUBFUNC_WITH_LENGTH, "Get Server Information", 	8 /* stats */,
+		ncp_0x7b36_request, ncp_0x7b36_reply, ncp_0x7b2f_errors, NULL, NO_REQ_COND_SIZE, &info_str_0x7b36_req },
+
+	{ 0x7b, 0x37, SUBFUNC_WITH_LENGTH, "Get Server Sources Information", 	8 /* stats */,
+		ncp_0x7b37_request, ncp_0x7b37_reply, ncp_0x7b33_errors, NULL, NO_REQ_COND_SIZE, &info_str_0x7b37_req },
+
+	{ 0x7b, 0x38, SUBFUNC_WITH_LENGTH, "Get Known Servers Information", 	8 /* stats */,
+		ncp_0x7b38_request, ncp_0x7b38_reply, ncp_0x7b33_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x7b, 0x3c, SUBFUNC_WITH_LENGTH, "Get Server Set Commands Information", 	8 /* stats */,
+		ncp_0x7205_request, ncp_0x7b3c_reply, ncp_0x7b2f_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x7b, 0x3d, SUBFUNC_WITH_LENGTH, "Get Server Set Categories", 	8 /* stats */,
+		ncp_0x7205_request, ncp_0x7b3d_reply, ncp_0x7b2f_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x7b, 0x3e, SUBFUNC_WITH_LENGTH, "Get Server Set Commands Information By Name", 	8 /* stats */,
+		ncp_0x7b3e_request, ncp_0x7b3e_reply, ncp_0x7b2f_errors, NULL, NO_REQ_COND_SIZE, &info_str_0x7b3e_req },
+
+	{ 0x7b, 0x46, SUBFUNC_WITH_LENGTH, "Get Current Compressing File", 	8 /* stats */,
+		ncp_0x7b21_request, ncp_0x7b46_reply, ncp_0x7b46_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x7b, 0x47, SUBFUNC_WITH_LENGTH, "Get Current DeCompressing File Info List", 	8 /* stats */,
+		ncp_0x7b21_request, ncp_0x7b47_reply, ncp_0x7201_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x7b, 0x48, SUBFUNC_WITH_LENGTH, "Get Compression and Decompression Time and Counts", 	8 /* stats */,
+		ncp_0x7b21_request, ncp_0x7b48_reply, ncp_0x7201_errors, NULL, NO_REQ_COND_SIZE, NULL },
+
+	{ 0x83, 0x01, SUBFUNC_WITH_LENGTH, "RPC Load an NLM", 	3 /* fileserver */,
+		ncp_0x8301_request, ncp_0x8301_reply, ncp_0x8301_errors, NULL, NO_REQ_COND_SIZE, &info_str_0x8301_req },
+
+	{ 0x83, 0x02, SUBFUNC_WITH_LENGTH, "RPC Unload an NLM", 	3 /* fileserver */,
+		ncp_0x8302_request, ncp_0x8301_reply, ncp_0x8301_errors, NULL, NO_REQ_COND_SIZE, &info_str_0x8302_req },
+
+	{ 0x83, 0x03, SUBFUNC_WITH_LENGTH, "RPC Mount Volume", 	3 /* fileserver */,
+		ncp_0x8303_request, ncp_0x8303_reply, ncp_0x8301_errors, NULL, NO_REQ_COND_SIZE, &info_str_0x8303_req },
+
+	{ 0x83, 0x04, SUBFUNC_WITH_LENGTH, "RPC Dismount Volume", 	3 /* fileserver */,
+		ncp_0x8303_request, ncp_0x8301_reply, ncp_0x8301_errors, NULL, NO_REQ_COND_SIZE, &info_str_0x8304_req },
+
+	{ 0x83, 0x05, SUBFUNC_WITH_LENGTH, "RPC Add Name Space To Volume", 	3 /* fileserver */,
+		ncp_0x8305_request, ncp_0x8301_reply, ncp_0x8301_errors, NULL, NO_REQ_COND_SIZE, &info_str_0x8305_req },
+
+	{ 0x83, 0x06, SUBFUNC_WITH_LENGTH, "RPC Set Command Value", 	3 /* fileserver */,
+		ncp_0x8306_request, ncp_0x8301_reply, ncp_0x8301_errors, NULL, NO_REQ_COND_SIZE, &info_str_0x8306_req },
+
+	{ 0x83, 0x07, SUBFUNC_WITH_LENGTH, "RPC Execute NCF File", 	3 /* fileserver */,
+		ncp_0x8307_request, ncp_0x8301_reply, ncp_0x8301_errors, NULL, NO_REQ_COND_SIZE, &info_str_0x8307_req },
+
+	{ 0, 0, 0, NULL, 0, NULL, NULL, NULL, NULL, NO_REQ_COND_SIZE, NULL }
+};
+
+/* ncp funcs that require a subfunc */
+static const guint8 ncp_func_requires_subfunc[] = {
+	0x11,
+	0x15,
+	0x16,
+	0x17,
+	0x20,
+	0x22,
+	0x23,
+	0x24,
+	0x56,
+	0x57,
+	0x58,
+	0x5a,
+	0x5c,
+	0x5e,
+	0x68,
+	0x80,
+	0x6f,
+	0x72,
+	0x7b,
+	0x83,
+	0
+};
+
+/* ncp funcs that have no length parameter */
+static const guint8 ncp_func_has_no_length_parameter[] = {
+	0x20,
+	0x22,
+	0x56,
+	0x57,
+	0x58,
+	0x5c,
+	0x5e,
+	0x68,
+	0x6f,
+	0x80,
+	0
+};
+
+
+void
+final_registration_ncp2222(void)
+{
+	int i;
+	
+
+	for (i = 0; i < NUM_REQ_CONDS; i++) {
+		if (!dfilter_compile((const gchar*)req_conds[i].dfilter_text,
+			&req_conds[i].dfilter)) {
+			g_message("NCP dissector failed to compiler dfilter: %s\n",
+			req_conds[i].dfilter_text);
+			g_assert_not_reached();
+		}
+	}
+}
+	
+
+static const value_string ncp_nds_verb_vals[] = {
+	{ 1, "Resolve Name" },
+	{ 2, "Read Entry Information" },
+	{ 3, "Read" },
+	{ 4, "Compare" },
+	{ 5, "List" },
+	{ 6, "Search Entries" },
+	{ 7, "Add Entry" },
+	{ 8, "Remove Entry" },
+	{ 9, "Modify Entry" },
+	{ 10, "Modify RDN" },
+	{ 11, "Create Attribute" },
+	{ 12, "Read Attribute Definition" },
+	{ 13, "Remove Attribute Definition" },
+	{ 14, "Define Class" },
+	{ 15, "Read Class Definition" },
+	{ 16, "Modify Class Definition" },
+	{ 17, "Remove Class Definition" },
+	{ 18, "List Containable Classes" },
+	{ 19, "Get Effective Rights" },
+	{ 20, "Add Partition" },
+	{ 21, "Remove Partition" },
+	{ 22, "List Partitions" },
+	{ 23, "Split Partition" },
+	{ 24, "Join Partitions" },
+	{ 25, "Add Replica" },
+	{ 26, "Remove Replica" },
+	{ 27, "Open Stream" },
+	{ 28, "Search Filter" },
+	{ 29, "Create Subordinate Reference" },
+	{ 30, "Link Replica" },
+	{ 31, "Change Replica Type" },
+	{ 32, "Start Update Schema" },
+	{ 33, "End Update Schema" },
+	{ 34, "Update Schema" },
+	{ 35, "Start Update Replica" },
+	{ 36, "End Update Replica" },
+	{ 37, "Update Replica" },
+	{ 38, "Synchronize Partition" },
+	{ 39, "Synchronize Schema" },
+	{ 40, "Read Syntaxes" },
+	{ 41, "Get Replica Root ID" },
+	{ 42, "Begin Move Entry" },
+	{ 43, "Finish Move Entry" },
+	{ 44, "Release Moved Entry" },
+	{ 45, "Backup Entry" },
+	{ 46, "Restore Entry" },
+	{ 47, "Save DIB" },
+	{ 48, "Control" },
+	{ 49, "Remove Backlink" },
+	{ 50, "Close Iteration" },
+	{ 51, "Unused" },
+	{ 52, "Audit Skulking" },
+	{ 53, "Get Server Address" },
+	{ 54, "Set Keys" },
+	{ 55, "Change Password" },
+	{ 56, "Verify Password" },
+	{ 57, "Begin Login" },
+	{ 58, "Finish Login" },
+	{ 59, "Begin Authentication" },
+	{ 60, "Finish Authentication" },
+	{ 61, "Logout" },
+	{ 62, "Repair Ring" },
+	{ 63, "Repair Timestamps" },
+	{ 64, "Create Back Link" },
+	{ 65, "Delete External Reference" },
+	{ 66, "Rename External Reference" },
+	{ 67, "Create Directory Entry" },
+	{ 68, "Remove Directory Entry" },
+	{ 69, "Designate New Master" },
+	{ 70, "Change Tree Name" },
+	{ 71, "Partition Entry Count" },
+	{ 72, "Check Login Restrictions" },
+	{ 73, "Start Join" },
+	{ 74, "Low Level Split" },
+	{ 75, "Low Level Join" },
+	{ 76, "Abort Low Level Join" },
+	{ 77, "Get All Servers" },
+	{ 255, "EDirectory Call" },
+	{ 0,  NULL }
+};
+
+void
+proto_register_ncp2222(void)
+{
+
+	static hf_register_info hf[] = {
+	{ &hf_ncp_func,
+	{ "Function", "ncp.func", FT_UINT8, BASE_HEX, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_length,
+	{ "Packet Length", "ncp.length", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_subfunc,
+	{ "SubFunction", "ncp.subfunc", FT_UINT8, BASE_HEX, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_completion_code,
+	{ "Completion Code", "ncp.completion_code", FT_UINT8, BASE_HEX, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_fragment_handle,
+	{ "NDS Fragment Handle", "ncp.ndsfrag", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_fragment_size,
+	{ "NDS Fragment Size", "ncp.ndsfragsize", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_message_size,
+	{ "Message Size", "ncp.ndsmessagesize", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_nds_flag,
+	{ "Flags", "ncp.ndsflag", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_nds_verb,
+	{ "NDS Verb", "ncp.ndsverb", FT_UINT8, BASE_HEX, VALS(ncp_nds_verb_vals), 0x0, "", HFILL }},
+
+        { &hf_ping_version,
+        { "NDS Version", "ncp.ping_version", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_nds_version,
+	{ "NDS Version", "ncp.nds_version", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_nds_tree_name,
+	{ "Tree Name", "ncp.nds_tree_name", FT_STRING, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+        /*
+	 * XXX - the page at
+	 *
+	 *	http://www.odyssea.com/whats_new/tcpipnet/tcpipnet.html
+	 *
+	 * says of the connection status "The Connection Code field may
+	 * contain values that indicate the status of the client host to
+	 * server connection.  A value of 1 in the fourth bit of this data
+	 * byte indicates that the server is unavailable (server was
+	 * downed).
+	 *
+	 * The page at
+	 *
+	 *	http://www.unm.edu/~network/presentations/course/appendix/appendix_f/tsld088.htm
+	 *
+	 * says that bit 0 is "bad service", bit 2 is "no connection
+	 * available", bit 4 is "service down", and bit 6 is "server
+	 * has a broadcast message waiting for the client".
+	 *
+	 * Should it be displayed in hex, and should those bits (and any
+	 * other bits with significance) be displayed as bitfields
+	 * underneath it?
+	 */
+	{ &hf_ncp_connection_status,
+	{ "Connection Status", "ncp.connection_status", FT_UINT8, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_req_frame_num,
+	{ "Response to Request in Frame Number", "ncp.req_frame_num", FT_FRAMENUM, BASE_NONE,
+		NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_req_frame_time,
+	{ "Time from Request", "ncp.time", FT_RELATIVE_TIME, BASE_NONE,
+		NULL, 0x0, "Time between request and response in seconds", HFILL }},
+
+        { &hf_nds_flags,
+        { "NDS Return Flags", "ncp.nds_flags", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
+
+
+	{ &hf_nds_reply_depth,
+	{ "Distance from Root", "ncp.ndsdepth", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+        { &hf_nds_reply_rev,
+	{ "NDS Revision", "ncp.ndsrev", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
+
+	{ &hf_nds_reply_flags,
+	{ "Flags", "ncp.ndsflags", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
+
+        { &hf_nds_p1type,
+	{ "NDS Parameter Type", "ncp.p1type", FT_UINT8, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+        { &hf_nds_uint32value,
+	{ "NDS Value", "ncp.uint32value", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+        { &hf_nds_bit1,
+        { "Typeless", "ncp.nds_bit1", FT_BOOLEAN, 16, NULL, 0x00000001, "", HFILL }},
+
+        { &hf_nds_bit2,
+        { "All Containers", "ncp.nds_bit2", FT_BOOLEAN, 16, NULL, 0x00000002, "", HFILL }},
+
+        { &hf_nds_bit3,
+        { "Slashed", "ncp.nds_bit3", FT_BOOLEAN, 16, NULL, 0x00000004, "", HFILL }},
+
+        { &hf_nds_bit4,
+        { "Dotted", "ncp.nds_bit4", FT_BOOLEAN, 16, NULL, 0x00000008, "", HFILL }},
+
+        { &hf_nds_bit5,
+        { "Tuned", "ncp.nds_bit5", FT_BOOLEAN, 16, NULL, 0x00000010, "", HFILL }},
+
+        { &hf_nds_bit6,
+        { "Not Defined", "ncp.nds_bit6", FT_BOOLEAN, 16, NULL, 0x00000020, "", HFILL }},
+
+        { &hf_nds_bit7,
+        { "Not Defined", "ncp.nds_bit7", FT_BOOLEAN, 16, NULL, 0x00000040, "", HFILL }},
+
+        { &hf_nds_bit8,
+        { "Not Defined", "ncp.nds_bit8", FT_BOOLEAN, 16, NULL, 0x00000080, "", HFILL }},
+
+        { &hf_nds_bit9,
+        { "Not Defined", "ncp.nds_bit9", FT_BOOLEAN, 16, NULL, 0x00000100, "", HFILL }},
+
+        { &hf_nds_bit10,
+        { "Not Defined", "ncp.nds_bit10", FT_BOOLEAN, 16, NULL, 0x00000200, "", HFILL }},
+
+        { &hf_nds_bit11,
+        { "Not Defined", "ncp.nds_bit11", FT_BOOLEAN, 16, NULL, 0x00000400, "", HFILL }},
+
+        { &hf_nds_bit12,
+        { "Not Defined", "ncp.nds_bit12", FT_BOOLEAN, 16, NULL, 0x00000800, "", HFILL }},
+
+        { &hf_nds_bit13,
+        { "Not Defined", "ncp.nds_bit13", FT_BOOLEAN, 16, NULL, 0x00001000, "", HFILL }},
+
+        { &hf_nds_bit14,
+        { "Not Defined", "ncp.nds_bit14", FT_BOOLEAN, 16, NULL, 0x00002000, "", HFILL }},
+
+        { &hf_nds_bit15,
+        { "Not Defined", "ncp.nds_bit15", FT_BOOLEAN, 16, NULL, 0x00004000, "", HFILL }},
+
+        { &hf_nds_bit16,
+        { "Not Defined", "ncp.nds_bit16", FT_BOOLEAN, 16, NULL, 0x00008000, "", HFILL }},
+
+        { &hf_bit1outflags,
+        { "Output Flags", "ncp.bit1outflags", FT_BOOLEAN, 16, NULL, 0x00000001, "", HFILL }},
+
+        { &hf_bit2outflags,
+        { "Entry ID", "ncp.bit2outflags", FT_BOOLEAN, 16, NULL, 0x00000002, "", HFILL }},
+
+        { &hf_bit3outflags,
+        { "Replica State", "ncp.bit3outflags", FT_BOOLEAN, 16, NULL, 0x00000004, "", HFILL }},
+
+        { &hf_bit4outflags,
+        { "Modification Timestamp", "ncp.bit4outflags", FT_BOOLEAN, 16, NULL, 0x00000008, "", HFILL }},
+
+        { &hf_bit5outflags,
+        { "Purge Time", "ncp.bit5outflags", FT_BOOLEAN, 16, NULL, 0x00000010, "", HFILL }},
+
+        { &hf_bit6outflags,
+        { "Local Partition ID", "ncp.bit6outflags", FT_BOOLEAN, 16, NULL, 0x00000020, "", HFILL }},
+
+        { &hf_bit7outflags,
+        { "Distinguished Name", "ncp.bit7outflags", FT_BOOLEAN, 16, NULL, 0x00000040, "", HFILL }},
+
+        { &hf_bit8outflags,
+        { "Replica Type", "ncp.bit8outflags", FT_BOOLEAN, 16, NULL, 0x00000080, "", HFILL }},
+
+        { &hf_bit9outflags,
+        { "Partition Busy", "ncp.bit9outflags", FT_BOOLEAN, 16, NULL, 0x00000100, "", HFILL }},
+
+        { &hf_bit10outflags,
+        { "Not Defined", "ncp.bit10outflags", FT_BOOLEAN, 16, NULL, 0x00000200, "", HFILL }},
+
+        { &hf_bit11outflags,
+        { "Not Defined", "ncp.bit11outflags", FT_BOOLEAN, 16, NULL, 0x00000400, "", HFILL }},
+
+        { &hf_bit12outflags,
+        { "Not Defined", "ncp.bit12outflags", FT_BOOLEAN, 16, NULL, 0x00000800, "", HFILL }},
+
+        { &hf_bit13outflags,
+        { "Not Defined", "ncp.bit13outflags", FT_BOOLEAN, 16, NULL, 0x00001000, "", HFILL }},
+
+        { &hf_bit14outflags,
+        { "Not Defined", "ncp.bit14outflags", FT_BOOLEAN, 16, NULL, 0x00002000, "", HFILL }},
+
+        { &hf_bit15outflags,
+        { "Not Defined", "ncp.bit15outflags", FT_BOOLEAN, 16, NULL, 0x00004000, "", HFILL }},
+
+        { &hf_bit16outflags,
+        { "Not Defined", "ncp.bit16outflags", FT_BOOLEAN, 16, NULL, 0x00008000, "", HFILL }},
+
+        { &hf_bit1nflags,
+        { "Entry ID", "ncp.bit1nflags", FT_BOOLEAN, 16, NULL, 0x00000001, "", HFILL }},
+
+        { &hf_bit2nflags,
+        { "Readable", "ncp.bit2nflags", FT_BOOLEAN, 16, NULL, 0x00000002, "", HFILL }},
+
+        { &hf_bit3nflags,
+        { "Writeable", "ncp.bit3nflags", FT_BOOLEAN, 16, NULL, 0x00000004, "", HFILL }},
+
+        { &hf_bit4nflags,
+        { "Master", "ncp.bit4nflags", FT_BOOLEAN, 16, NULL, 0x00000008, "", HFILL }},
+
+        { &hf_bit5nflags,
+        { "Create ID", "ncp.bit5nflags", FT_BOOLEAN, 16, NULL, 0x00000010, "", HFILL }},
+
+        { &hf_bit6nflags,
+        { "Walk Tree", "ncp.bit6nflags", FT_BOOLEAN, 16, NULL, 0x00000020, "", HFILL }},
+
+        { &hf_bit7nflags,
+        { "Dereference Alias", "ncp.bit7nflags", FT_BOOLEAN, 16, NULL, 0x00000040, "", HFILL }},
+
+        { &hf_bit8nflags,
+        { "Not Defined", "ncp.bit8nflags", FT_BOOLEAN, 16, NULL, 0x00000080, "", HFILL }},
+
+        { &hf_bit9nflags,
+        { "Not Defined", "ncp.bit9nflags", FT_BOOLEAN, 16, NULL, 0x00000100, "", HFILL }},
+
+        { &hf_bit10nflags,
+        { "Not Defined", "ncp.bit10nflags", FT_BOOLEAN, 16, NULL, 0x00000200, "", HFILL }},
+
+        { &hf_bit11nflags,
+        { "Not Defined", "ncp.bit11nflags", FT_BOOLEAN, 16, NULL, 0x00000400, "", HFILL }},
+
+        { &hf_bit12nflags,
+        { "Not Defined", "ncp.bit12nflags", FT_BOOLEAN, 16, NULL, 0x00000800, "", HFILL }},
+
+        { &hf_bit13nflags,
+        { "Not Defined", "ncp.bit13nflags", FT_BOOLEAN, 16, NULL, 0x00001000, "", HFILL }},
+
+        { &hf_bit14nflags,
+        { "Prefer Referrals", "ncp.bit14nflags", FT_BOOLEAN, 16, NULL, 0x00002000, "", HFILL }},
+
+        { &hf_bit15nflags,
+        { "Prefer Only Referrals", "ncp.bit15nflags", FT_BOOLEAN, 16, NULL, 0x00004000, "", HFILL }},
+
+        { &hf_bit16nflags,
+        { "Not Defined", "ncp.bit16nflags", FT_BOOLEAN, 16, NULL, 0x00008000, "", HFILL }},
+
+        { &hf_bit1rflags,
+        { "Typeless", "ncp.bit1rflags", FT_BOOLEAN, 16, NULL, 0x00000001, "", HFILL }},
+
+        { &hf_bit2rflags,
+        { "Slashed", "ncp.bit2rflags", FT_BOOLEAN, 16, NULL, 0x00000002, "", HFILL }},
+
+        { &hf_bit3rflags,
+        { "Dotted", "ncp.bit3rflags", FT_BOOLEAN, 16, NULL, 0x00000004, "", HFILL }},
+
+        { &hf_bit4rflags,
+        { "Tuned", "ncp.bit4rflags", FT_BOOLEAN, 16, NULL, 0x00000008, "", HFILL }},
+
+        { &hf_bit5rflags,
+        { "Not Defined", "ncp.bit5rflags", FT_BOOLEAN, 16, NULL, 0x00000010, "", HFILL }},
+
+        { &hf_bit6rflags,
+        { "Not Defined", "ncp.bit6rflags", FT_BOOLEAN, 16, NULL, 0x00000020, "", HFILL }},
+
+        { &hf_bit7rflags,
+        { "Not Defined", "ncp.bit7rflags", FT_BOOLEAN, 16, NULL, 0x00000040, "", HFILL }},
+
+        { &hf_bit8rflags,
+        { "Not Defined", "ncp.bit8rflags", FT_BOOLEAN, 16, NULL, 0x00000080, "", HFILL }},
+
+        { &hf_bit9rflags,
+        { "Not Defined", "ncp.bit9rflags", FT_BOOLEAN, 16, NULL, 0x00000100, "", HFILL }},
+
+        { &hf_bit10rflags,
+        { "Not Defined", "ncp.bit10rflags", FT_BOOLEAN, 16, NULL, 0x00000200, "", HFILL }},
+
+        { &hf_bit11rflags,
+        { "Not Defined", "ncp.bit11rflags", FT_BOOLEAN, 16, NULL, 0x00000400, "", HFILL }},
+
+        { &hf_bit12rflags,
+        { "Not Defined", "ncp.bit12rflags", FT_BOOLEAN, 16, NULL, 0x00000800, "", HFILL }},
+
+        { &hf_bit13rflags,
+        { "Not Defined", "ncp.bit13rflags", FT_BOOLEAN, 16, NULL, 0x00001000, "", HFILL }},
+
+        { &hf_bit14rflags,
+        { "Not Defined", "ncp.bit14rflags", FT_BOOLEAN, 16, NULL, 0x00002000, "", HFILL }},
+
+        { &hf_bit15rflags,
+        { "Not Defined", "ncp.bit15rflags", FT_BOOLEAN, 16, NULL, 0x00004000, "", HFILL }},
+
+        { &hf_bit16rflags,
+        { "Not Defined", "ncp.bit16rflags", FT_BOOLEAN, 16, NULL, 0x00008000, "", HFILL }},
+
+        { &hf_bit1eflags,
+        { "Alias Entry", "ncp.bit1eflags", FT_BOOLEAN, 16, NULL, 0x00000001, "", HFILL }},
+
+        { &hf_bit2eflags,
+        { "Partition Root", "ncp.bit2eflags", FT_BOOLEAN, 16, NULL, 0x00000002, "", HFILL }},
+
+        { &hf_bit3eflags,
+        { "Container Entry", "ncp.bit3eflags", FT_BOOLEAN, 16, NULL, 0x00000004, "", HFILL }},
+
+        { &hf_bit4eflags,
+        { "Container Alias", "ncp.bit4eflags", FT_BOOLEAN, 16, NULL, 0x00000008, "", HFILL }},
+
+        { &hf_bit5eflags,
+        { "Matches List Filter", "ncp.bit5eflags", FT_BOOLEAN, 16, NULL, 0x00000010, "", HFILL }},
+
+        { &hf_bit6eflags,
+        { "Reference Entry", "ncp.bit6eflags", FT_BOOLEAN, 16, NULL, 0x00000020, "", HFILL }},
+
+        { &hf_bit7eflags,
+        { "40x Reference Entry", "ncp.bit7eflags", FT_BOOLEAN, 16, NULL, 0x00000040, "", HFILL }},
+
+        { &hf_bit8eflags,
+        { "Back Linked", "ncp.bit8eflags", FT_BOOLEAN, 16, NULL, 0x00000080, "", HFILL }},
+
+        { &hf_bit9eflags,
+        { "New Entry", "ncp.bit9eflags", FT_BOOLEAN, 16, NULL, 0x00000100, "", HFILL }},
+
+        { &hf_bit10eflags,
+        { "Temporary Reference", "ncp.bit10eflags", FT_BOOLEAN, 16, NULL, 0x00000200, "", HFILL }},
+
+        { &hf_bit11eflags,
+        { "Audited", "ncp.bit11eflags", FT_BOOLEAN, 16, NULL, 0x00000400, "", HFILL }},
+
+        { &hf_bit12eflags,
+        { "Entry Not Present", "ncp.bit12eflags", FT_BOOLEAN, 16, NULL, 0x00000800, "", HFILL }},
+
+        { &hf_bit13eflags,
+        { "Entry Verify CTS", "ncp.bit13eflags", FT_BOOLEAN, 16, NULL, 0x00001000, "", HFILL }},
+
+        { &hf_bit14eflags,
+        { "Entry Damaged", "ncp.bit14eflags", FT_BOOLEAN, 16, NULL, 0x00002000, "", HFILL }},
+
+        { &hf_bit15eflags,
+        { "Not Defined", "ncp.bit15rflags", FT_BOOLEAN, 16, NULL, 0x00004000, "", HFILL }},
+
+        { &hf_bit16eflags,
+        { "Not Defined", "ncp.bit16rflags", FT_BOOLEAN, 16, NULL, 0x00008000, "", HFILL }},
+
+        { &hf_bit1infoflagsl,
+        { "Output Flags", "ncp.bit1infoflagsl", FT_BOOLEAN, 16, NULL, 0x00000001, "", HFILL }},
+
+        { &hf_bit2infoflagsl,
+        { "Entry ID", "ncp.bit2infoflagsl", FT_BOOLEAN, 16, NULL, 0x00000002, "", HFILL }},
+
+        { &hf_bit3infoflagsl,
+        { "Entry Flags", "ncp.bit3infoflagsl", FT_BOOLEAN, 16, NULL, 0x00000004, "", HFILL }},
+
+        { &hf_bit4infoflagsl,
+        { "Subordinate Count", "ncp.bit4infoflagsl", FT_BOOLEAN, 16, NULL, 0x00000008, "", HFILL }},
+
+        { &hf_bit5infoflagsl,
+        { "Modification Time", "ncp.bit5infoflagsl", FT_BOOLEAN, 16, NULL, 0x00000010, "", HFILL }},
+
+        { &hf_bit6infoflagsl,
+        { "Modification Timestamp", "ncp.bit6infoflagsl", FT_BOOLEAN, 16, NULL, 0x00000020, "", HFILL }},
+
+        { &hf_bit7infoflagsl,
+        { "Creation Timestamp", "ncp.bit7infoflagsl", FT_BOOLEAN, 16, NULL, 0x00000040, "", HFILL }},
+
+        { &hf_bit8infoflagsl,
+        { "Partition Root ID", "ncp.bit8infoflagsl", FT_BOOLEAN, 16, NULL, 0x00000080, "", HFILL }},
+
+        { &hf_bit9infoflagsl,
+        { "Parent ID", "ncp.bit9infoflagsl", FT_BOOLEAN, 16, NULL, 0x00000100, "", HFILL }},
+
+        { &hf_bit10infoflagsl,
+        { "Revision Count", "ncp.bit10infoflagsl", FT_BOOLEAN, 16, NULL, 0x00000200, "", HFILL }},
+
+        { &hf_bit11infoflagsl,
+        { "Replica Type", "ncp.bit11infoflagsl", FT_BOOLEAN, 16, NULL, 0x00000400, "", HFILL }},
+
+        { &hf_bit12infoflagsl,
+        { "Base Class", "ncp.bit12infoflagsl", FT_BOOLEAN, 16, NULL, 0x00000800, "", HFILL }},
+
+        { &hf_bit13infoflagsl,
+        { "Relative Distinguished Name", "ncp.bit13infoflagsl", FT_BOOLEAN, 16, NULL, 0x00001000, "", HFILL }},
+
+        { &hf_bit14infoflagsl,
+        { "Distinguished Name", "ncp.bit14infoflagsl", FT_BOOLEAN, 16, NULL, 0x00002000, "", HFILL }},
+
+        { &hf_bit15infoflagsl,
+        { "Root Distinguished Name", "ncp.bit15infoflagsl", FT_BOOLEAN, 16, NULL, 0x00004000, "", HFILL }},
+
+        { &hf_bit16infoflagsl,
+        { "Parent Distinguished Name", "ncp.bit16infoflagsl", FT_BOOLEAN, 16, NULL, 0x00008000, "", HFILL }},
+
+        { &hf_bit1infoflagsh,
+        { "Purge Time", "ncp.bit1infoflagsh", FT_BOOLEAN, 16, NULL, 0x00000001, "", HFILL }},
+
+        { &hf_bit2infoflagsh,
+        { "Dereference Base Class", "ncp.bit2infoflagsh", FT_BOOLEAN, 16, NULL, 0x00000002, "", HFILL }},
+
+        { &hf_bit3infoflagsh,
+        { "Not Defined", "ncp.bit3infoflagsh", FT_BOOLEAN, 16, NULL, 0x00000004, "", HFILL }},
+
+        { &hf_bit4infoflagsh,
+        { "Not Defined", "ncp.bit4infoflagsh", FT_BOOLEAN, 16, NULL, 0x00000008, "", HFILL }},
+
+        { &hf_bit5infoflagsh,
+        { "Not Defined", "ncp.bit5infoflagsh", FT_BOOLEAN, 16, NULL, 0x00000010, "", HFILL }},
+
+        { &hf_bit6infoflagsh,
+        { "Not Defined", "ncp.bit6infoflagsh", FT_BOOLEAN, 16, NULL, 0x00000020, "", HFILL }},
+
+        { &hf_bit7infoflagsh,
+        { "Not Defined", "ncp.bit7infoflagsh", FT_BOOLEAN, 16, NULL, 0x00000040, "", HFILL }},
+
+        { &hf_bit8infoflagsh,
+        { "Not Defined", "ncp.bit8infoflagsh", FT_BOOLEAN, 16, NULL, 0x00000080, "", HFILL }},
+
+        { &hf_bit9infoflagsh,
+        { "Not Defined", "ncp.bit9infoflagsh", FT_BOOLEAN, 16, NULL, 0x00000100, "", HFILL }},
+
+        { &hf_bit10infoflagsh,
+        { "Not Defined", "ncp.bit10infoflagsh", FT_BOOLEAN, 16, NULL, 0x00000200, "", HFILL }},
+
+        { &hf_bit11infoflagsh,
+        { "Not Defined", "ncp.bit11infoflagsh", FT_BOOLEAN, 16, NULL, 0x00000400, "", HFILL }},
+
+        { &hf_bit12infoflagsh,
+        { "Not Defined", "ncp.bit12infoflagshs", FT_BOOLEAN, 16, NULL, 0x00000800, "", HFILL }},
+
+        { &hf_bit13infoflagsh,
+        { "Not Defined", "ncp.bit13infoflagsh", FT_BOOLEAN, 16, NULL, 0x00001000, "", HFILL }},
+
+        { &hf_bit14infoflagsh,
+        { "Not Defined", "ncp.bit14infoflagsh", FT_BOOLEAN, 16, NULL, 0x00002000, "", HFILL }},
+
+        { &hf_bit15infoflagsh,
+        { "Not Defined", "ncp.bit15infoflagsh", FT_BOOLEAN, 16, NULL, 0x00004000, "", HFILL }},
+
+        { &hf_bit16infoflagsh,
+        { "Not Defined", "ncp.bit16infoflagsh", FT_BOOLEAN, 16, NULL, 0x00008000, "", HFILL }},
+
+        { &hf_bit1lflags,
+        { "List Typeless", "ncp.bit1lflags", FT_BOOLEAN, 16, NULL, 0x00000001, "", HFILL }},
+
+        { &hf_bit2lflags,
+        { "List Containers", "ncp.bit2lflags", FT_BOOLEAN, 16, NULL, 0x00000002, "", HFILL }},
+
+        { &hf_bit3lflags,
+        { "List Slashed", "ncp.bit3lflags", FT_BOOLEAN, 16, NULL, 0x00000004, "", HFILL }},
+
+        { &hf_bit4lflags,
+        { "List Dotted", "ncp.bit4lflags", FT_BOOLEAN, 16, NULL, 0x00000008, "", HFILL }},
+
+        { &hf_bit5lflags,
+        { "Dereference Alias", "ncp.bit5lflags", FT_BOOLEAN, 16, NULL, 0x00000010, "", HFILL }},
+
+        { &hf_bit6lflags,
+        { "List All Containers", "ncp.bit6lflags", FT_BOOLEAN, 16, NULL, 0x00000020, "", HFILL }},
+
+        { &hf_bit7lflags,
+        { "List Obsolete", "ncp.bit7lflags", FT_BOOLEAN, 16, NULL, 0x00000040, "", HFILL }},
+
+        { &hf_bit8lflags,
+        { "List Tuned Output", "ncp.bit8lflags", FT_BOOLEAN, 16, NULL, 0x00000080, "", HFILL }},
+
+        { &hf_bit9lflags,
+        { "List External Reference", "ncp.bit9lflags", FT_BOOLEAN, 16, NULL, 0x00000100, "", HFILL }},
+
+        { &hf_bit10lflags,
+        { "Not Defined", "ncp.bit10lflags", FT_BOOLEAN, 16, NULL, 0x00000200, "", HFILL }},
+
+        { &hf_bit11lflags,
+        { "Not Defined", "ncp.bit11lflags", FT_BOOLEAN, 16, NULL, 0x00000400, "", HFILL }},
+
+        { &hf_bit12lflags,
+        { "Not Defined", "ncp.bit12lflags", FT_BOOLEAN, 16, NULL, 0x00000800, "", HFILL }},
+
+        { &hf_bit13lflags,
+        { "Not Defined", "ncp.bit13lflags", FT_BOOLEAN, 16, NULL, 0x00001000, "", HFILL }},
+
+        { &hf_bit14lflags,
+        { "Not Defined", "ncp.bit14lflags", FT_BOOLEAN, 16, NULL, 0x00002000, "", HFILL }},
+
+        { &hf_bit15lflags,
+        { "Not Defined", "ncp.bit15lflags", FT_BOOLEAN, 16, NULL, 0x00004000, "", HFILL }},
+
+        { &hf_bit16lflags,
+        { "Not Defined", "ncp.bit16lflags", FT_BOOLEAN, 16, NULL, 0x00008000, "", HFILL }},
+
+        { &hf_bit1l1flagsl,
+        { "Output Flags", "ncp.bit1l1flagsl", FT_BOOLEAN, 16, NULL, 0x00000001, "", HFILL }},
+
+        { &hf_bit2l1flagsl,
+        { "Entry ID", "ncp.bit2l1flagsl", FT_BOOLEAN, 16, NULL, 0x00000002, "", HFILL }},
+
+        { &hf_bit3l1flagsl,
+        { "Replica State", "ncp.bit3l1flagsl", FT_BOOLEAN, 16, NULL, 0x00000004, "", HFILL }},
+
+        { &hf_bit4l1flagsl,
+        { "Modification Timestamp", "ncp.bit4l1flagsl", FT_BOOLEAN, 16, NULL, 0x00000008, "", HFILL }},
+
+        { &hf_bit5l1flagsl,
+        { "Purge Time", "ncp.bit5l1flagsl", FT_BOOLEAN, 16, NULL, 0x00000010, "", HFILL }},
+
+        { &hf_bit6l1flagsl,
+        { "Local Partition ID", "ncp.bit6l1flagsl", FT_BOOLEAN, 16, NULL, 0x00000020, "", HFILL }},
+
+        { &hf_bit7l1flagsl,
+        { "Distinguished Name", "ncp.bit7l1flagsl", FT_BOOLEAN, 16, NULL, 0x00000040, "", HFILL }},
+
+        { &hf_bit8l1flagsl,
+        { "Replica Type", "ncp.bit8l1flagsl", FT_BOOLEAN, 16, NULL, 0x00000080, "", HFILL }},
+
+        { &hf_bit9l1flagsl,
+        { "Partition Busy", "ncp.bit9l1flagsl", FT_BOOLEAN, 16, NULL, 0x00000100, "", HFILL }},
+
+        { &hf_bit10l1flagsl,
+        { "Not Defined", "ncp.bit10l1flagsl", FT_BOOLEAN, 16, NULL, 0x00000200, "", HFILL }},
+
+        { &hf_bit11l1flagsl,
+        { "Not Defined", "ncp.bit11l1flagsl", FT_BOOLEAN, 16, NULL, 0x00000400, "", HFILL }},
+
+        { &hf_bit12l1flagsl,
+        { "Not Defined", "ncp.bit12l1flagsl", FT_BOOLEAN, 16, NULL, 0x00000800, "", HFILL }},
+
+        { &hf_bit13l1flagsl,
+        { "Not Defined", "ncp.bit13l1flagsl", FT_BOOLEAN, 16, NULL, 0x00001000, "", HFILL }},
+
+        { &hf_bit14l1flagsl,
+        { "Not Defined", "ncp.bit14l1flagsl", FT_BOOLEAN, 16, NULL, 0x00002000, "", HFILL }},
+
+        { &hf_bit15l1flagsl,
+        { "Not Defined", "ncp.bit15l1flagsl", FT_BOOLEAN, 16, NULL, 0x00004000, "", HFILL }},
+
+        { &hf_bit16l1flagsl,
+        { "Not Defined", "ncp.bit16l1flagsl", FT_BOOLEAN, 16, NULL, 0x00008000, "", HFILL }},
+
+        { &hf_bit1l1flagsh,
+        { "Not Defined", "ncp.bit1l1flagsh", FT_BOOLEAN, 16, NULL, 0x00000001, "", HFILL }},
+
+        { &hf_bit2l1flagsh,
+        { "Not Defined", "ncp.bit2l1flagsh", FT_BOOLEAN, 16, NULL, 0x00000002, "", HFILL }},
+
+        { &hf_bit3l1flagsh,
+        { "Not Defined", "ncp.bit3l1flagsh", FT_BOOLEAN, 16, NULL, 0x00000004, "", HFILL }},
+
+        { &hf_bit4l1flagsh,
+        { "Not Defined", "ncp.bit4l1flagsh", FT_BOOLEAN, 16, NULL, 0x00000008, "", HFILL }},
+
+        { &hf_bit5l1flagsh,
+        { "Not Defined", "ncp.bit5l1flagsh", FT_BOOLEAN, 16, NULL, 0x00000010, "", HFILL }},
+
+        { &hf_bit6l1flagsh,
+        { "Not Defined", "ncp.bit6l1flagsh", FT_BOOLEAN, 16, NULL, 0x00000020, "", HFILL }},
+
+        { &hf_bit7l1flagsh,
+        { "Not Defined", "ncp.bit7l1flagsh", FT_BOOLEAN, 16, NULL, 0x00000040, "", HFILL }},
+
+        { &hf_bit8l1flagsh,
+        { "Not Defined", "ncp.bit8l1flagsh", FT_BOOLEAN, 16, NULL, 0x00000080, "", HFILL }},
+
+        { &hf_bit9l1flagsh,
+        { "Not Defined", "ncp.bit9l1flagsh", FT_BOOLEAN, 16, NULL, 0x00000100, "", HFILL }},
+
+        { &hf_bit10l1flagsh,
+        { "Not Defined", "ncp.bit10l1flagsh", FT_BOOLEAN, 16, NULL, 0x00000200, "", HFILL }},
+
+        { &hf_bit11l1flagsh,
+        { "Not Defined", "ncp.bit11l1flagsh", FT_BOOLEAN, 16, NULL, 0x00000400, "", HFILL }},
+
+        { &hf_bit12l1flagsh,
+        { "Not Defined", "ncp.bit12l1flagsh", FT_BOOLEAN, 16, NULL, 0x00000800, "", HFILL }},
+
+        { &hf_bit13l1flagsh,
+        { "Not Defined", "ncp.bit13l1flagsh", FT_BOOLEAN, 16, NULL, 0x00001000, "", HFILL }},
+
+        { &hf_bit14l1flagsh,
+        { "Not Defined", "ncp.bit14l1flagsh", FT_BOOLEAN, 16, NULL, 0x00002000, "", HFILL }},
+
+        { &hf_bit15l1flagsh,
+        { "Not Defined", "ncp.bit15l1flagsh", FT_BOOLEAN, 16, NULL, 0x00004000, "", HFILL }},
+
+        { &hf_bit16l1flagsh,
+        { "Not Defined", "ncp.bit16l1flagsh", FT_BOOLEAN, 16, NULL, 0x00008000, "", HFILL }},
+
+        { &hf_bit1vflags,
+        { "Naming", "ncp.bit1vflags", FT_BOOLEAN, 16, NULL, 0x00000001, "", HFILL }},
+
+        { &hf_bit2vflags,
+        { "Base Class", "ncp.bit2vflags", FT_BOOLEAN, 16, NULL, 0x00000002, "", HFILL }},
+
+        { &hf_bit3vflags,
+        { "Present", "ncp.bit3vflags", FT_BOOLEAN, 16, NULL, 0x00000004, "", HFILL }},
+
+        { &hf_bit4vflags,
+        { "Value Damaged", "ncp.bit4vflags", FT_BOOLEAN, 16, NULL, 0x00000008, "", HFILL }},
+
+        { &hf_bit5vflags,
+        { "Not Defined", "ncp.bit5vflags", FT_BOOLEAN, 16, NULL, 0x00000010, "", HFILL }},
+
+        { &hf_bit6vflags,
+        { "Not Defined", "ncp.bit6vflags", FT_BOOLEAN, 16, NULL, 0x00000020, "", HFILL }},
+
+        { &hf_bit7vflags,
+        { "Not Defined", "ncp.bit7vflags", FT_BOOLEAN, 16, NULL, 0x00000040, "", HFILL }},
+
+        { &hf_bit8vflags,
+        { "Not Defined", "ncp.bit8vflags", FT_BOOLEAN, 16, NULL, 0x00000080, "", HFILL }},
+
+        { &hf_bit9vflags,
+        { "Not Defined", "ncp.bit9vflags", FT_BOOLEAN, 16, NULL, 0x00000100, "", HFILL }},
+
+        { &hf_bit10vflags,
+        { "Not Defined", "ncp.bit10vflags", FT_BOOLEAN, 16, NULL, 0x00000200, "", HFILL }},
+
+        { &hf_bit11vflags,
+        { "Not Defined", "ncp.bit11vflags", FT_BOOLEAN, 16, NULL, 0x00000400, "", HFILL }},
+
+        { &hf_bit12vflags,
+        { "Not Defined", "ncp.bit12vflags", FT_BOOLEAN, 16, NULL, 0x00000800, "", HFILL }},
+
+        { &hf_bit13vflags,
+        { "Not Defined", "ncp.bit13vflags", FT_BOOLEAN, 16, NULL, 0x00001000, "", HFILL }},
+
+        { &hf_bit14vflags,
+        { "Not Defined", "ncp.bit14vflags", FT_BOOLEAN, 16, NULL, 0x00002000, "", HFILL }},
+
+        { &hf_bit15vflags,
+        { "Not Defined", "ncp.bit15vflags", FT_BOOLEAN, 16, NULL, 0x00004000, "", HFILL }},
+
+        { &hf_bit16vflags,
+        { "Not Defined", "ncp.bit16vflags", FT_BOOLEAN, 16, NULL, 0x00008000, "", HFILL }},
+
+        { &hf_bit1cflags,
+        { "Ambiguous Containment", "ncp.bit1cflags", FT_BOOLEAN, 16, NULL, 0x00000001, "", HFILL }},
+
+        { &hf_bit2cflags,
+        { "Ambiguous Naming", "ncp.bit2cflags", FT_BOOLEAN, 16, NULL, 0x00000002, "", HFILL }},
+
+        { &hf_bit3cflags,
+        { "Class Definition Cannot be Removed", "ncp.bit3cflags", FT_BOOLEAN, 16, NULL, 0x00000004, "", HFILL }},
+
+        { &hf_bit4cflags,
+        { "Effective Class", "ncp.bit4cflags", FT_BOOLEAN, 16, NULL, 0x00000008, "", HFILL }},
+
+        { &hf_bit5cflags,
+        { "Container Class", "ncp.bit5cflags", FT_BOOLEAN, 16, NULL, 0x00000010, "", HFILL }},
+
+        { &hf_bit6cflags,
+        { "Not Defined", "ncp.bit6cflags", FT_BOOLEAN, 16, NULL, 0x00000020, "", HFILL }},
+
+        { &hf_bit7cflags,
+        { "Not Defined", "ncp.bit7cflags", FT_BOOLEAN, 16, NULL, 0x00000040, "", HFILL }},
+
+        { &hf_bit8cflags,
+        { "Not Defined", "ncp.bit8cflags", FT_BOOLEAN, 16, NULL, 0x00000080, "", HFILL }},
+
+        { &hf_bit9cflags,
+        { "Not Defined", "ncp.bit9cflags", FT_BOOLEAN, 16, NULL, 0x00000100, "", HFILL }},
+
+        { &hf_bit10cflags,
+        { "Not Defined", "ncp.bit10cflags", FT_BOOLEAN, 16, NULL, 0x00000200, "", HFILL }},
+
+        { &hf_bit11cflags,
+        { "Not Defined", "ncp.bit11cflags", FT_BOOLEAN, 16, NULL, 0x00000400, "", HFILL }},
+
+        { &hf_bit12cflags,
+        { "Not Defined", "ncp.bit12cflags", FT_BOOLEAN, 16, NULL, 0x00000800, "", HFILL }},
+
+        { &hf_bit13cflags,
+        { "Not Defined", "ncp.bit13cflags", FT_BOOLEAN, 16, NULL, 0x00001000, "", HFILL }},
+
+        { &hf_bit14cflags,
+        { "Not Defined", "ncp.bit14cflags", FT_BOOLEAN, 16, NULL, 0x00002000, "", HFILL }},
+
+        { &hf_bit15cflags,
+        { "Not Defined", "ncp.bit15cflags", FT_BOOLEAN, 16, NULL, 0x00004000, "", HFILL }},
+
+        { &hf_bit16cflags,
+        { "Not Defined", "ncp.bit16cflags", FT_BOOLEAN, 16, NULL, 0x00008000, "", HFILL }},
+
+        { &hf_bit1acflags,
+        { "Single Valued", "ncp.bit1acflags", FT_BOOLEAN, 16, NULL, 0x00000001, "", HFILL }},
+
+        { &hf_bit2acflags,
+        { "Sized", "ncp.bit2acflags", FT_BOOLEAN, 16, NULL, 0x00000002, "", HFILL }},
+
+        { &hf_bit3acflags,
+        { "Non-Removable", "ncp.bit3acflags", FT_BOOLEAN, 16, NULL, 0x00000004, "", HFILL }},
+
+        { &hf_bit4acflags,
+        { "Read Only", "ncp.bit4acflags", FT_BOOLEAN, 16, NULL, 0x00000008, "", HFILL }},
+
+        { &hf_bit5acflags,
+        { "Hidden", "ncp.bit5acflags", FT_BOOLEAN, 16, NULL, 0x00000010, "", HFILL }},
+
+        { &hf_bit6acflags,
+        { "String", "ncp.bit6acflags", FT_BOOLEAN, 16, NULL, 0x00000020, "", HFILL }},
+
+        { &hf_bit7acflags,
+        { "Synchronize Immediate", "ncp.bit7acflags", FT_BOOLEAN, 16, NULL, 0x00000040, "", HFILL }},
+
+        { &hf_bit8acflags,
+        { "Public Read", "ncp.bit8acflags", FT_BOOLEAN, 16, NULL, 0x00000080, "", HFILL }},
+
+        { &hf_bit9acflags,
+        { "Server Read", "ncp.bit9acflags", FT_BOOLEAN, 16, NULL, 0x00000100, "", HFILL }},
+
+        { &hf_bit10acflags,
+        { "Write Managed", "ncp.bit10acflags", FT_BOOLEAN, 16, NULL, 0x00000200, "", HFILL }},
+
+        { &hf_bit11acflags,
+        { "Per Replica", "ncp.bit11acflags", FT_BOOLEAN, 16, NULL, 0x00000400, "", HFILL }},
+
+        { &hf_bit12acflags,
+        { "Never Schedule Synchronization", "ncp.bit12acflags", FT_BOOLEAN, 16, NULL, 0x00000800, "", HFILL }},
+
+        { &hf_bit13acflags,
+        { "Operational", "ncp.bit13acflags", FT_BOOLEAN, 16, NULL, 0x00001000, "", HFILL }},
+
+        { &hf_bit14acflags,
+        { "Not Defined", "ncp.bit14acflags", FT_BOOLEAN, 16, NULL, 0x00002000, "", HFILL }},
+
+        { &hf_bit15acflags,
+        { "Not Defined", "ncp.bit15acflags", FT_BOOLEAN, 16, NULL, 0x00004000, "", HFILL }},
+
+        { &hf_bit16acflags,
+        { "Not Defined", "ncp.bit16acflags", FT_BOOLEAN, 16, NULL, 0x00008000, "", HFILL }},
+
+
+        { &hf_nds_reply_error,
+	{ "NDS Error", "ncp.ndsreplyerror", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
+
+        { &hf_nds_net,
+	{ "Network","ncp.ndsnet", FT_IPXNET, BASE_NONE, NULL, 0x0, "", HFILL }},
+
+	{ &hf_nds_node,
+	{ "Node",	"ncp.ndsnode", FT_ETHER, BASE_NONE, NULL, 0x0, "", HFILL }},
+
+	{ &hf_nds_socket,
+        { "Socket",	"ncp.ndssocket", FT_UINT16, BASE_HEX, NULL, 0x0, "", HFILL }},
+
+        { &hf_add_ref_ip,
+	{ "Address Referral", "ncp.ipref", FT_IPv4, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+        { &hf_add_ref_udp,
+	{ "Address Referral", "ncp.udpref", FT_IPv4, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+        { &hf_add_ref_tcp,
+	{ "Address Referral", "ncp.tcpref", FT_IPv4, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+        { &hf_referral_record,
+	{ "Referral Record", "ncp.ref_rec", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+        { &hf_referral_addcount,
+	{ "Address Count", "ncp.ref_addcount", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_nds_port,
+        { "Port", "ncp.ndsport", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_mv_string,
+	{ "Attribute Name ", "ncp.mv_string", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL }},
+
+	{ &hf_nds_syntax,
+	{ "Attribute Syntax ", "ncp.nds_syntax", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL }},
+
+	{ &hf_value_string,
+	{ "Value ", "ncp.value_string", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL }},
+
+    { &hf_nds_stream_name,
+	{ "Stream Name ", "ncp.nds_stream_name", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL }},
+
+ 	{ &hf_nds_buffer_size,
+	{ "NDS Reply Buffer Size", "ncp.nds_reply_buf", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+ 	{ &hf_nds_ver,
+	{ "NDS Version", "ncp.nds_ver", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+ 	{ &hf_nds_nflags,
+	{ "Flags", "ncp.nds_nflags", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+    { &hf_nds_rflags,
+	{ "Request Flags", "ncp.nds_rflags", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+    { &hf_nds_eflags,
+	{ "Entry Flags", "ncp.nds_eflags", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
+
+ 	{ &hf_nds_scope,
+	{ "Scope", "ncp.nds_scope", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+ 	{ &hf_nds_name,
+	{ "Name", "ncp.nds_name", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL }},
+
+    { &hf_nds_name_type,
+	{ "Name Type", "ncp.nds_name_type", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL }},
+
+ 	{ &hf_nds_comm_trans,
+	{ "Communications Transport", "ncp.nds_comm_trans", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+ 	{ &hf_nds_tree_trans,
+	{ "Tree Walker Transport", "ncp.nds_tree_trans", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+ 	{ &hf_nds_iteration,
+	{ "Iteration Handle", "ncp.nds_iteration", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+    { &hf_nds_file_handle,
+	{ "File Handle", "ncp.nds_file_handle", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
+
+    { &hf_nds_file_size,
+	{ "File Size", "ncp.nds_file_size", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+ 	{ &hf_nds_eid,
+	{ "NDS EID", "ncp.nds_eid", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
+
+    { &hf_nds_depth,
+	{ "Distance object is from Root", "ncp.nds_depth", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+ 	{ &hf_nds_info_type,
+	{ "Info Type", "ncp.nds_info_type", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL }},
+
+    { &hf_nds_class_def_type,
+	{ "Class Definition Type", "ncp.nds_class_def_type", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL }},
+
+ 	{ &hf_nds_all_attr,
+	{ "All Attributes", "ncp.nds_all_attr", FT_UINT32, BASE_DEC, NULL, 0x0, "Return all Attributes?", HFILL }},
+
+    { &hf_nds_return_all_classes,
+	{ "All Classes", "ncp.nds_return_all_classes", FT_STRING, BASE_NONE, NULL, 0x0, "Return all Classes?", HFILL }},
+
+ 	{ &hf_nds_req_flags,
+	{ "Request Flags", "ncp.nds_req_flags", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+ 	{ &hf_nds_attr,
+	{ "Attributes", "ncp.nds_attributes", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+    { &hf_nds_classes,
+	{ "Classes", "ncp.nds_classes", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+ 	{ &hf_nds_crc,
+	{ "CRC", "ncp.nds_crc", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+ 	{ &hf_nds_referrals,
+	{ "Referrals", "ncp.nds_referrals", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+ 	{ &hf_nds_result_flags,
+	{ "Result Flags", "ncp.nds_result_flags", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+    { &hf_nds_stream_flags,
+	{ "Streams Flags", "ncp.nds_stream_flags", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
+
+ 	{ &hf_nds_tag_string,
+	{ "Tags", "ncp.nds_tags", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL }},
+
+ 	{ &hf_value_bytes,
+	{ "Bytes", "ncp.value_bytes", FT_BYTES, BASE_HEX, NULL, 0x0, "", HFILL }},
+
+	{ &hf_replica_type,
+	{ "Replica Type", "ncp.rtype", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL }},
+
+	{ &hf_replica_state,
+	{ "Replica State", "ncp.rstate", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL }},
+
+    { &hf_nds_rnum,
+	{ "Replica Number", "ncp.rnum", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_nds_revent,
+	{ "Event", "ncp.revent", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_replica_number,
+	{ "Replica Number", "ncp.rnum", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_min_nds_ver,
+	{ "Minimum NDS Version", "ncp.min_nds_version", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
+
+	{ &hf_nds_ver_include,
+	{ "Include NDS Version", "ncp.inc_nds_ver", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
+
+	{ &hf_nds_ver_exclude,
+	{ "Exclude NDS Version", "ncp.exc_nds_ver", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
+
+	{ &hf_nds_es,
+	{ "Input Entry Specifier", "ncp.nds_es", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
+
+ 	{ &hf_es_type,
+	{ "Entry Specifier Type", "ncp.nds_es_type", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL }},
+
+ 	{ &hf_rdn_string,
+	{ "RDN", "ncp.nds_rdn", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL }},
+
+ 	{ &hf_delim_string,
+	{ "Delimeter", "ncp.nds_delim", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL }},
+
+    { &hf_nds_dn_output_type,
+	{ "Output Entry Specifier Type", "ncp.nds_out_es_type", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
+
+    { &hf_nds_nested_output_type,
+	{ "Nested Output Entry Specifier Type", "ncp.nds_nested_out_es", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
+
+    { &hf_nds_output_delimiter,
+	{ "Output Delimiter", "ncp.nds_out_delimiter", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL }},
+
+    { &hf_nds_output_entry_specifier,
+	{ "Output Entry Specifier", "ncp.nds_out_es", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
+
+    { &hf_es_value,
+	{ "Entry Specifier Value", "ncp.nds_es_value", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
+
+    { &hf_es_rdn_count,
+	{ "RDN Count", "ncp.nds_es_rdn_count", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
+
+    { &hf_nds_replica_num,
+	{ "Replica Number", "ncp.nds_replica_num", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+    { &hf_es_seconds,
+	{ "Seconds", "ncp.nds_es_seconds", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+    { &hf_nds_event_num,
+	{ "Event Number", "ncp.nds_event_num", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+    { &hf_nds_compare_results,
+	{ "Compare Results", "ncp.nds_compare_results", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL }},
+
+    { &hf_nds_parent,
+	{ "Parent ID", "ncp.nds_parent", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
+
+    { &hf_nds_name_filter,
+	{ "Name Filter", "ncp.nds_name_filter", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL }},
+
+    { &hf_nds_class_filter,
+	{ "Class Filter", "ncp.nds_class_filter", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL }},
+
+    { &hf_nds_time_filter,
+	{ "Time Filter", "ncp.nds_time_filter", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+    { &hf_nds_partition_root_id,
+	{ "Partition Root ID", "ncp.nds_partition_root_id", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
+
+    { &hf_nds_replicas,
+	{ "Replicas", "ncp.nds_replicas", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
+
+    { &hf_nds_purge,
+	{ "Purge Time", "ncp.nds_purge", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+    { &hf_nds_local_partition,
+	{ "Local Partition ID", "ncp.nds_local_partition", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
+
+    { &hf_partition_busy,
+    { "Partition Busy", "ncp.nds_partition_busy", FT_BOOLEAN, 16, NULL, 0x0, "", HFILL }},
+
+    { &hf_nds_number_of_changes,
+	{ "Number of Attribute Changes", "ncp.nds_number_of_changes", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+    { &hf_sub_count,
+	{ "Subordinate Count", "ncp.sub_count", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+    { &hf_nds_revision,
+	{ "Revision Count", "ncp.nds_rev_count", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+    { &hf_nds_base_class,
+	{ "Base Class", "ncp.nds_base_class", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL }},
+
+    { &hf_nds_relative_dn,
+	{ "Relative Distinguished Name", "ncp.nds_relative_dn", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL }},
+
+    { &hf_nds_root_dn,
+	{ "Root Distinguished Name", "ncp.nds_root_dn", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL }},
+
+    { &hf_nds_parent_dn,
+	{ "Parent Distinguished Name", "ncp.nds_parent_dn", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL }},
+
+    { &hf_deref_base,
+    { "Dereference Base Class", "ncp.nds_deref_base", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL }},
+
+    { &hf_nds_base,
+    { "Base Class", "ncp.nds_base", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL }},
+
+    { &hf_nds_super,
+    { "Super Class", "ncp.nds_super", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL }},
+
+    { &hf_nds_entry_info,
+    { "Entry Information", "ncp.nds_entry_info", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+    { &hf_nds_privileges,
+    { "Privileges", "ncp.nds_privileges", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
+
+    { &hf_nds_vflags,
+    { "Value Flags", "ncp.nds_vflags", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
+
+    { &hf_nds_value_len,
+    { "Value Length", "ncp.nds_vlength", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+    { &hf_nds_cflags,
+    { "Class Flags", "ncp.nds_cflags", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
+
+    { &hf_nds_asn1,
+	{ "ASN.1 ID", "ncp.nds_asn1", FT_BYTES, BASE_HEX, NULL, 0x0, "", HFILL }},
+
+    { &hf_nds_acflags,
+    { "Attribute Constraint Flags", "ncp.nds_acflags", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
+
+    { &hf_nds_upper,
+    { "Upper Limit Value", "ncp.nds_upper", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+    { &hf_nds_lower,
+    { "Lower Limit Value", "ncp.nds_lower", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+    { &hf_nds_trustee_dn,
+	{ "Trustee Distinguished Name", "ncp.nds_trustee_dn", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL }},
+
+    { &hf_nds_attribute_dn,
+	{ "Attribute Name", "ncp.nds_attribute_dn", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL }},
+
+    { &hf_nds_acl_add,
+	{ "Access Control Lists to Add", "ncp.nds_acl_add", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+    { &hf_nds_acl_del,
+	{ "Access Control Lists to Delete", "ncp.nds_acl_del", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+    { &hf_nds_att_add,
+	{ "Attribute to Add", "ncp.nds_att_add", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+    { &hf_nds_att_del,
+	{ "Attribute to Delete", "ncp.nds_att_del", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+    { &hf_nds_keep,
+    { "Delete Original RDN", "ncp.nds_keep", FT_BOOLEAN, 32, NULL, 0x0, "", HFILL }},
+
+    { &hf_nds_new_rdn,
+	{ "New Relative Distinguished Name", "ncp.nds_new_rdn", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL }},
+
+    { &hf_nds_time_delay,
+	{ "Time Delay", "ncp.nds_time_delay", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+    { &hf_nds_root_name,
+	{ "Root Most Object Name", "ncp.nds_root_name", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL }},
+
+    { &hf_nds_new_part_id,
+	{ "New Partition Root ID", "ncp.nds_new_part_id", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
+
+    { &hf_nds_child_part_id,
+	{ "Child Partition Root ID", "ncp.nds_child_part_id", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
+
+    { &hf_nds_master_part_id,
+	{ "Master Partition Root ID", "ncp.nds_master_part_id", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
+
+    { &hf_nds_target_name,
+	{ "Target Server Name", "ncp.nds_target_dn", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL }},
+
+
+        { &hf_bit1pingflags1,
+        { "Supported Fields", "ncp.bit1pingflags1", FT_BOOLEAN, 16, NULL, 0x00000001, "", HFILL }},
+
+        { &hf_bit2pingflags1,
+        { "Depth", "ncp.bit2pingflags1", FT_BOOLEAN, 16, NULL, 0x00000002, "", HFILL }},
+
+        { &hf_bit3pingflags1,
+        { "Revision", "ncp.bit3pingflags1", FT_BOOLEAN, 16, NULL, 0x00000004, "", HFILL }},
+
+        { &hf_bit4pingflags1,
+        { "Flags", "ncp.bit4pingflags1", FT_BOOLEAN, 16, NULL, 0x00000008, "", HFILL }},
+
+        { &hf_bit5pingflags1,
+        { "Verification Flags", "ncp.bit5pingflags1", FT_BOOLEAN, 16, NULL, 0x00000010, "", HFILL }},
+
+        { &hf_bit6pingflags1,
+        { "Letter Version", "ncp.bit6pingflags1", FT_BOOLEAN, 16, NULL, 0x00000020, "", HFILL }},
+
+        { &hf_bit7pingflags1,
+        { "OS Version", "ncp.bit7pingflags1", FT_BOOLEAN, 16, NULL, 0x00000040, "", HFILL }},
+
+        { &hf_bit8pingflags1,
+        { "License Flags", "ncp.bit8pingflags1", FT_BOOLEAN, 16, NULL, 0x00000080, "", HFILL }},
+
+        { &hf_bit9pingflags1,
+        { "DS Time", "ncp.bit9pingflags1", FT_BOOLEAN, 16, NULL, 0x00000100, "", HFILL }},
+
+        { &hf_bit10pingflags1,
+        { "Not Defined", "ncp.bit10pingflags1", FT_BOOLEAN, 16, NULL, 0x00000200, "", HFILL }},
+
+        { &hf_bit11pingflags1,
+        { "Not Defined", "ncp.bit11pingflags1", FT_BOOLEAN, 16, NULL, 0x00000400, "", HFILL }},
+
+        { &hf_bit12pingflags1,
+        { "Not Defined", "ncp.bit12pingflags1", FT_BOOLEAN, 16, NULL, 0x00000800, "", HFILL }},
+
+        { &hf_bit13pingflags1,
+        { "Not Defined", "ncp.bit13pingflags1", FT_BOOLEAN, 16, NULL, 0x00001000, "", HFILL }},
+
+        { &hf_bit14pingflags1,
+        { "Not Defined", "ncp.bit14pingflags1", FT_BOOLEAN, 16, NULL, 0x00002000, "", HFILL }},
+
+        { &hf_bit15pingflags1,
+        { "Not Defined", "ncp.bit15pingflags1", FT_BOOLEAN, 16, NULL, 0x00004000, "", HFILL }},
+
+        { &hf_bit16pingflags1,
+        { "Not Defined", "ncp.bit16pingflags1", FT_BOOLEAN, 16, NULL, 0x00008000, "", HFILL }},
+
+        { &hf_bit1pingflags2,
+        { "Sap Name", "ncp.bit1pingflags2", FT_BOOLEAN, 16, NULL, 0x00000001, "", HFILL }},
+
+        { &hf_bit2pingflags2,
+        { "Tree Name", "ncp.bit2pingflags2", FT_BOOLEAN, 16, NULL, 0x00000002, "", HFILL }},
+
+        { &hf_bit3pingflags2,
+        { "OS Name", "ncp.bit3pingflags2", FT_BOOLEAN, 16, NULL, 0x00000004, "", HFILL }},
+
+        { &hf_bit4pingflags2,
+        { "Hardware Name", "ncp.bit4pingflags2", FT_BOOLEAN, 16, NULL, 0x00000008, "", HFILL }},
+
+        { &hf_bit5pingflags2,
+        { "Vendor Name", "ncp.bit5pingflags2", FT_BOOLEAN, 16, NULL, 0x00000010, "", HFILL }},
+
+        { &hf_bit6pingflags2,
+        { "Not Defined", "ncp.bit6pingflags2", FT_BOOLEAN, 16, NULL, 0x00000020, "", HFILL }},
+
+        { &hf_bit7pingflags2,
+        { "Not Defined", "ncp.bit7pingflags2", FT_BOOLEAN, 16, NULL, 0x00000040, "", HFILL }},
+
+        { &hf_bit8pingflags2,
+        { "Not Defined", "ncp.bit8pingflags2", FT_BOOLEAN, 16, NULL, 0x00000080, "", HFILL }},
+
+        { &hf_bit9pingflags2,
+        { "Not Defined", "ncp.bit9pingflags2", FT_BOOLEAN, 16, NULL, 0x00000100, "", HFILL }},
+
+        { &hf_bit10pingflags2,
+        { "Not Defined", "ncp.bit10pingflags2", FT_BOOLEAN, 16, NULL, 0x00000200, "", HFILL }},
+
+        { &hf_bit11pingflags2,
+        { "Not Defined", "ncp.bit11pingflags2", FT_BOOLEAN, 16, NULL, 0x00000400, "", HFILL }},
+
+        { &hf_bit12pingflags2,
+        { "Not Defined", "ncp.bit12pingflags2", FT_BOOLEAN, 16, NULL, 0x00000800, "", HFILL }},
+
+        { &hf_bit13pingflags2,
+        { "Not Defined", "ncp.bit13pingflags2", FT_BOOLEAN, 16, NULL, 0x00001000, "", HFILL }},
+
+        { &hf_bit14pingflags2,
+        { "Not Defined", "ncp.bit14pingflags2", FT_BOOLEAN, 16, NULL, 0x00002000, "", HFILL }},
+
+        { &hf_bit15pingflags2,
+        { "Not Defined", "ncp.bit15pingflags2", FT_BOOLEAN, 16, NULL, 0x00004000, "", HFILL }},
+
+        { &hf_bit16pingflags2,
+        { "Not Defined", "ncp.bit16pingflags2", FT_BOOLEAN, 16, NULL, 0x00008000, "", HFILL }},
+
+        { &hf_bit1pingpflags1,
+        { "Root Most Master Replica", "ncp.bit1pingpflags1", FT_BOOLEAN, 16, NULL, 0x00000001, "", HFILL }},
+
+        { &hf_bit2pingpflags1,
+        { "Time Synchronized", "ncp.bit2pingpflags1", FT_BOOLEAN, 16, NULL, 0x00000002, "", HFILL }},
+
+        { &hf_bit3pingpflags1,
+        { "Not Defined", "ncp.bit3pingpflags1", FT_BOOLEAN, 16, NULL, 0x00000004, "", HFILL }},
+
+        { &hf_bit4pingpflags1,
+        { "Not Defined", "ncp.bit4pingpflags1", FT_BOOLEAN, 16, NULL, 0x00000008, "", HFILL }},
+
+        { &hf_bit5pingpflags1,
+        { "Not Defined", "ncp.bit5pingpflags1", FT_BOOLEAN, 16, NULL, 0x00000010, "", HFILL }},
+
+        { &hf_bit6pingpflags1,
+        { "Not Defined", "ncp.bit6pingpflags1", FT_BOOLEAN, 16, NULL, 0x00000020, "", HFILL }},
+
+        { &hf_bit7pingpflags1,
+        { "Not Defined", "ncp.bit7pingpflags1", FT_BOOLEAN, 16, NULL, 0x00000040, "", HFILL }},
+
+        { &hf_bit8pingpflags1,
+        { "Not Defined", "ncp.bit8pingpflags1", FT_BOOLEAN, 16, NULL, 0x00000080, "", HFILL }},
+
+        { &hf_bit9pingpflags1,
+        { "Not Defined", "ncp.bit9pingpflags1", FT_BOOLEAN, 16, NULL, 0x00000100, "", HFILL }},
+
+        { &hf_bit10pingpflags1,
+        { "Not Defined", "ncp.bit10pingpflags1", FT_BOOLEAN, 16, NULL, 0x00000200, "", HFILL }},
+
+        { &hf_bit11pingpflags1,
+        { "Not Defined", "ncp.bit11pingpflags1", FT_BOOLEAN, 16, NULL, 0x00000400, "", HFILL }},
+
+        { &hf_bit12pingpflags1,
+        { "Not Defined", "ncp.bit12pingpflags1", FT_BOOLEAN, 16, NULL, 0x00000800, "", HFILL }},
+
+        { &hf_bit13pingpflags1,
+        { "Not Defined", "ncp.bit13pingpflags1", FT_BOOLEAN, 16, NULL, 0x00001000, "", HFILL }},
+
+        { &hf_bit14pingpflags1,
+        { "Not Defined", "ncp.bit14pingpflags1", FT_BOOLEAN, 16, NULL, 0x00002000, "", HFILL }},
+
+        { &hf_bit15pingpflags1,
+        { "Not Defined", "ncp.bit15pingpflags1", FT_BOOLEAN, 16, NULL, 0x00004000, "", HFILL }},
+
+        { &hf_bit16pingpflags1,
+        { "Not Defined", "ncp.bit16pingpflags1", FT_BOOLEAN, 16, NULL, 0x00008000, "", HFILL }},
+
+        { &hf_bit1pingvflags1,
+        { "Checksum", "ncp.bit1pingvflags1", FT_BOOLEAN, 16, NULL, 0x00000001, "", HFILL }},
+
+        { &hf_bit2pingvflags1,
+        { "CRC32", "ncp.bit2pingvflags1", FT_BOOLEAN, 16, NULL, 0x00000002, "", HFILL }},
+
+        { &hf_bit3pingvflags1,
+        { "Not Defined", "ncp.bit3pingvflags1", FT_BOOLEAN, 16, NULL, 0x00000004, "", HFILL }},
+
+        { &hf_bit4pingvflags1,
+        { "Not Defined", "ncp.bit4pingvflags1", FT_BOOLEAN, 16, NULL, 0x00000008, "", HFILL }},
+
+        { &hf_bit5pingvflags1,
+        { "Not Defined", "ncp.bit5pingvflags1", FT_BOOLEAN, 16, NULL, 0x00000010, "", HFILL }},
+
+        { &hf_bit6pingvflags1,
+        { "Not Defined", "ncp.bit6pingvflags1", FT_BOOLEAN, 16, NULL, 0x00000020, "", HFILL }},
+
+        { &hf_bit7pingvflags1,
+        { "Not Defined", "ncp.bit7pingvflags1", FT_BOOLEAN, 16, NULL, 0x00000040, "", HFILL }},
+
+        { &hf_bit8pingvflags1,
+        { "Not Defined", "ncp.bit8pingvflags1", FT_BOOLEAN, 16, NULL, 0x00000080, "", HFILL }},
+
+        { &hf_bit9pingvflags1,
+        { "Not Defined", "ncp.bit9pingvflags1", FT_BOOLEAN, 16, NULL, 0x00000100, "", HFILL }},
+
+        { &hf_bit10pingvflags1,
+        { "Not Defined", "ncp.bit10pingvflags1", FT_BOOLEAN, 16, NULL, 0x00000200, "", HFILL }},
+
+        { &hf_bit11pingvflags1,
+        { "Not Defined", "ncp.bit11pingvflags1", FT_BOOLEAN, 16, NULL, 0x00000400, "", HFILL }},
+
+        { &hf_bit12pingvflags1,
+        { "Not Defined", "ncp.bit12pingvflags1", FT_BOOLEAN, 16, NULL, 0x00000800, "", HFILL }},
+
+        { &hf_bit13pingvflags1,
+        { "Not Defined", "ncp.bit13pingvflags1", FT_BOOLEAN, 16, NULL, 0x00001000, "", HFILL }},
+
+        { &hf_bit14pingvflags1,
+        { "Not Defined", "ncp.bit14pingvflags1", FT_BOOLEAN, 16, NULL, 0x00002000, "", HFILL }},
+
+        { &hf_bit15pingvflags1,
+        { "Not Defined", "ncp.bit15pingvflags1", FT_BOOLEAN, 16, NULL, 0x00004000, "", HFILL }},
+
+        { &hf_bit16pingvflags1,
+        { "Not Defined", "ncp.bit16pingvflags1", FT_BOOLEAN, 16, NULL, 0x00008000, "", HFILL }},
+
+    { &hf_nds_letter_ver,
+	{ "Letter Version", "ncp.nds_letter_ver", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
+
+    { &hf_nds_os_ver,
+	{ "OS Version", "ncp.nds_os_ver", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
+
+    { &hf_nds_lic_flags,
+	{ "License Flags", "ncp.nds_lic_flags", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
+
+    { &hf_nds_ds_time,
+	{ "DS Time", "ncp.nds_ds_time", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
+
+    { &hf_nds_ping_version,
+	{ "Ping Version", "ncp.nds_ping_version", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+    { &hf_nds_search_scope,
+	{ "Search Scope", "ncp.nds_search_scope", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL }},
+
+    { &hf_nds_num_objects,
+	{ "Number of Objects to Search", "ncp.nds_num_objects", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
+
+
+        { &hf_bit1siflags,
+        { "Names", "ncp.bit1siflags", FT_BOOLEAN, 16, NULL, 0x00000001, "", HFILL }},
+
+        { &hf_bit2siflags,
+        { "Names and Values", "ncp.bit2siflags", FT_BOOLEAN, 16, NULL, 0x00000002, "", HFILL }},
+
+        { &hf_bit3siflags,
+        { "Effective Privileges", "ncp.bit3siflags", FT_BOOLEAN, 16, NULL, 0x00000004, "", HFILL }},
+
+        { &hf_bit4siflags,
+        { "Value Info", "ncp.bit4siflags", FT_BOOLEAN, 16, NULL, 0x00000008, "", HFILL }},
+
+        { &hf_bit5siflags,
+        { "Abbreviated Value", "ncp.bit5siflags", FT_BOOLEAN, 16, NULL, 0x00000010, "", HFILL }},
+
+        { &hf_bit6siflags,
+        { "Not Defined", "ncp.bit6siflags", FT_BOOLEAN, 16, NULL, 0x00000020, "", HFILL }},
+
+        { &hf_bit7siflags,
+        { "Not Defined", "ncp.bit7siflags", FT_BOOLEAN, 16, NULL, 0x00000040, "", HFILL }},
+
+        { &hf_bit8siflags,
+        { "Not Defined", "ncp.bit8siflags", FT_BOOLEAN, 16, NULL, 0x00000080, "", HFILL }},
+
+        { &hf_bit9siflags,
+        { "Expanded Class", "ncp.bit9siflags", FT_BOOLEAN, 16, NULL, 0x00000100, "", HFILL }},
+
+        { &hf_bit10siflags,
+        { "Not Defined", "ncp.bit10siflags", FT_BOOLEAN, 16, NULL, 0x00000200, "", HFILL }},
+
+        { &hf_bit11siflags,
+        { "Not Defined", "ncp.bit11siflags", FT_BOOLEAN, 16, NULL, 0x00000400, "", HFILL }},
+
+        { &hf_bit12siflags,
+        { "Not Defined", "ncp.bit12siflags", FT_BOOLEAN, 16, NULL, 0x00000800, "", HFILL }},
+
+        { &hf_bit13siflags,
+        { "Not Defined", "ncp.bit13siflags", FT_BOOLEAN, 16, NULL, 0x00001000, "", HFILL }},
+
+        { &hf_bit14siflags,
+        { "Not Defined", "ncp.bit14siflags", FT_BOOLEAN, 16, NULL, 0x00002000, "", HFILL }},
+
+        { &hf_bit15siflags,
+        { "Not Defined", "ncp.bit15siflags", FT_BOOLEAN, 16, NULL, 0x00004000, "", HFILL }},
+
+        { &hf_bit16siflags,
+        { "Not Defined", "ncp.bit16siflags", FT_BOOLEAN, 16, NULL, 0x00008000, "", HFILL }},
+
+        { &hf_nds_segment_overlap,
+          { "Segment overlap",	"nds.segment.overlap", FT_BOOLEAN, BASE_NONE,
+    		NULL, 0x0, "Segment overlaps with other segments", HFILL }},
+    
+        { &hf_nds_segment_overlap_conflict,
+          { "Conflicting data in segment overlap", "nds.segment.overlap.conflict",
+    	FT_BOOLEAN, BASE_NONE,
+    		NULL, 0x0, "Overlapping segments contained conflicting data", HFILL }},
+    
+        { &hf_nds_segment_multiple_tails,
+          { "Multiple tail segments found", "nds.segment.multipletails",
+    	FT_BOOLEAN, BASE_NONE,
+    		NULL, 0x0, "Several tails were found when desegmenting the packet", HFILL }},
+    
+        { &hf_nds_segment_too_long_segment,
+          { "Segment too long",	"nds.segment.toolongsegment", FT_BOOLEAN, BASE_NONE,
+    		NULL, 0x0, "Segment contained data past end of packet", HFILL }},
+    
+        { &hf_nds_segment_error,
+          {"Desegmentation error",	"nds.segment.error", FT_FRAMENUM, BASE_NONE,
+    		NULL, 0x0, "Desegmentation error due to illegal segments", HFILL }},
+    
+        { &hf_nds_segment,
+          { "NDS Fragment",		"nds.fragment", FT_FRAMENUM, BASE_NONE,
+    		NULL, 0x0, "NDPS Fragment", HFILL }},
+    
+        { &hf_nds_segments,
+          { "NDS Fragments",	"nds.fragments", FT_NONE, BASE_NONE,
+    		NULL, 0x0, "NDPS Fragments", HFILL }},
+
+
+
+ 
+	{ &hf_ncp_64_bit_flag,
+	{ "64 Bit Support", "ncp.64_bit_flag", FT_UINT8, BASE_HEX, VALS(ncp_64_bit_flag_vals), 0x0, "", HFILL }},
+
+	{ &hf_ncp_Service_type,
+	{ "Service Type", "ncp.Service_type", FT_UINT16, BASE_HEX, VALS(ncp_Service_type_vals), 0x0, "", HFILL }},
+
+	{ &hf_ncp_abort_q_flag,
+	{ "Abort Queue Flag", "ncp.abort_q_flag", FT_UINT8, BASE_HEX, VALS(ncp_abort_q_flag_vals), 0x0, "", HFILL }},
+
+	{ &hf_ncp_abs_min_time_since_file_delete,
+	{ "Absolute Minimum Time Since File Delete", "ncp.abs_min_time_since_file_delete", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_acc_mode_comp,
+	{ "Compatibility Mode", "ncp.acc_mode_comp", FT_BOOLEAN, 8, NULL, 0x10, "", HFILL }},
+
+	{ &hf_ncp_acc_mode_deny_read,
+	{ "Deny Read Access", "ncp.acc_mode_deny_read", FT_BOOLEAN, 8, NULL, 0x4, "", HFILL }},
+
+	{ &hf_ncp_acc_mode_deny_write,
+	{ "Deny Write Access", "ncp.acc_mode_deny_write", FT_BOOLEAN, 8, NULL, 0x8, "", HFILL }},
+
+	{ &hf_ncp_acc_mode_read,
+	{ "Read Access", "ncp.acc_mode_read", FT_BOOLEAN, 8, NULL, 0x1, "", HFILL }},
+
+	{ &hf_ncp_acc_mode_write,
+	{ "Write Access", "ncp.acc_mode_write", FT_BOOLEAN, 8, NULL, 0x2, "", HFILL }},
+
+	{ &hf_ncp_acc_priv_create,
+	{ "Create Privileges (files only)", "ncp.acc_priv_create", FT_BOOLEAN, 8, NULL, 0x8, "", HFILL }},
+
+	{ &hf_ncp_acc_priv_delete,
+	{ "Delete Privileges (files only)", "ncp.acc_priv_delete", FT_BOOLEAN, 8, NULL, 0x10, "", HFILL }},
+
+	{ &hf_ncp_acc_priv_modify,
+	{ "Modify File Status Flags Privileges (files and directories)", "ncp.acc_priv_modify", FT_BOOLEAN, 8, NULL, 0x80, "", HFILL }},
+
+	{ &hf_ncp_acc_priv_open,
+	{ "Open Privileges (files only)", "ncp.acc_priv_open", FT_BOOLEAN, 8, NULL, 0x4, "", HFILL }},
+
+	{ &hf_ncp_acc_priv_parent,
+	{ "Parental Privileges (directories only for creating, deleting, and renaming)", "ncp.acc_priv_parent", FT_BOOLEAN, 8, NULL, 0x20, "", HFILL }},
+
+	{ &hf_ncp_acc_priv_read,
+	{ "Read Privileges (files only)", "ncp.acc_priv_read", FT_BOOLEAN, 8, NULL, 0x1, "", HFILL }},
+
+	{ &hf_ncp_acc_priv_search,
+	{ "Search Privileges (directories only)", "ncp.acc_priv_search", FT_BOOLEAN, 8, NULL, 0x40, "", HFILL }},
+
+	{ &hf_ncp_acc_priv_write,
+	{ "Write Privileges (files only)", "ncp.acc_priv_write", FT_BOOLEAN, 8, NULL, 0x2, "", HFILL }},
+
+	{ &hf_ncp_acc_rights1_create,
+	{ "Create Rights", "ncp.acc_rights1_create", FT_BOOLEAN, 16, NULL, 0x8, "", HFILL }},
+
+	{ &hf_ncp_acc_rights1_delete,
+	{ "Delete Rights", "ncp.acc_rights1_delete", FT_BOOLEAN, 16, NULL, 0x10, "", HFILL }},
+
+	{ &hf_ncp_acc_rights1_modify,
+	{ "Modify Rights", "ncp.acc_rights1_modify", FT_BOOLEAN, 16, NULL, 0x80, "", HFILL }},
+
+	{ &hf_ncp_acc_rights1_open,
+	{ "Open Rights", "ncp.acc_rights1_open", FT_BOOLEAN, 16, NULL, 0x4, "", HFILL }},
+
+	{ &hf_ncp_acc_rights1_parent,
+	{ "Parental Rights", "ncp.acc_rights1_parent", FT_BOOLEAN, 16, NULL, 0x20, "", HFILL }},
+
+	{ &hf_ncp_acc_rights1_read,
+	{ "Read Rights", "ncp.acc_rights1_read", FT_BOOLEAN, 16, NULL, 0x1, "", HFILL }},
+
+	{ &hf_ncp_acc_rights1_search,
+	{ "Search Rights", "ncp.acc_rights1_search", FT_BOOLEAN, 16, NULL, 0x40, "", HFILL }},
+
+	{ &hf_ncp_acc_rights1_supervisor,
+	{ "Supervisor Access Rights", "ncp.acc_rights1_supervisor", FT_BOOLEAN, 16, NULL, 0x100, "", HFILL }},
+
+	{ &hf_ncp_acc_rights1_write,
+	{ "Write Rights", "ncp.acc_rights1_write", FT_BOOLEAN, 16, NULL, 0x2, "", HFILL }},
+
+	{ &hf_ncp_acc_rights_create,
+	{ "Create Rights", "ncp.acc_rights_create", FT_BOOLEAN, 8, NULL, 0x8, "", HFILL }},
+
+	{ &hf_ncp_acc_rights_delete,
+	{ "Delete Rights", "ncp.acc_rights_delete", FT_BOOLEAN, 8, NULL, 0x10, "", HFILL }},
+
+	{ &hf_ncp_acc_rights_modify,
+	{ "Modify Rights", "ncp.acc_rights_modify", FT_BOOLEAN, 8, NULL, 0x80, "", HFILL }},
+
+	{ &hf_ncp_acc_rights_open,
+	{ "Open Rights", "ncp.acc_rights_open", FT_BOOLEAN, 8, NULL, 0x4, "", HFILL }},
+
+	{ &hf_ncp_acc_rights_parent,
+	{ "Parental Rights", "ncp.acc_rights_parent", FT_BOOLEAN, 8, NULL, 0x20, "", HFILL }},
+
+	{ &hf_ncp_acc_rights_read,
+	{ "Read Rights", "ncp.acc_rights_read", FT_BOOLEAN, 8, NULL, 0x1, "", HFILL }},
+
+	{ &hf_ncp_acc_rights_search,
+	{ "Search Rights", "ncp.acc_rights_search", FT_BOOLEAN, 8, NULL, 0x40, "", HFILL }},
+
+	{ &hf_ncp_acc_rights_write,
+	{ "Write Rights", "ncp.acc_rights_write", FT_BOOLEAN, 8, NULL, 0x2, "", HFILL }},
+
+	{ &hf_ncp_accel_cache_node_write,
+	{ "Accelerate Cache Node Write Count", "ncp.accel_cache_node_write", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_accepted_max_size,
+	{ "Accepted Max Size", "ncp.accepted_max_size", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_access_control,
+	{ "Access Control", "ncp.access_control", FT_UINT8, BASE_HEX, VALS(ncp_access_control_vals), 0x0, "", HFILL }},
+
+	{ &hf_ncp_access_date,
+	{ "Access Date", "ncp.access_date", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_access_mode,
+	{ "Access Mode", "ncp.access_mode", FT_UINT8, BASE_HEX, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_access_privileges,
+	{ "Access Privileges", "ncp.access_privileges", FT_UINT8, BASE_HEX, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_access_rights_mask,
+	{ "Access Rights", "ncp.access_rights_mask", FT_UINT8, BASE_HEX, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_access_rights_mask_word,
+	{ "Access Rights", "ncp.access_rights_mask_word", FT_UINT16, BASE_HEX, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_account_balance,
+	{ "Account Balance", "ncp.account_balance", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_acct_version,
+	{ "Acct Version", "ncp.acct_version", FT_UINT8, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_act_flag_create,
+	{ "Create", "ncp.act_flag_create", FT_BOOLEAN, 8, NULL, 0x10, "", HFILL }},
+
+	{ &hf_ncp_act_flag_open,
+	{ "Open", "ncp.act_flag_open", FT_BOOLEAN, 8, NULL, 0x1, "", HFILL }},
+
+	{ &hf_ncp_act_flag_replace,
+	{ "Replace", "ncp.act_flag_replace", FT_BOOLEAN, 8, NULL, 0x2, "", HFILL }},
+
+	{ &hf_ncp_action_flag,
+	{ "Action Flag", "ncp.action_flag", FT_UINT8, BASE_HEX, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_active_conn_bit_list,
+	{ "Active Connection List", "ncp.active_conn_bit_list", FT_STRING, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_active_indexed_files,
+	{ "Active Indexed Files", "ncp.active_indexed_files", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_actual_max_bindery_objects,
+	{ "Actual Max Bindery Objects", "ncp.actual_max_bindery_objects", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_actual_max_indexed_files,
+	{ "Actual Max Indexed Files", "ncp.actual_max_indexed_files", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_actual_max_open_files,
+	{ "Actual Max Open Files", "ncp.actual_max_open_files", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_actual_max_sim_trans,
+	{ "Actual Max Simultaneous Transactions", "ncp.actual_max_sim_trans", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_actual_max_used_directory_entries,
+	{ "Actual Max Used Directory Entries", "ncp.actual_max_used_directory_entries", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_actual_max_used_routing_buffers,
+	{ "Actual Max Used Routing Buffers", "ncp.actual_max_used_routing_buffers", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_actual_response_count,
+	{ "Actual Response Count", "ncp.actual_response_count", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_add_nm_spc_and_vol,
+	{ "Add Name Space and Volume", "ncp.add_nm_spc_and_vol", FT_STRINGZ, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_address,
+	{ "Address", "ncp.address", FT_UINT_BYTES, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_aes_event_count,
+	{ "AES Event Count", "ncp.aes_event_count", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_afp_entry_id,
+	{ "AFP Entry ID", "ncp.afp_entry_id", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_alloc_avail_byte,
+	{ "Bytes Available for Allocation", "ncp.alloc_avail_byte", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_alloc_blck,
+	{ "Allocate Block Count", "ncp.alloc_blck", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_alloc_blck_already_wait,
+	{ "Allocate Block Already Waiting", "ncp.alloc_blck_already_wait", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_alloc_blck_frm_avail,
+	{ "Allocate Block From Available Count", "ncp.alloc_blck_frm_avail", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_alloc_blck_frm_lru,
+	{ "Allocate Block From LRU Count", "ncp.alloc_blck_frm_lru", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_alloc_blck_i_had_to_wait,
+	{ "Allocate Block I Had To Wait Count", "ncp.alloc_blck_i_had_to_wait", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_alloc_blck_i_had_to_wait_for,
+	{ "Allocate Block I Had To Wait For Someone Count", "ncp.alloc_blck_i_had_to_wait_for", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_alloc_free_count,
+	{ "Reclaimable Free Bytes", "ncp.alloc_free_count", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_alloc_waiting,
+	{ "Allocate Waiting Count", "ncp.alloc_waiting", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_allocate_mode,
+	{ "Allocate Mode", "ncp.allocate_mode", FT_UINT16, BASE_HEX, VALS(ncp_allocate_mode_vals), 0x0, "", HFILL }},
+
+	{ &hf_ncp_allocation_block_size,
+	{ "Allocation Block Size", "ncp.allocation_block_size", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_already_doing_realloc,
+	{ "Already Doing Re-Allocate Count", "ncp.already_doing_realloc", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_application_number,
+	{ "Application Number", "ncp.application_number", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_archived_date,
+	{ "Archived Date", "ncp.archived_date", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_archived_time,
+	{ "Archived Time", "ncp.archived_time", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_archiver_id,
+	{ "Archiver ID", "ncp.archiver_id", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_associated_name_space,
+	{ "Associated Name Space", "ncp.associated_name_space", FT_UINT8, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_async_internl_dsk_get,
+	{ "Async Internal Disk Get Count", "ncp.async_internl_dsk_get", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_async_internl_dsk_get_need_to_alloc,
+	{ "Async Internal Disk Get Need To Alloc", "ncp.async_internl_dsk_get_need_to_alloc", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_async_internl_dsk_get_someone_beat,
+	{ "Async Internal Disk Get Someone Beat Me", "ncp.async_internl_dsk_get_someone_beat", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_async_read_error,
+	{ "Async Read Error Count", "ncp.async_read_error", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_att_def16_archive,
+	{ "Archive", "ncp.att_def16_archive", FT_BOOLEAN, 16, NULL, 0x20, "", HFILL }},
+
+	{ &hf_ncp_att_def16_execute,
+	{ "Execute", "ncp.att_def16_execute", FT_BOOLEAN, 16, NULL, 0x8, "", HFILL }},
+
+	{ &hf_ncp_att_def16_hidden,
+	{ "Hidden", "ncp.att_def16_hidden", FT_BOOLEAN, 16, NULL, 0x2, "", HFILL }},
+
+	{ &hf_ncp_att_def16_read_audit,
+	{ "Read Audit", "ncp.att_def16_read_audit", FT_BOOLEAN, 16, NULL, 0x4000, "", HFILL }},
+
+	{ &hf_ncp_att_def16_ro,
+	{ "Read Only", "ncp.att_def16_ro", FT_BOOLEAN, 16, NULL, 0x1, "", HFILL }},
+
+	{ &hf_ncp_att_def16_shareable,
+	{ "Shareable", "ncp.att_def16_shareable", FT_BOOLEAN, 16, NULL, 0x80, "", HFILL }},
+
+	{ &hf_ncp_att_def16_sub_only,
+	{ "Subdirectory", "ncp.att_def16_sub_only", FT_BOOLEAN, 16, NULL, 0x10, "", HFILL }},
+
+	{ &hf_ncp_att_def16_system,
+	{ "System", "ncp.att_def16_system", FT_BOOLEAN, 16, NULL, 0x4, "", HFILL }},
+
+	{ &hf_ncp_att_def16_transaction,
+	{ "Transactional", "ncp.att_def16_transaction", FT_BOOLEAN, 16, NULL, 0x1000, "", HFILL }},
+
+	{ &hf_ncp_att_def16_write_audit,
+	{ "Write Audit", "ncp.att_def16_write_audit", FT_BOOLEAN, 16, NULL, 0x8000, "", HFILL }},
+
+	{ &hf_ncp_att_def32_archive,
+	{ "Archive", "ncp.att_def32_archive", FT_BOOLEAN, 32, NULL, 0x20, "", HFILL }},
+
+	{ &hf_ncp_att_def32_execute,
+	{ "Execute", "ncp.att_def32_execute", FT_BOOLEAN, 32, NULL, 0x8, "", HFILL }},
+
+	{ &hf_ncp_att_def32_hidden,
+	{ "Hidden", "ncp.att_def32_hidden", FT_BOOLEAN, 32, NULL, 0x2, "", HFILL }},
+
+	{ &hf_ncp_att_def32_read_audit,
+	{ "Read Audit", "ncp.att_def32_read_audit", FT_BOOLEAN, 32, NULL, 0x4000, "", HFILL }},
+
+	{ &hf_ncp_att_def32_ro,
+	{ "Read Only", "ncp.att_def32_ro", FT_BOOLEAN, 32, NULL, 0x1, "", HFILL }},
+
+	{ &hf_ncp_att_def32_shareable,
+	{ "Shareable", "ncp.att_def32_shareable", FT_BOOLEAN, 32, NULL, 0x80, "", HFILL }},
+
+	{ &hf_ncp_att_def32_sub_only,
+	{ "Subdirectory", "ncp.att_def32_sub_only", FT_BOOLEAN, 32, NULL, 0x10, "", HFILL }},
+
+	{ &hf_ncp_att_def32_system,
+	{ "System", "ncp.att_def32_system", FT_BOOLEAN, 32, NULL, 0x4, "", HFILL }},
+
+	{ &hf_ncp_att_def32_transaction,
+	{ "Transactional", "ncp.att_def32_transaction", FT_BOOLEAN, 32, NULL, 0x1000, "", HFILL }},
+
+	{ &hf_ncp_att_def32_write_audit,
+	{ "Write Audit", "ncp.att_def32_write_audit", FT_BOOLEAN, 32, NULL, 0x8000, "", HFILL }},
+
+	{ &hf_ncp_att_def_archive,
+	{ "Archive", "ncp.att_def_archive", FT_BOOLEAN, 8, NULL, 0x20, "", HFILL }},
+
+	{ &hf_ncp_att_def_comp,
+	{ "Compressed", "ncp.att_def_comp", FT_BOOLEAN, 32, NULL, 0x4000000, "", HFILL }},
+
+	{ &hf_ncp_att_def_cpyinhibit,
+	{ "Copy Inhibit", "ncp.att_def_cpyinhibit", FT_BOOLEAN, 32, NULL, 0x80000, "", HFILL }},
+
+	{ &hf_ncp_att_def_delinhibit,
+	{ "Delete Inhibit", "ncp.att_def_delinhibit", FT_BOOLEAN, 32, NULL, 0x40000, "", HFILL }},
+
+	{ &hf_ncp_att_def_execute,
+	{ "Execute", "ncp.att_def_execute", FT_BOOLEAN, 8, NULL, 0x8, "", HFILL }},
+
+	{ &hf_ncp_att_def_hidden,
+	{ "Hidden", "ncp.att_def_hidden", FT_BOOLEAN, 8, NULL, 0x2, "", HFILL }},
+
+	{ &hf_ncp_att_def_im_comp,
+	{ "Immediate Compress", "ncp.att_def_im_comp", FT_BOOLEAN, 32, NULL, 0x2000000, "", HFILL }},
+
+	{ &hf_ncp_att_def_purge,
+	{ "Purge", "ncp.att_def_purge", FT_BOOLEAN, 32, NULL, 0x10000, "", HFILL }},
+
+	{ &hf_ncp_att_def_reninhibit,
+	{ "Rename Inhibit", "ncp.att_def_reninhibit", FT_BOOLEAN, 32, NULL, 0x20000, "", HFILL }},
+
+	{ &hf_ncp_att_def_ro,
+	{ "Read Only", "ncp.att_def_ro", FT_BOOLEAN, 8, NULL, 0x1, "", HFILL }},
+
+	{ &hf_ncp_att_def_shareable,
+	{ "Shareable", "ncp.att_def_shareable", FT_BOOLEAN, 8, NULL, 0x80, "", HFILL }},
+
+	{ &hf_ncp_att_def_sub_only,
+	{ "Subdirectory", "ncp.att_def_sub_only", FT_BOOLEAN, 8, NULL, 0x10, "", HFILL }},
+
+	{ &hf_ncp_att_def_system,
+	{ "System", "ncp.att_def_system", FT_BOOLEAN, 8, NULL, 0x4, "", HFILL }},
+
+	{ &hf_ncp_attach_during_processing,
+	{ "Attach During Processing", "ncp.attach_during_processing", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_attach_while_processing_attach,
+	{ "Attach While Processing Attach", "ncp.attach_while_processing_attach", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_attached_indexed_files,
+	{ "Attached Indexed Files", "ncp.attached_indexed_files", FT_UINT8, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_attr_def,
+	{ "Attributes", "ncp.attr_def", FT_UINT8, BASE_HEX, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_attr_def_16,
+	{ "Attributes", "ncp.attr_def_16", FT_UINT16, BASE_HEX, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_attr_def_32,
+	{ "Attributes", "ncp.attr_def_32", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_attribute_valid_flag,
+	{ "Attribute Valid Flag", "ncp.attribute_valid_flag", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_attributes,
+	{ "Attributes", "ncp.attributes", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_audit_enable_flag,
+	{ "Auditing Enabled Flag", "ncp.audit_enable_flag", FT_UINT16, BASE_HEX, VALS(ncp_audit_enable_flag_vals), 0x0, "", HFILL }},
+
+	{ &hf_ncp_audit_file_max_size,
+	{ "Audit File Maximum Size", "ncp.audit_file_max_size", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_audit_file_size,
+	{ "Audit File Size", "ncp.audit_file_size", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_audit_file_size_threshold,
+	{ "Audit File Size Threshold", "ncp.audit_file_size_threshold", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_audit_file_ver_date,
+	{ "Audit File Version Date", "ncp.audit_file_ver_date", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_audit_flag,
+	{ "Audit Flag", "ncp.audit_flag", FT_UINT8, BASE_HEX, VALS(ncp_audit_flag_vals), 0x0, "", HFILL }},
+
+	{ &hf_ncp_audit_handle,
+	{ "Audit File Handle", "ncp.audit_handle", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_audit_id,
+	{ "Audit ID", "ncp.audit_id", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_audit_id_type,
+	{ "Audit ID Type", "ncp.audit_id_type", FT_UINT16, BASE_HEX, VALS(ncp_audit_id_type_vals), 0x0, "", HFILL }},
+
+	{ &hf_ncp_audit_record_count,
+	{ "Audit Record Count", "ncp.audit_record_count", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_audit_ver_date,
+	{ "Auditing Version Date", "ncp.audit_ver_date", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_auditing_flags,
+	{ "Auditing Flags", "ncp.auditing_flags", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_avail_space,
+	{ "Available Space", "ncp.avail_space", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_available_blocks,
+	{ "Available Blocks", "ncp.available_blocks", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_available_clusters,
+	{ "Available Clusters", "ncp.available_clusters", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_available_dir_entries,
+	{ "Available Directory Entries", "ncp.available_dir_entries", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_available_directory_slots,
+	{ "Available Directory Slots", "ncp.available_directory_slots", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_available_indexed_files,
+	{ "Available Indexed Files", "ncp.available_indexed_files", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_background_aged_writes,
+	{ "Background Aged Writes", "ncp.background_aged_writes", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_background_dirty_writes,
+	{ "Background Dirty Writes", "ncp.background_dirty_writes", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_bad_logical_connection_count,
+	{ "Bad Logical Connection Count", "ncp.bad_logical_connection_count", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_banner_name,
+	{ "Banner Name", "ncp.banner_name", FT_STRING, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_base_directory_id,
+	{ "Base Directory ID", "ncp.base_directory_id", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_being_aborted,
+	{ "Being Aborted Count", "ncp.being_aborted", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_being_processed,
+	{ "Being Processed Count", "ncp.being_processed", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_big_forged_packet,
+	{ "Big Forged Packet Count", "ncp.big_forged_packet", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_big_invalid_packet,
+	{ "Big Invalid Packet Count", "ncp.big_invalid_packet", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_big_invalid_slot,
+	{ "Big Invalid Slot Count", "ncp.big_invalid_slot", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_big_read_being_torn_down,
+	{ "Big Read Being Torn Down Count", "ncp.big_read_being_torn_down", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_big_read_do_it_over,
+	{ "Big Read Do It Over Count", "ncp.big_read_do_it_over", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_big_read_invalid_mess,
+	{ "Big Read Invalid Message Number Count", "ncp.big_read_invalid_mess", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_big_read_no_data_avail,
+	{ "Big Read No Data Available Count", "ncp.big_read_no_data_avail", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_big_read_phy_read_err,
+	{ "Big Read Physical Read Error Count", "ncp.big_read_phy_read_err", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_big_read_trying_to_read,
+	{ "Big Read Trying To Read Too Much Count", "ncp.big_read_trying_to_read", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_big_repeat_the_file_read,
+	{ "Big Repeat the File Read Count", "ncp.big_repeat_the_file_read", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_big_return_abort_mess,
+	{ "Big Return Abort Message Count", "ncp.big_return_abort_mess", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_big_send_extra_cc_count,
+	{ "Big Send Extra CC Count", "ncp.big_send_extra_cc_count", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_big_still_transmitting,
+	{ "Big Still Transmitting Count", "ncp.big_still_transmitting", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_big_write_being_abort,
+	{ "Big Write Being Aborted Count", "ncp.big_write_being_abort", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_big_write_being_torn_down,
+	{ "Big Write Being Torn Down Count", "ncp.big_write_being_torn_down", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_big_write_inv_message_num,
+	{ "Big Write Invalid Message Number Count", "ncp.big_write_inv_message_num", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_bindery_context,
+	{ "Bindery Context", "ncp.bindery_context", FT_UINT_STRING, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_bit_map,
+	{ "Bit Map", "ncp.bit_map", FT_BYTES, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_block_number,
+	{ "Block Number", "ncp.block_number", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_block_size,
+	{ "Block Size", "ncp.block_size", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_block_size_in_sectors,
+	{ "Block Size in Sectors", "ncp.block_size_in_sectors", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_board_installed,
+	{ "Board Installed", "ncp.board_installed", FT_UINT8, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_board_number,
+	{ "Board Number", "ncp.board_number", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_board_numbers,
+	{ "Board Numbers", "ncp.board_numbers", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_buffer_size,
+	{ "Buffer Size", "ncp.buffer_size", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_bumped_out_of_order,
+	{ "Bumped Out Of Order Write Count", "ncp.bumped_out_of_order", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_bus_string,
+	{ "Bus String", "ncp.bus_string", FT_STRINGZ, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_bus_type,
+	{ "Bus Type", "ncp.bus_type", FT_UINT8, BASE_HEX, VALS(ncp_bus_type_vals), 0x0, "", HFILL }},
+
+	{ &hf_ncp_bytes_actually_transferred,
+	{ "Bytes Actually Transferred", "ncp.bytes_actually_transferred", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_bytes_read,
+	{ "Bytes Read", "ncp.bytes_read", FT_STRING, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_bytes_to_copy,
+	{ "Bytes to Copy", "ncp.bytes_to_copy", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_bytes_written,
+	{ "Bytes Written", "ncp.bytes_written", FT_STRING, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_cache_allocations,
+	{ "Cache Allocations", "ncp.cache_allocations", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_cache_block_scrapped,
+	{ "Cache Block Scrapped", "ncp.cache_block_scrapped", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_cache_buffer_count,
+	{ "Cache Buffer Count", "ncp.cache_buffer_count", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_cache_buffer_size,
+	{ "Cache Buffer Size", "ncp.cache_buffer_size", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_cache_byte_to_block,
+	{ "Cache Byte To Block Shift Factor", "ncp.cache_byte_to_block", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_cache_dirty_block_thresh,
+	{ "Cache Dirty Block Threshold", "ncp.cache_dirty_block_thresh", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_cache_dirty_wait_time,
+	{ "Cache Dirty Wait Time", "ncp.cache_dirty_wait_time", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_cache_full_write_requests,
+	{ "Cache Full Write Requests", "ncp.cache_full_write_requests", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_cache_get_requests,
+	{ "Cache Get Requests", "ncp.cache_get_requests", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_cache_hit_on_unavailable_block,
+	{ "Cache Hit On Unavailable Block", "ncp.cache_hit_on_unavailable_block", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_cache_hits,
+	{ "Cache Hits", "ncp.cache_hits", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_cache_max_concur_writes,
+	{ "Cache Maximum Concurrent Writes", "ncp.cache_max_concur_writes", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_cache_misses,
+	{ "Cache Misses", "ncp.cache_misses", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_cache_partial_write_requests,
+	{ "Cache Partial Write Requests", "ncp.cache_partial_write_requests", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_cache_read_requests,
+	{ "Cache Read Requests", "ncp.cache_read_requests", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_cache_used_while_check,
+	{ "Cache Used While Checking", "ncp.cache_used_while_check", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_cache_write_requests,
+	{ "Cache Write Requests", "ncp.cache_write_requests", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_category_name,
+	{ "Category Name", "ncp.category_name", FT_STRINGZ, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_cc_file_handle,
+	{ "File Handle", "ncp.cc_file_handle", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_cc_function,
+	{ "OP-Lock Flag", "ncp.cc_function", FT_UINT8, BASE_HEX, VALS(ncp_cc_function_vals), 0x0, "", HFILL }},
+
+	{ &hf_ncp_cfg_max_simultaneous_transactions,
+	{ "Configured Max Simultaneous Transactions", "ncp.cfg_max_simultaneous_transactions", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_change_bits,
+	{ "Change Bits", "ncp.change_bits", FT_UINT16, BASE_HEX, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_change_bits_acc_date,
+	{ "Access Date", "ncp.change_bits_acc_date", FT_BOOLEAN, 16, NULL, 0x800, "", HFILL }},
+
+	{ &hf_ncp_change_bits_adate,
+	{ "Archive Date", "ncp.change_bits_adate", FT_BOOLEAN, 16, NULL, 0x20, "", HFILL }},
+
+	{ &hf_ncp_change_bits_aid,
+	{ "Archiver ID", "ncp.change_bits_aid", FT_BOOLEAN, 16, NULL, 0x80, "", HFILL }},
+
+	{ &hf_ncp_change_bits_atime,
+	{ "Archive Time", "ncp.change_bits_atime", FT_BOOLEAN, 16, NULL, 0x40, "", HFILL }},
+
+	{ &hf_ncp_change_bits_cdate,
+	{ "Creation Date", "ncp.change_bits_cdate", FT_BOOLEAN, 16, NULL, 0x4, "", HFILL }},
+
+	{ &hf_ncp_change_bits_ctime,
+	{ "Creation Time", "ncp.change_bits_ctime", FT_BOOLEAN, 16, NULL, 0x8, "", HFILL }},
+
+	{ &hf_ncp_change_bits_fatt,
+	{ "File Attributes", "ncp.change_bits_fatt", FT_BOOLEAN, 16, NULL, 0x2, "", HFILL }},
+
+	{ &hf_ncp_change_bits_max_acc_mask,
+	{ "Maximum Access Mask", "ncp.change_bits_max_acc_mask", FT_BOOLEAN, 16, NULL, 0x1000, "", HFILL }},
+
+	{ &hf_ncp_change_bits_max_space,
+	{ "Maximum Space", "ncp.change_bits_max_space", FT_BOOLEAN, 16, NULL, 0x2000, "", HFILL }},
+
+	{ &hf_ncp_change_bits_modify,
+	{ "Modify Name", "ncp.change_bits_modify", FT_BOOLEAN, 16, NULL, 0x1, "", HFILL }},
+
+	{ &hf_ncp_change_bits_owner,
+	{ "Owner ID", "ncp.change_bits_owner", FT_BOOLEAN, 16, NULL, 0x10, "", HFILL }},
+
+	{ &hf_ncp_change_bits_udate,
+	{ "Update Date", "ncp.change_bits_udate", FT_BOOLEAN, 16, NULL, 0x100, "", HFILL }},
+
+	{ &hf_ncp_change_bits_uid,
+	{ "Update ID", "ncp.change_bits_uid", FT_BOOLEAN, 16, NULL, 0x400, "", HFILL }},
+
+	{ &hf_ncp_change_bits_utime,
+	{ "Update Time", "ncp.change_bits_utime", FT_BOOLEAN, 16, NULL, 0x200, "", HFILL }},
+
+	{ &hf_ncp_channel_state,
+	{ "Channel State", "ncp.channel_state", FT_UINT8, BASE_HEX, VALS(ncp_channel_state_vals), 0x0, "", HFILL }},
+
+	{ &hf_ncp_channel_synchronization_state,
+	{ "Channel Synchronization State", "ncp.channel_synchronization_state", FT_UINT8, BASE_HEX, VALS(ncp_channel_synchronization_state_vals), 0x0, "", HFILL }},
+
+	{ &hf_ncp_charge_amount,
+	{ "Charge Amount", "ncp.charge_amount", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_charge_information,
+	{ "Charge Information", "ncp.charge_information", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_checksum_error_count,
+	{ "Checksum Error Count", "ncp.checksum_error_count", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_checksuming,
+	{ "Checksumming", "ncp.checksuming", FT_BOOLEAN, 8, NULL, 0x1, "", HFILL }},
+
+	{ &hf_ncp_client_comp_flag,
+	{ "Completion Flag", "ncp.client_comp_flag", FT_UINT16, BASE_HEX, VALS(ncp_client_comp_flag_vals), 0x0, "", HFILL }},
+
+	{ &hf_ncp_client_id_number,
+	{ "Client ID Number", "ncp.client_id_number", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_client_list,
+	{ "Client List", "ncp.client_list", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_client_list_cnt,
+	{ "Client List Count", "ncp.client_list_cnt", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_client_list_len,
+	{ "Client List Length", "ncp.client_list_len", FT_UINT8, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_client_name,
+	{ "Client Name", "ncp.client_name", FT_UINT_STRING, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_client_record_area,
+	{ "Client Record Area", "ncp.client_record_area", FT_STRING, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_client_station,
+	{ "Client Station", "ncp.client_station", FT_UINT8, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_client_station_long,
+	{ "Client Station", "ncp.client_station_long", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_client_task_number,
+	{ "Client Task Number", "ncp.client_task_number", FT_UINT8, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_client_task_number_long,
+	{ "Client Task Number", "ncp.client_task_number_long", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_cluster_count,
+	{ "Cluster Count", "ncp.cluster_count", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_clusters_used_by_directories,
+	{ "Clusters Used by Directories", "ncp.clusters_used_by_directories", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_clusters_used_by_extended_dirs,
+	{ "Clusters Used by Extended Directories", "ncp.clusters_used_by_extended_dirs", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_clusters_used_by_fat,
+	{ "Clusters Used by FAT", "ncp.clusters_used_by_fat", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_cmd_flags_advanced,
+	{ "Advanced", "ncp.cmd_flags_advanced", FT_BOOLEAN, 8, NULL, 0x4, "", HFILL }},
+
+	{ &hf_ncp_cmd_flags_hidden,
+	{ "Hidden", "ncp.cmd_flags_hidden", FT_BOOLEAN, 8, NULL, 0x2, "", HFILL }},
+
+	{ &hf_ncp_cmd_flags_later,
+	{ "Restart Server Required to Take Effect", "ncp.cmd_flags_later", FT_BOOLEAN, 8, NULL, 0x8, "", HFILL }},
+
+	{ &hf_ncp_cmd_flags_secure,
+	{ "Console Secured", "ncp.cmd_flags_secure", FT_BOOLEAN, 8, NULL, 0x80, "", HFILL }},
+
+	{ &hf_ncp_cmd_flags_startup_only,
+	{ "Startup.ncf Only", "ncp.cmd_flags_startup_only", FT_BOOLEAN, 8, NULL, 0x1, "", HFILL }},
+
+	{ &hf_ncp_cmpbyteincount,
+	{ "Compress Byte In Count", "ncp.cmpbyteincount", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_cmpbyteoutcnt,
+	{ "Compress Byte Out Count", "ncp.cmpbyteoutcnt", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_cmphibyteincnt,
+	{ "Compress High Byte In Count", "ncp.cmphibyteincnt", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_cmphibyteoutcnt,
+	{ "Compress High Byte Out Count", "ncp.cmphibyteoutcnt", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_cmphitickcnt,
+	{ "Compress High Tick Count", "ncp.cmphitickcnt", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_cmphitickhigh,
+	{ "Compress High Tick", "ncp.cmphitickhigh", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_co_proc_string,
+	{ "CoProcessor String", "ncp.co_proc_string", FT_STRINGZ, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_co_processor_flag,
+	{ "CoProcessor Present Flag", "ncp.co_processor_flag", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_com_cnts,
+	{ "Communication Counters", "ncp.com_cnts", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_comment,
+	{ "Comment", "ncp.comment", FT_UINT_STRING, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_comment_type,
+	{ "Comment Type", "ncp.comment_type", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_complete_signatures,
+	{ "Complete Signatures", "ncp.complete_signatures", FT_BOOLEAN, 8, NULL, 0x4, "", HFILL }},
+
+	{ &hf_ncp_compress_volume,
+	{ "Volume Compression", "ncp.compress_volume", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_compressed_data_streams_count,
+	{ "Compressed Data Streams Count", "ncp.compressed_data_streams_count", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_compressed_limbo_data_streams_count,
+	{ "Compressed Limbo Data Streams Count", "ncp.compressed_limbo_data_streams_count", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_compressed_sectors,
+	{ "Compressed Sectors", "ncp.compressed_sectors", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_compression_ios_limit,
+	{ "Compression IOs Limit", "ncp.compression_ios_limit", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_compression_lower_limit,
+	{ "Compression Lower Limit", "ncp.compression_lower_limit", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_compression_stage,
+	{ "Compression Stage", "ncp.compression_stage", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_config_major_vn,
+	{ "Configuration Major Version Number", "ncp.config_major_vn", FT_UINT8, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_config_minor_vn,
+	{ "Configuration Minor Version Number", "ncp.config_minor_vn", FT_UINT8, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_configuration_description,
+	{ "Configuration Description", "ncp.configuration_description", FT_STRING, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_configuration_text,
+	{ "Configuration Text", "ncp.configuration_text", FT_STRING, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_configured_max_bindery_objects,
+	{ "Configured Max Bindery Objects", "ncp.configured_max_bindery_objects", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_configured_max_open_files,
+	{ "Configured Max Open Files", "ncp.configured_max_open_files", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_configured_max_routing_buffers,
+	{ "Configured Max Routing Buffers", "ncp.configured_max_routing_buffers", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_conn_being_aborted,
+	{ "Connection Being Aborted Count", "ncp.conn_being_aborted", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_conn_ctrl_bits,
+	{ "Connection Control", "ncp.conn_ctrl_bits", FT_UINT8, BASE_HEX, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_conn_list,
+	{ "Connection List", "ncp.conn_list", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_conn_list_count,
+	{ "Connection List Count", "ncp.conn_list_count", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_conn_list_len,
+	{ "Connection List Length", "ncp.conn_list_len", FT_UINT8, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_conn_number_byte,
+	{ "Connection Number", "ncp.conn_number_byte", FT_UINT8, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_conn_number_word,
+	{ "Connection Number", "ncp.conn_number_word", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_connected_lan,
+	{ "LAN Adapter", "ncp.connected_lan", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_connection_list,
+	{ "Connection List", "ncp.connection_list", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_connection_number,
+	{ "Connection Number", "ncp.connection_number", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_connection_number_list,
+	{ "Connection Number List", "ncp.connection_number_list", FT_UINT_STRING, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_connection_service_type,
+	{ "Connection Service Type", "ncp.connection_service_type", FT_UINT8, BASE_HEX, VALS(ncp_connection_service_type_vals), 0x0, "", HFILL }},
+
+	{ &hf_ncp_connection_type,
+	{ "Connection Type", "ncp.connection_type", FT_UINT8, BASE_HEX, VALS(ncp_connection_type_vals), 0x0, "", HFILL }},
+
+	{ &hf_ncp_connections_in_use,
+	{ "Connections In Use", "ncp.connections_in_use", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_connections_max_used,
+	{ "Connections Max Used", "ncp.connections_max_used", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_connections_supported_max,
+	{ "Connections Supported Max", "ncp.connections_supported_max", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_control_being_torn_down,
+	{ "Control Being Torn Down Count", "ncp.control_being_torn_down", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_control_flags,
+	{ "Control Flags", "ncp.control_flags", FT_UINT8, BASE_HEX, VALS(ncp_control_flags_vals), 0x0, "", HFILL }},
+
+	{ &hf_ncp_control_invalid_message_number,
+	{ "Control Invalid Message Number Count", "ncp.control_invalid_message_number", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_controller_drive_number,
+	{ "Controller Drive Number", "ncp.controller_drive_number", FT_UINT8, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_controller_number,
+	{ "Controller Number", "ncp.controller_number", FT_UINT8, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_controller_type,
+	{ "Controller Type", "ncp.controller_type", FT_UINT8, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_cookie_1,
+	{ "Cookie 1", "ncp.cookie_1", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_cookie_2,
+	{ "Cookie 2", "ncp.cookie_2", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_copies,
+	{ "Copies", "ncp.copies", FT_UINT8, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_copyright,
+	{ "Copyright", "ncp.copyright", FT_UINT_STRING, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_counter_mask,
+	{ "Counter Mask", "ncp.counter_mask", FT_UINT8, BASE_HEX, VALS(ncp_counter_mask_vals), 0x0, "", HFILL }},
+
+	{ &hf_ncp_cpu_number,
+	{ "CPU Number", "ncp.cpu_number", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_cpu_string,
+	{ "CPU String", "ncp.cpu_string", FT_STRINGZ, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_cpu_type,
+	{ "CPU Type", "ncp.cpu_type", FT_UINT8, BASE_HEX, VALS(ncp_cpu_type_vals), 0x0, "", HFILL }},
+
+	{ &hf_ncp_creation_date,
+	{ "Creation Date", "ncp.creation_date", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_creation_time,
+	{ "Creation Time", "ncp.creation_time", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_creator_id,
+	{ "Creator ID", "ncp.creator_id", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_creator_name_space_number,
+	{ "Creator Name Space Number", "ncp.creator_name_space_number", FT_UINT8, BASE_HEX, VALS(ncp_creator_name_space_number_vals), 0x0, "", HFILL }},
+
+	{ &hf_ncp_credit_limit,
+	{ "Credit Limit", "ncp.credit_limit", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_ctl_bad_ack_frag_list,
+	{ "Control Bad ACK Fragment List Count", "ncp.ctl_bad_ack_frag_list", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_ctl_no_data_read,
+	{ "Control No Data Read Count", "ncp.ctl_no_data_read", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_ctrl_flags,
+	{ "Control Flags", "ncp.ctrl_flags", FT_UINT16, BASE_HEX, VALS(ncp_ctrl_flags_vals), 0x0, "", HFILL }},
+
+	{ &hf_ncp_cur_blk_being_dcompress,
+	{ "Current Block Being Decompressed", "ncp.cur_blk_being_dcompress", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_cur_comp_blks,
+	{ "Current Compression Blocks", "ncp.cur_comp_blks", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_cur_initial_blks,
+	{ "Current Initial Blocks", "ncp.cur_initial_blks", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_cur_inter_blks,
+	{ "Current Intermediate Blocks", "ncp.cur_inter_blks", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_cur_num_of_r_tags,
+	{ "Current Number of Resource Tags", "ncp.cur_num_of_r_tags", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_curr_num_cache_buff,
+	{ "Current Number Of Cache Buffers", "ncp.curr_num_cache_buff", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_curr_ref_id,
+	{ "Current Reference ID", "ncp.curr_ref_id", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_current_changed_fats,
+	{ "Current Changed FAT Entries", "ncp.current_changed_fats", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_current_entries,
+	{ "Current Entries", "ncp.current_entries", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_current_form_type,
+	{ "Current Form Type", "ncp.current_form_type", FT_UINT8, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_current_lfs_counters,
+	{ "Current LFS Counters", "ncp.current_lfs_counters", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_current_open_files,
+	{ "Current Open Files", "ncp.current_open_files", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_current_server_time,
+	{ "Time Elapsed Since Server Was Brought Up", "ncp.current_server_time", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_current_servers,
+	{ "Current Servers", "ncp.current_servers", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_current_space,
+	{ "Current Space", "ncp.current_space", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_current_trans_count,
+	{ "Current Transaction Count", "ncp.current_trans_count", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_current_used_bindery_objects,
+	{ "Current Used Bindery Objects", "ncp.current_used_bindery_objects", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_currently_used_routing_buffers,
+	{ "Currently Used Routing Buffers", "ncp.currently_used_routing_buffers", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_custom_cnts,
+	{ "Custom Counters", "ncp.custom_cnts", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_custom_count,
+	{ "Custom Count", "ncp.custom_count", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_custom_counters,
+	{ "Custom Counters", "ncp.custom_counters", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_custom_string,
+	{ "Custom String", "ncp.custom_string", FT_UINT_STRING, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_custom_var_value,
+	{ "Custom Variable Value", "ncp.custom_var_value", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_data,
+	{ "Data", "ncp.data", FT_UINT_STRING, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_data_fork_first_fat,
+	{ "Data Fork First FAT Entry", "ncp.data_fork_first_fat", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_data_fork_len,
+	{ "Data Fork Len", "ncp.data_fork_len", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_data_fork_size,
+	{ "Data Fork Size", "ncp.data_fork_size", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_data_size,
+	{ "Data Size", "ncp.data_size", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_data_stream,
+	{ "Data Stream", "ncp.data_stream", FT_UINT8, BASE_HEX, VALS(ncp_data_stream_vals), 0x0, "", HFILL }},
+
+	{ &hf_ncp_data_stream_name,
+	{ "Data Stream Name", "ncp.data_stream_name", FT_UINT_STRING, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_data_stream_number,
+	{ "Data Stream Number", "ncp.data_stream_number", FT_UINT8, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_data_stream_size,
+	{ "Size", "ncp.data_stream_size", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_data_stream_space_alloc,
+	{ "Space Allocated for Data Stream", "ncp.data_stream_space_alloc", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_data_streams_count,
+	{ "Data Streams Count", "ncp.data_streams_count", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_dc_dirty_wait_time,
+	{ "DC Dirty Wait Time", "ncp.dc_dirty_wait_time", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_dc_double_read_flag,
+	{ "DC Double Read Flag", "ncp.dc_double_read_flag", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_dc_max_concurrent_writes,
+	{ "DC Maximum Concurrent Writes", "ncp.dc_max_concurrent_writes", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_dc_min_non_ref_time,
+	{ "DC Minimum Non-Referenced Time", "ncp.dc_min_non_ref_time", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_dc_wait_time_before_new_buff,
+	{ "DC Wait Time Before New Buffer", "ncp.dc_wait_time_before_new_buff", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_dead_mirror_table,
+	{ "Dead Mirror Table", "ncp.dead_mirror_table", FT_BYTES, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_dealloc_being_proc,
+	{ "De-Allocate Being Processed Count", "ncp.dealloc_being_proc", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_dealloc_forged_packet,
+	{ "De-Allocate Forged Packet Count", "ncp.dealloc_forged_packet", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_dealloc_invalid_slot,
+	{ "De-Allocate Invalid Slot Count", "ncp.dealloc_invalid_slot", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_dealloc_still_transmit,
+	{ "De-Allocate Still Transmitting Count", "ncp.dealloc_still_transmit", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_decpbyteincount,
+	{ "DeCompress Byte In Count", "ncp.decpbyteincount", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_decpbyteoutcnt,
+	{ "DeCompress Byte Out Count", "ncp.decpbyteoutcnt", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_decphibyteincnt,
+	{ "DeCompress High Byte In Count", "ncp.decphibyteincnt", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_decphibyteoutcnt,
+	{ "DeCompress High Byte Out Count", "ncp.decphibyteoutcnt", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_decphitickcnt,
+	{ "DeCompress High Tick Count", "ncp.decphitickcnt", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_decphitickhigh,
+	{ "DeCompress High Tick", "ncp.decphitickhigh", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_defined_data_streams,
+	{ "Defined Data Streams", "ncp.defined_data_streams", FT_UINT8, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_defined_name_spaces,
+	{ "Defined Name Spaces", "ncp.defined_name_spaces", FT_UINT8, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_delete_existing_file_flag,
+	{ "Delete Existing File Flag", "ncp.delete_existing_file_flag", FT_UINT8, BASE_HEX, VALS(ncp_delete_existing_file_flag_vals), 0x0, "", HFILL }},
+
+	{ &hf_ncp_delete_id,
+	{ "Deleted ID", "ncp.delete_id", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_deleted_date,
+	{ "Deleted Date", "ncp.deleted_date", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_deleted_file_time,
+	{ "Deleted File Time", "ncp.deleted_file_time", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_deleted_time,
+	{ "Deleted Time", "ncp.deleted_time", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_deny_read_count,
+	{ "Deny Read Count", "ncp.deny_read_count", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_deny_write_count,
+	{ "Deny Write Count", "ncp.deny_write_count", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_description_string,
+	{ "Description", "ncp.description_string", FT_STRING, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_desired_access_rights,
+	{ "Desired Access Rights", "ncp.desired_access_rights", FT_UINT16, BASE_HEX, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_desired_response_count,
+	{ "Desired Response Count", "ncp.desired_response_count", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_dest_component_count,
+	{ "Destination Path Component Count", "ncp.dest_component_count", FT_UINT8, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_dest_dir_handle,
+	{ "Destination Directory Handle", "ncp.dest_dir_handle", FT_UINT8, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_dest_name_space,
+	{ "Destination Name Space", "ncp.dest_name_space", FT_UINT8, BASE_HEX, VALS(ncp_dest_name_space_vals), 0x0, "", HFILL }},
+
+	{ &hf_ncp_dest_path,
+	{ "Destination Path", "ncp.dest_path", FT_UINT_STRING, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_detach_during_processing,
+	{ "Detach During Processing", "ncp.detach_during_processing", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_detach_for_bad_connection_number,
+	{ "Detach For Bad Connection Number", "ncp.detach_for_bad_connection_number", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_dir_base,
+	{ "Directory Base", "ncp.dir_base", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_dir_count,
+	{ "Directory Count", "ncp.dir_count", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_dir_handle,
+	{ "Directory Handle", "ncp.dir_handle", FT_UINT8, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_dir_handle_long,
+	{ "Directory Handle", "ncp.dir_handle_long", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_dir_handle_name,
+	{ "Handle Name", "ncp.dir_handle_name", FT_UINT8, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_directory_access_rights,
+	{ "Directory Access Rights", "ncp.directory_access_rights", FT_UINT8, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_directory_attributes,
+	{ "Directory Attributes", "ncp.directory_attributes", FT_UINT8, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_directory_entry_number,
+	{ "Directory Entry Number", "ncp.directory_entry_number", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_directory_entry_number_word,
+	{ "Directory Entry Number", "ncp.directory_entry_number_word", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_directory_id,
+	{ "Directory ID", "ncp.directory_id", FT_UINT16, BASE_HEX, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_directory_name,
+	{ "Directory Name", "ncp.directory_name", FT_STRING, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_directory_name_14,
+	{ "Directory Name", "ncp.directory_name_14", FT_STRING, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_directory_name_len,
+	{ "Directory Name Length", "ncp.directory_name_len", FT_UINT8, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_directory_number,
+	{ "Directory Number", "ncp.directory_number", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_directory_path,
+	{ "Directory Path", "ncp.directory_path", FT_STRING, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_directory_services_object_id,
+	{ "Directory Services Object ID", "ncp.directory_services_object_id", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_directory_stamp,
+	{ "Directory Stamp (0xD1D1)", "ncp.directory_stamp", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_dirty_cache_buffers,
+	{ "Dirty Cache Buffers", "ncp.dirty_cache_buffers", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_disable_brdcasts,
+	{ "Disable Broadcasts", "ncp.disable_brdcasts", FT_BOOLEAN, 8, NULL, 0x10, "", HFILL }},
+
+	{ &hf_ncp_disable_personal_brdcasts,
+	{ "Disable Personal Broadcasts", "ncp.disable_personal_brdcasts", FT_BOOLEAN, 8, NULL, 0x20, "", HFILL }},
+
+	{ &hf_ncp_disable_wdog_messages,
+	{ "Disable Watchdog Message", "ncp.disable_wdog_messages", FT_BOOLEAN, 8, NULL, 0x40, "", HFILL }},
+
+	{ &hf_ncp_disk_channel_number,
+	{ "Disk Channel Number", "ncp.disk_channel_number", FT_UINT8, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_disk_channel_table,
+	{ "Disk Channel Table", "ncp.disk_channel_table", FT_UINT8, BASE_HEX, VALS(ncp_disk_channel_table_vals), 0x0, "", HFILL }},
+
+	{ &hf_ncp_disk_space_limit,
+	{ "Disk Space Limit", "ncp.disk_space_limit", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_dm_flags,
+	{ "DM Flags", "ncp.dm_flags", FT_UINT8, BASE_HEX, VALS(ncp_dm_flags_vals), 0x0, "", HFILL }},
+
+	{ &hf_ncp_dm_info_entries,
+	{ "DM Info Entries", "ncp.dm_info_entries", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_dm_info_level,
+	{ "DM Info Level", "ncp.dm_info_level", FT_UINT8, BASE_HEX, VALS(ncp_dm_info_level_vals), 0x0, "", HFILL }},
+
+	{ &hf_ncp_dm_major_version,
+	{ "DM Major Version", "ncp.dm_major_version", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_dm_minor_version,
+	{ "DM Minor Version", "ncp.dm_minor_version", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_dm_present_flag,
+	{ "Data Migration Present Flag", "ncp.dm_present_flag", FT_UINT8, BASE_HEX, VALS(ncp_dm_present_flag_vals), 0x0, "", HFILL }},
+
+	{ &hf_ncp_dma_channels_used,
+	{ "DMA Channels Used", "ncp.dma_channels_used", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_dos_directory_base,
+	{ "DOS Directory Base", "ncp.dos_directory_base", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_dos_directory_entry,
+	{ "DOS Directory Entry", "ncp.dos_directory_entry", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_dos_directory_entry_number,
+	{ "DOS Directory Entry Number", "ncp.dos_directory_entry_number", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_dos_file_attributes,
+	{ "DOS File Attributes", "ncp.dos_file_attributes", FT_UINT8, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_dos_parent_directory_entry,
+	{ "DOS Parent Directory Entry", "ncp.dos_parent_directory_entry", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_dos_sequence,
+	{ "DOS Sequence", "ncp.dos_sequence", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_drive_cylinders,
+	{ "Drive Cylinders", "ncp.drive_cylinders", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_drive_definition_string,
+	{ "Drive Definition", "ncp.drive_definition_string", FT_STRING, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_drive_heads,
+	{ "Drive Heads", "ncp.drive_heads", FT_UINT8, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_drive_mapping_table,
+	{ "Drive Mapping Table", "ncp.drive_mapping_table", FT_BYTES, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_drive_mirror_table,
+	{ "Drive Mirror Table", "ncp.drive_mirror_table", FT_BYTES, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_drive_removable_flag,
+	{ "Drive Removable Flag", "ncp.drive_removable_flag", FT_UINT8, BASE_HEX, VALS(ncp_drive_removable_flag_vals), 0x0, "", HFILL }},
+
+	{ &hf_ncp_drive_size,
+	{ "Drive Size", "ncp.drive_size", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_driver_board_name,
+	{ "Driver Board Name", "ncp.driver_board_name", FT_STRINGZ, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_driver_log_name,
+	{ "Driver Logical Name", "ncp.driver_log_name", FT_STRINGZ, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_driver_short_name,
+	{ "Driver Short Name", "ncp.driver_short_name", FT_STRINGZ, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_dsired_acc_rights_compat,
+	{ "Compatibility", "ncp.dsired_acc_rights_compat", FT_BOOLEAN, 16, NULL, 0x10, "", HFILL }},
+
+	{ &hf_ncp_dsired_acc_rights_del_file_cls,
+	{ "Delete File Close", "ncp.dsired_acc_rights_del_file_cls", FT_BOOLEAN, 16, NULL, 0x400, "", HFILL }},
+
+	{ &hf_ncp_dsired_acc_rights_deny_r,
+	{ "Deny Read", "ncp.dsired_acc_rights_deny_r", FT_BOOLEAN, 16, NULL, 0x4, "", HFILL }},
+
+	{ &hf_ncp_dsired_acc_rights_deny_w,
+	{ "Deny Write", "ncp.dsired_acc_rights_deny_w", FT_BOOLEAN, 16, NULL, 0x8, "", HFILL }},
+
+	{ &hf_ncp_dsired_acc_rights_read_o,
+	{ "Read Only", "ncp.dsired_acc_rights_read_o", FT_BOOLEAN, 16, NULL, 0x1, "", HFILL }},
+
+	{ &hf_ncp_dsired_acc_rights_w_thru,
+	{ "File Write Through", "ncp.dsired_acc_rights_w_thru", FT_BOOLEAN, 16, NULL, 0x40, "", HFILL }},
+
+	{ &hf_ncp_dsired_acc_rights_write_o,
+	{ "Write Only", "ncp.dsired_acc_rights_write_o", FT_BOOLEAN, 16, NULL, 0x2, "", HFILL }},
+
+	{ &hf_ncp_dst_ea_flags,
+	{ "Destination EA Flags", "ncp.dst_ea_flags", FT_UINT16, BASE_HEX, VALS(ncp_dst_ea_flags_vals), 0x0, "", HFILL }},
+
+	{ &hf_ncp_dst_ns_indicator,
+	{ "Destination Name Space Indicator", "ncp.dst_ns_indicator", FT_UINT16, BASE_HEX, VALS(ncp_dst_ns_indicator_vals), 0x0, "", HFILL }},
+
+	{ &hf_ncp_dst_queue_id,
+	{ "Destination Queue ID", "ncp.dst_queue_id", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_dup_is_being_sent,
+	{ "Duplicate Is Being Sent Already Count", "ncp.dup_is_being_sent", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_duplicate_replies_sent,
+	{ "Duplicate Replies Sent", "ncp.duplicate_replies_sent", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_dyn_mem_struct_cur,
+	{ "Current Used Dynamic Space", "ncp.dyn_mem_struct_cur", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_dyn_mem_struct_max,
+	{ "Max Used Dynamic Space", "ncp.dyn_mem_struct_max", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_dyn_mem_struct_total,
+	{ "Total Dynamic Space", "ncp.dyn_mem_struct_total", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_ea_access_flag,
+	{ "EA Access Flag", "ncp.ea_access_flag", FT_UINT16, BASE_HEX, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_ea_bytes_written,
+	{ "Bytes Written", "ncp.ea_bytes_written", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_ea_count,
+	{ "Count", "ncp.ea_count", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_ea_data_size,
+	{ "Data Size", "ncp.ea_data_size", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_ea_data_size_duplicated,
+	{ "Data Size Duplicated", "ncp.ea_data_size_duplicated", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_ea_deep_freeze,
+	{ "Deep Freeze", "ncp.ea_deep_freeze", FT_BOOLEAN, 16, NULL, 0x2, "", HFILL }},
+
+	{ &hf_ncp_ea_delete_privileges,
+	{ "Delete Privileges", "ncp.ea_delete_privileges", FT_BOOLEAN, 16, NULL, 0x400, "", HFILL }},
+
+	{ &hf_ncp_ea_duplicate_count,
+	{ "Duplicate Count", "ncp.ea_duplicate_count", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_ea_error_codes,
+	{ "EA Error Codes", "ncp.ea_error_codes", FT_UINT16, BASE_HEX, VALS(ncp_ea_error_codes_vals), 0x0, "", HFILL }},
+
+	{ &hf_ncp_ea_flags,
+	{ "EA Flags", "ncp.ea_flags", FT_UINT16, BASE_HEX, VALS(ncp_ea_flags_vals), 0x0, "", HFILL }},
+
+	{ &hf_ncp_ea_handle,
+	{ "EA Handle", "ncp.ea_handle", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_ea_handle_or_netware_handle_or_volume,
+	{ "EAHandle or NetWare Handle or Volume (see EAFlags)", "ncp.ea_handle_or_netware_handle_or_volume", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_ea_header_being_enlarged,
+	{ "Header Being Enlarged", "ncp.ea_header_being_enlarged", FT_BOOLEAN, 16, NULL, 0x8, "", HFILL }},
+
+	{ &hf_ncp_ea_in_progress,
+	{ "In Progress", "ncp.ea_in_progress", FT_BOOLEAN, 16, NULL, 0x4, "", HFILL }},
+
+	{ &hf_ncp_ea_key,
+	{ "EA Key", "ncp.ea_key", FT_UINT_STRING, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_ea_key_size,
+	{ "Key Size", "ncp.ea_key_size", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_ea_key_size_duplicated,
+	{ "Key Size Duplicated", "ncp.ea_key_size_duplicated", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_ea_need_bit_flag,
+	{ "EA Need Bit Flag", "ncp.ea_need_bit_flag", FT_BOOLEAN, 16, NULL, 0x80, "", HFILL }},
+
+	{ &hf_ncp_ea_new_tally_used,
+	{ "New Tally Used", "ncp.ea_new_tally_used", FT_BOOLEAN, 16, NULL, 0x10, "", HFILL }},
+
+	{ &hf_ncp_ea_permanent_memory,
+	{ "Permanent Memory", "ncp.ea_permanent_memory", FT_BOOLEAN, 16, NULL, 0x1, "", HFILL }},
+
+	{ &hf_ncp_ea_read_privileges,
+	{ "Read Privileges", "ncp.ea_read_privileges", FT_BOOLEAN, 16, NULL, 0x200, "", HFILL }},
+
+	{ &hf_ncp_ea_score_card_present,
+	{ "Score Card Present", "ncp.ea_score_card_present", FT_BOOLEAN, 16, NULL, 0x40, "", HFILL }},
+
+	{ &hf_ncp_ea_system_ea_only,
+	{ "System EA Only", "ncp.ea_system_ea_only", FT_BOOLEAN, 16, NULL, 0x800, "", HFILL }},
+
+	{ &hf_ncp_ea_tally_need_update,
+	{ "Tally Need Update", "ncp.ea_tally_need_update", FT_BOOLEAN, 16, NULL, 0x20, "", HFILL }},
+
+	{ &hf_ncp_ea_value,
+	{ "EA Value", "ncp.ea_value", FT_UINT_STRING, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_ea_value_length,
+	{ "Value Length", "ncp.ea_value_length", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_ea_value_rep,
+	{ "EA Value", "ncp.ea_value_rep", FT_STRING, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_ea_write_in_progress,
+	{ "Write In Progress", "ncp.ea_write_in_progress", FT_BOOLEAN, 16, NULL, 0x1000, "", HFILL }},
+
+	{ &hf_ncp_ea_write_privileges,
+	{ "Write Privileges", "ncp.ea_write_privileges", FT_BOOLEAN, 16, NULL, 0x100, "", HFILL }},
+
+	{ &hf_ncp_ecb_cxl_fails,
+	{ "ECB Cancel Failures", "ncp.ecb_cxl_fails", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_echo_socket,
+	{ "Echo Socket", "ncp.echo_socket", FT_UINT16, BASE_HEX, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_effective_rights,
+	{ "Effective Rights", "ncp.effective_rights", FT_UINT8, BASE_HEX, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_effective_rights_create,
+	{ "Create Rights", "ncp.effective_rights_create", FT_BOOLEAN, 8, NULL, 0x8, "", HFILL }},
+
+	{ &hf_ncp_effective_rights_delete,
+	{ "Delete Rights", "ncp.effective_rights_delete", FT_BOOLEAN, 8, NULL, 0x10, "", HFILL }},
+
+	{ &hf_ncp_effective_rights_modify,
+	{ "Modify Rights", "ncp.effective_rights_modify", FT_BOOLEAN, 8, NULL, 0x80, "", HFILL }},
+
+	{ &hf_ncp_effective_rights_open,
+	{ "Open Rights", "ncp.effective_rights_open", FT_BOOLEAN, 8, NULL, 0x4, "", HFILL }},
+
+	{ &hf_ncp_effective_rights_parental,
+	{ "Parental Rights", "ncp.effective_rights_parental", FT_BOOLEAN, 8, NULL, 0x20, "", HFILL }},
+
+	{ &hf_ncp_effective_rights_read,
+	{ "Read Rights", "ncp.effective_rights_read", FT_BOOLEAN, 8, NULL, 0x1, "", HFILL }},
+
+	{ &hf_ncp_effective_rights_search,
+	{ "Search Rights", "ncp.effective_rights_search", FT_BOOLEAN, 8, NULL, 0x40, "", HFILL }},
+
+	{ &hf_ncp_effective_rights_write,
+	{ "Write Rights", "ncp.effective_rights_write", FT_BOOLEAN, 8, NULL, 0x2, "", HFILL }},
+
+	{ &hf_ncp_enable_brdcasts,
+	{ "Enable Broadcasts", "ncp.enable_brdcasts", FT_BOOLEAN, 8, NULL, 0x1, "", HFILL }},
+
+	{ &hf_ncp_enable_personal_brdcasts,
+	{ "Enable Personal Broadcasts", "ncp.enable_personal_brdcasts", FT_BOOLEAN, 8, NULL, 0x2, "", HFILL }},
+
+	{ &hf_ncp_enable_wdog_messages,
+	{ "Enable Watchdog Message", "ncp.enable_wdog_messages", FT_BOOLEAN, 8, NULL, 0x4, "", HFILL }},
+
+	{ &hf_ncp_encryption,
+	{ "Encryption", "ncp.encryption", FT_BOOLEAN, 8, NULL, 0x8, "", HFILL }},
+
+	{ &hf_ncp_enqueued_send_cnt,
+	{ "Enqueued Send Count", "ncp.enqueued_send_cnt", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_enum_info_account,
+	{ "Accounting Information", "ncp.enum_info_account", FT_BOOLEAN, 8, NULL, 0x40, "", HFILL }},
+
+	{ &hf_ncp_enum_info_auth,
+	{ "Authentication Information", "ncp.enum_info_auth", FT_BOOLEAN, 8, NULL, 0x80, "", HFILL }},
+
+	{ &hf_ncp_enum_info_lock,
+	{ "Lock Information", "ncp.enum_info_lock", FT_BOOLEAN, 8, NULL, 0x8, "", HFILL }},
+
+	{ &hf_ncp_enum_info_mask,
+	{ "Return Information Mask", "ncp.enum_info_mask", FT_UINT8, BASE_HEX, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_enum_info_name,
+	{ "Name Information", "ncp.enum_info_name", FT_BOOLEAN, 8, NULL, 0x4, "", HFILL }},
+
+	{ &hf_ncp_enum_info_print,
+	{ "Print Information", "ncp.enum_info_print", FT_BOOLEAN, 8, NULL, 0x10, "", HFILL }},
+
+	{ &hf_ncp_enum_info_stats,
+	{ "Statistical Information", "ncp.enum_info_stats", FT_BOOLEAN, 8, NULL, 0x20, "", HFILL }},
+
+	{ &hf_ncp_enum_info_time,
+	{ "Time Information", "ncp.enum_info_time", FT_BOOLEAN, 8, NULL, 0x2, "", HFILL }},
+
+	{ &hf_ncp_enum_info_transport,
+	{ "Transport Information", "ncp.enum_info_transport", FT_BOOLEAN, 8, NULL, 0x1, "", HFILL }},
+
+	{ &hf_ncp_err_doing_async_read,
+	{ "Error Doing Async Read Count", "ncp.err_doing_async_read", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_error_read_last_fat,
+	{ "Error Reading Last FAT Count", "ncp.error_read_last_fat", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_event_offset,
+	{ "Event Offset", "ncp.event_offset", FT_BYTES, BASE_HEX, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_event_time,
+	{ "Event Time", "ncp.event_time", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_expiration_time,
+	{ "Expiration Time", "ncp.expiration_time", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_ext_info,
+	{ "Extended Return Information", "ncp.ext_info", FT_UINT16, BASE_HEX, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_ext_info_64_bit_fs,
+	{ "64 Bit File Sizes", "ncp.ext_info_64_bit_fs", FT_BOOLEAN, 16, NULL, 0x400, "", HFILL }},
+
+	{ &hf_ncp_ext_info_access,
+	{ "Last Access", "ncp.ext_info_access", FT_BOOLEAN, 16, NULL, 0x100, "", HFILL }},
+
+	{ &hf_ncp_ext_info_dos_name,
+	{ "DOS Name", "ncp.ext_info_dos_name", FT_BOOLEAN, 16, NULL, 0x2, "", HFILL }},
+
+	{ &hf_ncp_ext_info_effective,
+	{ "Effective", "ncp.ext_info_effective", FT_BOOLEAN, 16, NULL, 0x40, "", HFILL }},
+
+	{ &hf_ncp_ext_info_flush,
+	{ "Flush", "ncp.ext_info_flush", FT_BOOLEAN, 16, NULL, 0x4, "", HFILL }},
+
+	{ &hf_ncp_ext_info_mac_date,
+	{ "MAC Date", "ncp.ext_info_mac_date", FT_BOOLEAN, 16, NULL, 0x80, "", HFILL }},
+
+	{ &hf_ncp_ext_info_mac_finder,
+	{ "MAC Finder", "ncp.ext_info_mac_finder", FT_BOOLEAN, 16, NULL, 0x10, "", HFILL }},
+
+	{ &hf_ncp_ext_info_newstyle,
+	{ "New Style", "ncp.ext_info_newstyle", FT_BOOLEAN, 16, NULL, 0x8000, "", HFILL }},
+
+	{ &hf_ncp_ext_info_parental,
+	{ "Parental", "ncp.ext_info_parental", FT_BOOLEAN, 16, NULL, 0x8, "", HFILL }},
+
+	{ &hf_ncp_ext_info_sibling,
+	{ "Sibling", "ncp.ext_info_sibling", FT_BOOLEAN, 16, NULL, 0x20, "", HFILL }},
+
+	{ &hf_ncp_ext_info_update,
+	{ "Update", "ncp.ext_info_update", FT_BOOLEAN, 16, NULL, 0x1, "", HFILL }},
+
+	{ &hf_ncp_ext_router_active_flag,
+	{ "External Router Active Flag", "ncp.ext_router_active_flag", FT_BOOLEAN, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_extended_attribute_extants_used,
+	{ "Extended Attribute Extants Used", "ncp.extended_attribute_extants_used", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_extended_attributes_defined,
+	{ "Extended Attributes Defined", "ncp.extended_attributes_defined", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_extra_extra_use_count_node_count,
+	{ "Errors allocating an additional use count node for TTS", "ncp.extra_extra_use_count_node_count", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_extra_use_count_node_count,
+	{ "Errors allocating a use count node for TTS", "ncp.extra_use_count_node_count", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_f_size_64bit,
+	{ "64bit File Size", "ncp.f_size_64bit", FT_BYTES, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_failed_alloc_req,
+	{ "Failed Alloc Request Count", "ncp.failed_alloc_req", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_fat_moved,
+	{ "Number of times the OS has move the location of FAT", "ncp.fat_moved", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_fat_scan_errors,
+	{ "FAT Scan Errors", "ncp.fat_scan_errors", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_fat_write_err,
+	{ "Number of write errors in both original and mirrored copies of FAT", "ncp.fat_write_err", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_fat_write_errors,
+	{ "FAT Write Errors", "ncp.fat_write_errors", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_fatal_fat_write_errors,
+	{ "Fatal FAT Write Errors", "ncp.fatal_fat_write_errors", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_fields_len_table,
+	{ "Fields Len Table", "ncp.fields_len_table", FT_BYTES, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_file_count,
+	{ "File Count", "ncp.file_count", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_file_date,
+	{ "File Date", "ncp.file_date", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_file_dir_win,
+	{ "File/Dir Window", "ncp.file_dir_win", FT_UINT16, BASE_HEX, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_file_execute_type,
+	{ "File Execute Type", "ncp.file_execute_type", FT_UINT8, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_file_ext_attr,
+	{ "File Extended Attributes", "ncp.file_ext_attr", FT_UINT8, BASE_HEX, VALS(ncp_file_ext_attr_vals), 0x0, "", HFILL }},
+
+	{ &hf_ncp_file_flags,
+	{ "File Flags", "ncp.file_flags", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_file_handle,
+	{ "File Handle", "ncp.file_handle", FT_BYTES, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_file_limbo,
+	{ "File Limbo", "ncp.file_limbo", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_file_list_count,
+	{ "File List Count", "ncp.file_list_count", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_file_lock_count,
+	{ "File Lock Count", "ncp.file_lock_count", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_file_mode,
+	{ "File Mode", "ncp.file_mode", FT_UINT8, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_file_name,
+	{ "Filename", "ncp.file_name", FT_UINT_STRING, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_file_name_12,
+	{ "Filename", "ncp.file_name_12", FT_STRING, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_file_name_14,
+	{ "Filename", "ncp.file_name_14", FT_STRING, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_file_name_len,
+	{ "Filename Length", "ncp.file_name_len", FT_UINT8, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_file_offset,
+	{ "File Offset", "ncp.file_offset", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_file_path,
+	{ "File Path", "ncp.file_path", FT_UINT_STRING, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_file_size,
+	{ "File Size", "ncp.file_size", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_file_system_id,
+	{ "File System ID", "ncp.file_system_id", FT_UINT8, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_file_time,
+	{ "File Time", "ncp.file_time", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_file_write_flags,
+	{ "File Write Flags", "ncp.file_write_flags", FT_UINT8, BASE_HEX, VALS(ncp_file_write_flags_vals), 0x0, "", HFILL }},
+
+	{ &hf_ncp_file_write_state,
+	{ "File Write State", "ncp.file_write_state", FT_UINT8, BASE_HEX, VALS(ncp_file_write_state_vals), 0x0, "", HFILL }},
+
+	{ &hf_ncp_filler,
+	{ "Filler", "ncp.filler", FT_UINT8, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_finder_attr,
+	{ "Finder Info Attributes", "ncp.finder_attr", FT_UINT16, BASE_HEX, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_finder_attr_bundle,
+	{ "Object Has Bundle", "ncp.finder_attr_bundle", FT_BOOLEAN, 16, NULL, 0x4000, "", HFILL }},
+
+	{ &hf_ncp_finder_attr_desktop,
+	{ "Object on Desktop", "ncp.finder_attr_desktop", FT_BOOLEAN, 16, NULL, 0x1, "", HFILL }},
+
+	{ &hf_ncp_finder_attr_invisible,
+	{ "Object is Invisible", "ncp.finder_attr_invisible", FT_BOOLEAN, 16, NULL, 0x2000, "", HFILL }},
+
+	{ &hf_ncp_first_packet_isnt_a_write,
+	{ "First Packet Isn't A Write Count", "ncp.first_packet_isnt_a_write", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_fixed_bit_mask,
+	{ "Fixed Bit Mask", "ncp.fixed_bit_mask", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_fixed_bits_defined,
+	{ "Fixed Bits Defined", "ncp.fixed_bits_defined", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_flag_bits,
+	{ "Flag Bits", "ncp.flag_bits", FT_UINT8, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_flags,
+	{ "Flags", "ncp.flags", FT_UINT8, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_flags_def,
+	{ "Flags", "ncp.flags_def", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_flush_time,
+	{ "Flush Time", "ncp.flush_time", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_folder_flag,
+	{ "Folder Flag", "ncp.folder_flag", FT_UINT8, BASE_HEX, VALS(ncp_folder_flag_vals), 0x0, "", HFILL }},
+
+	{ &hf_ncp_force_flag,
+	{ "Force Server Down Flag", "ncp.force_flag", FT_UINT8, BASE_HEX, VALS(ncp_force_flag_vals), 0x0, "", HFILL }},
+
+	{ &hf_ncp_forged_detached_requests,
+	{ "Forged Detached Requests", "ncp.forged_detached_requests", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_forged_packet,
+	{ "Forged Packet Count", "ncp.forged_packet", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_fork_count,
+	{ "Fork Count", "ncp.fork_count", FT_UINT8, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_fork_indicator,
+	{ "Fork Indicator", "ncp.fork_indicator", FT_UINT8, BASE_HEX, VALS(ncp_fork_indicator_vals), 0x0, "", HFILL }},
+
+	{ &hf_ncp_form_type,
+	{ "Form Type", "ncp.form_type", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_form_type_count,
+	{ "Form Types Count", "ncp.form_type_count", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_found_some_mem,
+	{ "Found Some Memory", "ncp.found_some_mem", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_fractional_time,
+	{ "Fractional Time in Seconds", "ncp.fractional_time", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_fragger_handle,
+	{ "Fragment Handle", "ncp.fragger_handle", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_fragment_write_occurred,
+	{ "Fragment Write Occurred", "ncp.fragment_write_occurred", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_free_blocks,
+	{ "Free Blocks", "ncp.free_blocks", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_free_directory_entries,
+	{ "Free Directory Entries", "ncp.free_directory_entries", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_freeable_limbo_sectors,
+	{ "Freeable Limbo Sectors", "ncp.freeable_limbo_sectors", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_freed_clusters,
+	{ "Freed Clusters", "ncp.freed_clusters", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_fs_engine_flag,
+	{ "FS Engine Flag", "ncp.fs_engine_flag", FT_BOOLEAN, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_full_name,
+	{ "Full Name", "ncp.full_name", FT_STRING, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_generic_block_size,
+	{ "Block Size", "ncp.generic_block_size", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_generic_capacity,
+	{ "Capacity", "ncp.generic_capacity", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_generic_cartridge_type,
+	{ "Cartridge Type", "ncp.generic_cartridge_type", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_generic_child_count,
+	{ "Child Count", "ncp.generic_child_count", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_generic_ctl_mask,
+	{ "Control Mask", "ncp.generic_ctl_mask", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_generic_func_mask,
+	{ "Function Mask", "ncp.generic_func_mask", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_generic_ident_time,
+	{ "Identification Time", "ncp.generic_ident_time", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_generic_ident_type,
+	{ "Identification Type", "ncp.generic_ident_type", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_generic_label,
+	{ "Label", "ncp.generic_label", FT_STRING, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_generic_media_slot,
+	{ "Media Slot", "ncp.generic_media_slot", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_generic_media_type,
+	{ "Media Type", "ncp.generic_media_type", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_generic_name,
+	{ "Name", "ncp.generic_name", FT_STRING, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_generic_object_uniq_id,
+	{ "Unique Object ID", "ncp.generic_object_uniq_id", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_generic_parent_count,
+	{ "Parent Count", "ncp.generic_parent_count", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_generic_pref_unit_size,
+	{ "Preferred Unit Size", "ncp.generic_pref_unit_size", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_generic_sib_count,
+	{ "Sibling Count", "ncp.generic_sib_count", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_generic_spec_info_sz,
+	{ "Specific Information Size", "ncp.generic_spec_info_sz", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_generic_status,
+	{ "Status", "ncp.generic_status", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_generic_type,
+	{ "Type", "ncp.generic_type", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_generic_unit_size,
+	{ "Unit Size", "ncp.generic_unit_size", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_get_ecb_buf,
+	{ "Get ECB Buffers", "ncp.get_ecb_buf", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_get_ecb_fails,
+	{ "Get ECB Failures", "ncp.get_ecb_fails", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_get_set_flag,
+	{ "Get Set Flag", "ncp.get_set_flag", FT_UINT8, BASE_HEX, VALS(ncp_get_set_flag_vals), 0x0, "", HFILL }},
+
+	{ &hf_ncp_guid,
+	{ "GUID", "ncp.guid", FT_BYTES, BASE_HEX, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_had_an_out_of_order,
+	{ "Had An Out Of Order Write Count", "ncp.had_an_out_of_order", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_handle_flag,
+	{ "Handle Flag", "ncp.handle_flag", FT_UINT8, BASE_HEX, VALS(ncp_handle_flag_vals), 0x0, "", HFILL }},
+
+	{ &hf_ncp_handle_info_level,
+	{ "Handle Info Level", "ncp.handle_info_level", FT_UINT8, BASE_HEX, VALS(ncp_handle_info_level_vals), 0x0, "", HFILL }},
+
+	{ &hf_ncp_hardware_rx_mismatch_count,
+	{ "Hardware Receive Mismatch Count", "ncp.hardware_rx_mismatch_count", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_held_bytes_read,
+	{ "Held Bytes Read", "ncp.held_bytes_read", FT_BYTES, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_held_bytes_write,
+	{ "Held Bytes Written", "ncp.held_bytes_write", FT_BYTES, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_held_conn_time,
+	{ "Held Connect Time in Minutes", "ncp.held_conn_time", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_hold_amount,
+	{ "Hold Amount", "ncp.hold_amount", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_hold_cancel_amount,
+	{ "Hold Cancel Amount", "ncp.hold_cancel_amount", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_hold_time,
+	{ "Hold Time", "ncp.hold_time", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_holder_id,
+	{ "Holder ID", "ncp.holder_id", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_hops_to_net,
+	{ "Hop Count", "ncp.hops_to_net", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_horiz_location,
+	{ "Horizontal Location", "ncp.horiz_location", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_host_address,
+	{ "Host Address", "ncp.host_address", FT_BYTES, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_hot_fix_blocks_available,
+	{ "Hot Fix Blocks Available", "ncp.hot_fix_blocks_available", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_hot_fix_disabled,
+	{ "Hot Fix Disabled", "ncp.hot_fix_disabled", FT_UINT8, BASE_HEX, VALS(ncp_hot_fix_disabled_vals), 0x0, "", HFILL }},
+
+	{ &hf_ncp_hot_fix_table_size,
+	{ "Hot Fix Table Size", "ncp.hot_fix_table_size", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_hot_fix_table_start,
+	{ "Hot Fix Table Start", "ncp.hot_fix_table_start", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_huge_bit_mask,
+	{ "Huge Bit Mask", "ncp.huge_bit_mask", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_huge_bits_defined,
+	{ "Huge Bits Defined", "ncp.huge_bits_defined", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_huge_data,
+	{ "Huge Data", "ncp.huge_data", FT_UINT_STRING, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_huge_data_used,
+	{ "Huge Data Used", "ncp.huge_data_used", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_huge_state_info,
+	{ "Huge State Info", "ncp.huge_state_info", FT_BYTES, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_i_ran_out_someone_else_did_it_0,
+	{ "I Ran Out Someone Else Did It Count 0", "ncp.i_ran_out_someone_else_did_it_0", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_i_ran_out_someone_else_did_it_1,
+	{ "I Ran Out Someone Else Did It Count 1", "ncp.i_ran_out_someone_else_did_it_1", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_i_ran_out_someone_else_did_it_2,
+	{ "I Ran Out Someone Else Did It Count 2", "ncp.i_ran_out_someone_else_did_it_2", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_id_get_no_read_no_wait,
+	{ "ID Get No Read No Wait Count", "ncp.id_get_no_read_no_wait", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_id_get_no_read_no_wait_alloc,
+	{ "ID Get No Read No Wait Allocate Count", "ncp.id_get_no_read_no_wait_alloc", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_id_get_no_read_no_wait_buffer,
+	{ "ID Get No Read No Wait No Buffer Count", "ncp.id_get_no_read_no_wait_buffer", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_id_get_no_read_no_wait_no_alloc,
+	{ "ID Get No Read No Wait No Alloc Count", "ncp.id_get_no_read_no_wait_no_alloc", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_id_get_no_read_no_wait_no_alloc_alloc,
+	{ "ID Get No Read No Wait No Alloc Allocate Count", "ncp.id_get_no_read_no_wait_no_alloc_alloc", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_id_get_no_read_no_wait_no_alloc_sema,
+	{ "ID Get No Read No Wait No Alloc Semaphored Count", "ncp.id_get_no_read_no_wait_no_alloc_sema", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_id_get_no_read_no_wait_sema,
+	{ "ID Get No Read No Wait Semaphored Count", "ncp.id_get_no_read_no_wait_sema", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_identification_number,
+	{ "Identification Number", "ncp.identification_number", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_ignored_rx_pkts,
+	{ "Ignored Receive Packets", "ncp.ignored_rx_pkts", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_in_use,
+	{ "Bytes in Use", "ncp.in_use", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_incoming_packet_discarded_no_dgroup,
+	{ "Incoming Packet Discarded No DGroup", "ncp.incoming_packet_discarded_no_dgroup", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_index_number,
+	{ "Index Number", "ncp.index_number", FT_UINT8, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_info_count,
+	{ "Info Count", "ncp.info_count", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_info_flags,
+	{ "Info Flags", "ncp.info_flags", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_info_flags_all_attr,
+	{ "All Attributes", "ncp.info_flags_all_attr", FT_BOOLEAN, 32, NULL, 0x80, "", HFILL }},
+
+	{ &hf_ncp_info_flags_all_dirbase_num,
+	{ "All Directory Base Numbers", "ncp.info_flags_all_dirbase_num", FT_BOOLEAN, 32, NULL, 0x100, "", HFILL }},
+
+	{ &hf_ncp_info_flags_dos_attr,
+	{ "DOS Attributes", "ncp.info_flags_dos_attr", FT_BOOLEAN, 32, NULL, 0x4, "", HFILL }},
+
+	{ &hf_ncp_info_flags_dos_time,
+	{ "DOS Time", "ncp.info_flags_dos_time", FT_BOOLEAN, 32, NULL, 0x1, "", HFILL }},
+
+	{ &hf_ncp_info_flags_ds_sizes,
+	{ "Data Stream Sizes", "ncp.info_flags_ds_sizes", FT_BOOLEAN, 32, NULL, 0x10, "", HFILL }},
+
+	{ &hf_ncp_info_flags_ea_present,
+	{ "EA Present Flag", "ncp.info_flags_ea_present", FT_BOOLEAN, 32, NULL, 0x40, "", HFILL }},
+
+	{ &hf_ncp_info_flags_effect_rights,
+	{ "Effective Rights", "ncp.info_flags_effect_rights", FT_BOOLEAN, 32, NULL, 0x4000, "", HFILL }},
+
+	{ &hf_ncp_info_flags_flags,
+	{ "Return Object Flags", "ncp.info_flags_flags", FT_BOOLEAN, 32, NULL, 0x20000000, "", HFILL }},
+
+	{ &hf_ncp_info_flags_flush_time,
+	{ "Flush Time", "ncp.info_flags_flush_time", FT_BOOLEAN, 32, NULL, 0x400, "", HFILL }},
+
+	{ &hf_ncp_info_flags_ids,
+	{ "ID's", "ncp.info_flags_ids", FT_BOOLEAN, 32, NULL, 0x8, "", HFILL }},
+
+	{ &hf_ncp_info_flags_mac_finder,
+	{ "Mac Finder Information", "ncp.info_flags_mac_finder", FT_BOOLEAN, 32, NULL, 0x1000, "", HFILL }},
+
+	{ &hf_ncp_info_flags_mac_time,
+	{ "Mac Time", "ncp.info_flags_mac_time", FT_BOOLEAN, 32, NULL, 0x8000, "", HFILL }},
+
+	{ &hf_ncp_info_flags_max_access_mask,
+	{ "Maximum Access Mask", "ncp.info_flags_max_access_mask", FT_BOOLEAN, 32, NULL, 0x200, "", HFILL }},
+
+	{ &hf_ncp_info_flags_name,
+	{ "Return Object Name", "ncp.info_flags_name", FT_BOOLEAN, 32, NULL, 0x80000000, "", HFILL }},
+
+	{ &hf_ncp_info_flags_ns_attr,
+	{ "Name Space Attributes", "ncp.info_flags_ns_attr", FT_BOOLEAN, 32, NULL, 0x20, "", HFILL }},
+
+	{ &hf_ncp_info_flags_prnt_base_id,
+	{ "Parent Base ID", "ncp.info_flags_prnt_base_id", FT_BOOLEAN, 32, NULL, 0x800, "", HFILL }},
+
+	{ &hf_ncp_info_flags_ref_count,
+	{ "Reference Count", "ncp.info_flags_ref_count", FT_BOOLEAN, 32, NULL, 0x2, "", HFILL }},
+
+	{ &hf_ncp_info_flags_security,
+	{ "Return Object Security", "ncp.info_flags_security", FT_BOOLEAN, 32, NULL, 0x10000000, "", HFILL }},
+
+	{ &hf_ncp_info_flags_sibling_cnt,
+	{ "Sibling Count", "ncp.info_flags_sibling_cnt", FT_BOOLEAN, 32, NULL, 0x2000, "", HFILL }},
+
+	{ &hf_ncp_info_flags_type,
+	{ "Return Object Type", "ncp.info_flags_type", FT_BOOLEAN, 32, NULL, 0x40000000, "", HFILL }},
+
+	{ &hf_ncp_info_level_num,
+	{ "Information Level Number", "ncp.info_level_num", FT_UINT8, BASE_HEX, VALS(ncp_info_level_num_vals), 0x0, "", HFILL }},
+
+	{ &hf_ncp_info_mask,
+	{ "Information Mask", "ncp.info_mask", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_info_mask_c_name_space,
+	{ "Creator Name Space & Name", "ncp.info_mask_c_name_space", FT_BOOLEAN, 32, NULL, 0x40000000, "", HFILL }},
+
+	{ &hf_ncp_info_mask_dosname,
+	{ "DOS Name", "ncp.info_mask_dosname", FT_BOOLEAN, 32, NULL, 0x20000000, "", HFILL }},
+
+	{ &hf_ncp_info_mask_name,
+	{ "Name", "ncp.info_mask_name", FT_BOOLEAN, 32, NULL, 0x80000000, "", HFILL }},
+
+	{ &hf_ncp_inh_revoke_create,
+	{ "Create Rights", "ncp.inh_revoke_create", FT_BOOLEAN, 16, NULL, 0x8, "", HFILL }},
+
+	{ &hf_ncp_inh_revoke_delete,
+	{ "Delete Rights", "ncp.inh_revoke_delete", FT_BOOLEAN, 16, NULL, 0x10, "", HFILL }},
+
+	{ &hf_ncp_inh_revoke_modify,
+	{ "Modify Rights", "ncp.inh_revoke_modify", FT_BOOLEAN, 16, NULL, 0x80, "", HFILL }},
+
+	{ &hf_ncp_inh_revoke_open,
+	{ "Open Rights", "ncp.inh_revoke_open", FT_BOOLEAN, 16, NULL, 0x4, "", HFILL }},
+
+	{ &hf_ncp_inh_revoke_parent,
+	{ "Change Access", "ncp.inh_revoke_parent", FT_BOOLEAN, 16, NULL, 0x20, "", HFILL }},
+
+	{ &hf_ncp_inh_revoke_read,
+	{ "Read Rights", "ncp.inh_revoke_read", FT_BOOLEAN, 16, NULL, 0x1, "", HFILL }},
+
+	{ &hf_ncp_inh_revoke_search,
+	{ "See Files Flag", "ncp.inh_revoke_search", FT_BOOLEAN, 16, NULL, 0x40, "", HFILL }},
+
+	{ &hf_ncp_inh_revoke_supervisor,
+	{ "Supervisor", "ncp.inh_revoke_supervisor", FT_BOOLEAN, 16, NULL, 0x100, "", HFILL }},
+
+	{ &hf_ncp_inh_revoke_write,
+	{ "Write Rights", "ncp.inh_revoke_write", FT_BOOLEAN, 16, NULL, 0x2, "", HFILL }},
+
+	{ &hf_ncp_inh_rights_create,
+	{ "Create Rights", "ncp.inh_rights_create", FT_BOOLEAN, 16, NULL, 0x8, "", HFILL }},
+
+	{ &hf_ncp_inh_rights_delete,
+	{ "Delete Rights", "ncp.inh_rights_delete", FT_BOOLEAN, 16, NULL, 0x10, "", HFILL }},
+
+	{ &hf_ncp_inh_rights_modify,
+	{ "Modify Rights", "ncp.inh_rights_modify", FT_BOOLEAN, 16, NULL, 0x80, "", HFILL }},
+
+	{ &hf_ncp_inh_rights_open,
+	{ "Open Rights", "ncp.inh_rights_open", FT_BOOLEAN, 16, NULL, 0x4, "", HFILL }},
+
+	{ &hf_ncp_inh_rights_parent,
+	{ "Change Access", "ncp.inh_rights_parent", FT_BOOLEAN, 16, NULL, 0x20, "", HFILL }},
+
+	{ &hf_ncp_inh_rights_read,
+	{ "Read Rights", "ncp.inh_rights_read", FT_BOOLEAN, 16, NULL, 0x1, "", HFILL }},
+
+	{ &hf_ncp_inh_rights_search,
+	{ "See Files Flag", "ncp.inh_rights_search", FT_BOOLEAN, 16, NULL, 0x40, "", HFILL }},
+
+	{ &hf_ncp_inh_rights_supervisor,
+	{ "Supervisor", "ncp.inh_rights_supervisor", FT_BOOLEAN, 16, NULL, 0x100, "", HFILL }},
+
+	{ &hf_ncp_inh_rights_write,
+	{ "Write Rights", "ncp.inh_rights_write", FT_BOOLEAN, 16, NULL, 0x2, "", HFILL }},
+
+	{ &hf_ncp_inheritance_revoke_mask,
+	{ "Revoke Rights Mask", "ncp.inheritance_revoke_mask", FT_UINT16, BASE_HEX, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_inherited_rights_mask,
+	{ "Inherited Rights Mask", "ncp.inherited_rights_mask", FT_UINT16, BASE_HEX, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_initial_semaphore_value,
+	{ "Initial Semaphore Value", "ncp.initial_semaphore_value", FT_UINT8, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_inspect_size,
+	{ "Inspect Size", "ncp.inspect_size", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_internet_bridge_version,
+	{ "Internet Bridge Version", "ncp.internet_bridge_version", FT_UINT8, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_internl_dsk_get,
+	{ "Internal Disk Get Count", "ncp.internl_dsk_get", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_internl_dsk_get_need_to_alloc,
+	{ "Internal Disk Get Need To Allocate Count", "ncp.internl_dsk_get_need_to_alloc", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_internl_dsk_get_no_read,
+	{ "Internal Disk Get No Read Count", "ncp.internl_dsk_get_no_read", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_internl_dsk_get_no_read_alloc,
+	{ "Internal Disk Get No Read Allocate Count", "ncp.internl_dsk_get_no_read_alloc", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_internl_dsk_get_no_read_someone_beat,
+	{ "Internal Disk Get No Read Someone Beat Me Count", "ncp.internl_dsk_get_no_read_someone_beat", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_internl_dsk_get_no_wait,
+	{ "Internal Disk Get No Wait Count", "ncp.internl_dsk_get_no_wait", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_internl_dsk_get_no_wait_need,
+	{ "Internal Disk Get No Wait Need To Allocate Count", "ncp.internl_dsk_get_no_wait_need", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_internl_dsk_get_no_wait_no_blk,
+	{ "Internal Disk Get No Wait No Block Count", "ncp.internl_dsk_get_no_wait_no_blk", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_internl_dsk_get_part_read,
+	{ "Internal Disk Get Partial Read Count", "ncp.internl_dsk_get_part_read", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_internl_dsk_get_read_err,
+	{ "Internal Disk Get Read Error Count", "ncp.internl_dsk_get_read_err", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_internl_dsk_get_someone_beat,
+	{ "Internal Disk Get Someone Beat My Count", "ncp.internl_dsk_get_someone_beat", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_internl_dsk_write,
+	{ "Internal Disk Write Count", "ncp.internl_dsk_write", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_internl_dsk_write_alloc,
+	{ "Internal Disk Write Allocate Count", "ncp.internl_dsk_write_alloc", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_internl_dsk_write_someone_beat,
+	{ "Internal Disk Write Someone Beat Me Count", "ncp.internl_dsk_write_someone_beat", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_interrupt_numbers_used,
+	{ "Interrupt Numbers Used", "ncp.interrupt_numbers_used", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_invalid_control_req,
+	{ "Invalid Control Request Count", "ncp.invalid_control_req", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_invalid_req_type,
+	{ "Invalid Request Type Count", "ncp.invalid_req_type", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_invalid_sequence_number,
+	{ "Invalid Sequence Number Count", "ncp.invalid_sequence_number", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_invalid_slot,
+	{ "Invalid Slot Count", "ncp.invalid_slot", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_io_addresses_used,
+	{ "IO Addresses Used", "ncp.io_addresses_used", FT_BYTES, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_io_engine_flag,
+	{ "IO Engine Flag", "ncp.io_engine_flag", FT_BOOLEAN, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_io_error_count,
+	{ "IO Error Count", "ncp.io_error_count", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_io_flag,
+	{ "IO Flag", "ncp.io_flag", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_ipx_aes_event,
+	{ "IPX AES Event Count", "ncp.ipx_aes_event", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_ipx_ecb_cancel_fail,
+	{ "IPX ECB Cancel Fail Count", "ncp.ipx_ecb_cancel_fail", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_ipx_get_ecb_fail,
+	{ "IPX Get ECB Fail Count", "ncp.ipx_get_ecb_fail", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_ipx_get_ecb_req,
+	{ "IPX Get ECB Request Count", "ncp.ipx_get_ecb_req", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_ipx_get_lcl_targ_fail,
+	{ "IPX Get Local Target Fail Count", "ncp.ipx_get_lcl_targ_fail", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_ipx_listen_ecb,
+	{ "IPX Listen ECB Count", "ncp.ipx_listen_ecb", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_ipx_malform_pkt,
+	{ "IPX Malformed Packet Count", "ncp.ipx_malform_pkt", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_ipx_max_conf_sock,
+	{ "IPX Max Configured Socket Count", "ncp.ipx_max_conf_sock", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_ipx_max_open_sock,
+	{ "IPX Max Open Socket Count", "ncp.ipx_max_open_sock", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_ipx_not_my_network,
+	{ "IPX Not My Network", "ncp.ipx_not_my_network", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_ipx_open_sock_fail,
+	{ "IPX Open Socket Fail Count", "ncp.ipx_open_sock_fail", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_ipx_postponed_aes,
+	{ "IPX Postponed AES Count", "ncp.ipx_postponed_aes", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_ipx_send_pkt,
+	{ "IPX Send Packet Count", "ncp.ipx_send_pkt", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_items_changed,
+	{ "Items Changed", "ncp.items_changed", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_items_checked,
+	{ "Items Checked", "ncp.items_checked", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_items_count,
+	{ "Items Count", "ncp.items_count", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_items_in_list,
+	{ "Items in List", "ncp.items_in_list", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_items_in_packet,
+	{ "Items in Packet", "ncp.items_in_packet", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_job_control1_file_open,
+	{ "File Open", "ncp.job_control1_file_open", FT_BOOLEAN, 16, NULL, 0x20, "", HFILL }},
+
+	{ &hf_ncp_job_control1_job_recovery,
+	{ "Job Recovery", "ncp.job_control1_job_recovery", FT_BOOLEAN, 16, NULL, 0x8, "", HFILL }},
+
+	{ &hf_ncp_job_control1_operator_hold,
+	{ "Operator Hold", "ncp.job_control1_operator_hold", FT_BOOLEAN, 16, NULL, 0x80, "", HFILL }},
+
+	{ &hf_ncp_job_control1_reservice,
+	{ "ReService Job", "ncp.job_control1_reservice", FT_BOOLEAN, 16, NULL, 0x10, "", HFILL }},
+
+	{ &hf_ncp_job_control1_user_hold,
+	{ "User Hold", "ncp.job_control1_user_hold", FT_BOOLEAN, 16, NULL, 0x40, "", HFILL }},
+
+	{ &hf_ncp_job_control_file_open,
+	{ "File Open", "ncp.job_control_file_open", FT_BOOLEAN, 8, NULL, 0x20, "", HFILL }},
+
+	{ &hf_ncp_job_control_flags,
+	{ "Job Control Flags", "ncp.job_control_flags", FT_UINT8, BASE_HEX, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_job_control_flags_word,
+	{ "Job Control Flags", "ncp.job_control_flags_word", FT_UINT16, BASE_HEX, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_job_control_job_recovery,
+	{ "Job Recovery", "ncp.job_control_job_recovery", FT_BOOLEAN, 8, NULL, 0x8, "", HFILL }},
+
+	{ &hf_ncp_job_control_operator_hold,
+	{ "Operator Hold", "ncp.job_control_operator_hold", FT_BOOLEAN, 8, NULL, 0x80, "", HFILL }},
+
+	{ &hf_ncp_job_control_reservice,
+	{ "ReService Job", "ncp.job_control_reservice", FT_BOOLEAN, 8, NULL, 0x10, "", HFILL }},
+
+	{ &hf_ncp_job_control_user_hold,
+	{ "User Hold", "ncp.job_control_user_hold", FT_BOOLEAN, 8, NULL, 0x40, "", HFILL }},
+
+	{ &hf_ncp_job_count,
+	{ "Job Count", "ncp.job_count", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_job_file_handle,
+	{ "Job File Handle", "ncp.job_file_handle", FT_BYTES, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_job_file_handle_long,
+	{ "Job File Handle", "ncp.job_file_handle_long", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_job_file_name,
+	{ "Job File Name", "ncp.job_file_name", FT_STRING, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_job_number,
+	{ "Job Number", "ncp.job_number", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_job_number_long,
+	{ "Job Number", "ncp.job_number_long", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_job_position,
+	{ "Job Position", "ncp.job_position", FT_UINT8, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_job_position_word,
+	{ "Job Position", "ncp.job_position_word", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_job_type,
+	{ "Job Type", "ncp.job_type", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_lan_driver_number,
+	{ "LAN Driver Number", "ncp.lan_driver_number", FT_UINT8, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_lan_drv_bd_inst,
+	{ "LAN Driver Board Instance", "ncp.lan_drv_bd_inst", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_lan_drv_bd_num,
+	{ "LAN Driver Board Number", "ncp.lan_drv_bd_num", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_lan_drv_card_id,
+	{ "LAN Driver Card ID", "ncp.lan_drv_card_id", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_lan_drv_card_name,
+	{ "LAN Driver Card Name", "ncp.lan_drv_card_name", FT_STRING, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_lan_drv_dma_usage1,
+	{ "Primary DMA Channel", "ncp.lan_drv_dma_usage1", FT_UINT8, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_lan_drv_dma_usage2,
+	{ "Secondary DMA Channel", "ncp.lan_drv_dma_usage2", FT_UINT8, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_lan_drv_flags,
+	{ "LAN Driver Flags", "ncp.lan_drv_flags", FT_UINT16, BASE_HEX, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_lan_drv_interrupt1,
+	{ "Primary Interrupt Vector", "ncp.lan_drv_interrupt1", FT_UINT8, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_lan_drv_interrupt2,
+	{ "Secondary Interrupt Vector", "ncp.lan_drv_interrupt2", FT_UINT8, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_lan_drv_io_ports_and_ranges_1,
+	{ "Primary Base I/O Port", "ncp.lan_drv_io_ports_and_ranges_1", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_lan_drv_io_ports_and_ranges_2,
+	{ "Number of I/O Ports", "ncp.lan_drv_io_ports_and_ranges_2", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_lan_drv_io_ports_and_ranges_3,
+	{ "Secondary Base I/O Port", "ncp.lan_drv_io_ports_and_ranges_3", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_lan_drv_io_ports_and_ranges_4,
+	{ "Number of I/O Ports", "ncp.lan_drv_io_ports_and_ranges_4", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_lan_drv_io_reserved,
+	{ "LAN Driver IO Reserved", "ncp.lan_drv_io_reserved", FT_BYTES, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_lan_drv_line_speed,
+	{ "LAN Driver Line Speed", "ncp.lan_drv_line_speed", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_lan_drv_link,
+	{ "LAN Driver Link", "ncp.lan_drv_link", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_lan_drv_log_name,
+	{ "LAN Driver Logical Name", "ncp.lan_drv_log_name", FT_BYTES, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_lan_drv_major_ver,
+	{ "LAN Driver Major Version", "ncp.lan_drv_major_ver", FT_UINT8, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_lan_drv_max_rcv_size,
+	{ "LAN Driver Maximum Receive Size", "ncp.lan_drv_max_rcv_size", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_lan_drv_max_size,
+	{ "LAN Driver Maximum Size", "ncp.lan_drv_max_size", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_lan_drv_media_id,
+	{ "LAN Driver Media ID", "ncp.lan_drv_media_id", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_lan_drv_mem_decode_0,
+	{ "LAN Driver Memory Decode 0", "ncp.lan_drv_mem_decode_0", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_lan_drv_mem_decode_1,
+	{ "LAN Driver Memory Decode 1", "ncp.lan_drv_mem_decode_1", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_lan_drv_mem_length_0,
+	{ "LAN Driver Memory Length 0", "ncp.lan_drv_mem_length_0", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_lan_drv_mem_length_1,
+	{ "LAN Driver Memory Length 1", "ncp.lan_drv_mem_length_1", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_lan_drv_minor_ver,
+	{ "LAN Driver Minor Version", "ncp.lan_drv_minor_ver", FT_UINT8, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_lan_drv_rcv_size,
+	{ "LAN Driver Receive Size", "ncp.lan_drv_rcv_size", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_lan_drv_reserved,
+	{ "LAN Driver Reserved", "ncp.lan_drv_reserved", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_lan_drv_share,
+	{ "LAN Driver Sharing Flags", "ncp.lan_drv_share", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_lan_drv_slot,
+	{ "LAN Driver Slot", "ncp.lan_drv_slot", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_lan_drv_snd_retries,
+	{ "LAN Driver Send Retries", "ncp.lan_drv_snd_retries", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_lan_drv_src_route,
+	{ "LAN Driver Source Routing", "ncp.lan_drv_src_route", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_lan_drv_trans_time,
+	{ "LAN Driver Transport Time", "ncp.lan_drv_trans_time", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_lan_dvr_cfg_major_vrs,
+	{ "LAN Driver Config - Major Version", "ncp.lan_dvr_cfg_major_vrs", FT_UINT8, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_lan_dvr_cfg_minor_vrs,
+	{ "LAN Driver Config - Minor Version", "ncp.lan_dvr_cfg_minor_vrs", FT_UINT8, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_lan_dvr_mode_flags,
+	{ "LAN Driver Mode Flags", "ncp.lan_dvr_mode_flags", FT_UINT8, BASE_HEX, VALS(ncp_lan_dvr_mode_flags_vals), 0x0, "", HFILL }},
+
+	{ &hf_ncp_lan_dvr_node_addr,
+	{ "LAN Driver Node Address", "ncp.lan_dvr_node_addr", FT_BYTES, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_large_internet_packets,
+	{ "Large Internet Packets (LIP) Disabled", "ncp.large_internet_packets", FT_BOOLEAN, 8, NULL, 0x80, "", HFILL }},
+
+	{ &hf_ncp_last_access_date,
+	{ "Last Accessed Date", "ncp.last_access_date", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_last_access_time,
+	{ "Last Accessed Time", "ncp.last_access_time", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_last_garbage_collect,
+	{ "Last Garbage Collection", "ncp.last_garbage_collect", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_last_instance,
+	{ "Last Instance", "ncp.last_instance", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_last_record_seen,
+	{ "Last Record Seen", "ncp.last_record_seen", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_last_search_index,
+	{ "Search Index", "ncp.last_search_index", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_last_seen,
+	{ "Last Seen", "ncp.last_seen", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_last_sequence_number,
+	{ "Sequence Number", "ncp.last_sequence_number", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_last_time_rx_buff_was_alloc,
+	{ "Last Time a Receive Buffer was Allocated", "ncp.last_time_rx_buff_was_alloc", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_length_64bit,
+	{ "64bit Length", "ncp.length_64bit", FT_BYTES, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_level,
+	{ "Level", "ncp.level", FT_UINT8, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_lfs_counters,
+	{ "LFS Counters", "ncp.lfs_counters", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_limb_count,
+	{ "Limb Count", "ncp.limb_count", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_limbo_data_streams_count,
+	{ "Limbo Data Streams Count", "ncp.limbo_data_streams_count", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_limbo_used,
+	{ "Limbo Used", "ncp.limbo_used", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_loaded_name_spaces,
+	{ "Loaded Name Spaces", "ncp.loaded_name_spaces", FT_UINT8, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_local_connection_id,
+	{ "Local Connection ID", "ncp.local_connection_id", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_local_login_info_ccode,
+	{ "Local Login Info C Code", "ncp.local_login_info_ccode", FT_UINT8, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_local_max_packet_size,
+	{ "Local Max Packet Size", "ncp.local_max_packet_size", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_local_max_recv_size,
+	{ "Local Max Recv Size", "ncp.local_max_recv_size", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_local_max_send_size,
+	{ "Local Max Send Size", "ncp.local_max_send_size", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_local_target_socket,
+	{ "Local Target Socket", "ncp.local_target_socket", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_lock_area_len,
+	{ "Lock Area Length", "ncp.lock_area_len", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_lock_areas_start_offset,
+	{ "Lock Areas Start Offset", "ncp.lock_areas_start_offset", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_lock_flag,
+	{ "Lock Flag", "ncp.lock_flag", FT_UINT8, BASE_HEX, VALS(ncp_lock_flag_vals), 0x0, "", HFILL }},
+
+	{ &hf_ncp_lock_name,
+	{ "Lock Name", "ncp.lock_name", FT_UINT_STRING, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_lock_status,
+	{ "Lock Status", "ncp.lock_status", FT_UINT8, BASE_HEX, VALS(ncp_lock_status_vals), 0x0, "", HFILL }},
+
+	{ &hf_ncp_lock_timeout,
+	{ "Lock Timeout", "ncp.lock_timeout", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_lock_type,
+	{ "Lock Type", "ncp.lock_type", FT_UINT8, BASE_HEX, VALS(ncp_lock_type_vals), 0x0, "", HFILL }},
+
+	{ &hf_ncp_locked,
+	{ "Locked Flag", "ncp.locked", FT_UINT8, BASE_HEX, VALS(ncp_locked_vals), 0x0, "", HFILL }},
+
+	{ &hf_ncp_log_file_flag_high,
+	{ "Log File Flag (byte 2)", "ncp.log_file_flag_high", FT_UINT8, BASE_HEX, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_log_file_flag_low,
+	{ "Log File Flag", "ncp.log_file_flag_low", FT_UINT8, BASE_HEX, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_log_flag_call_back,
+	{ "Call Back Requested", "ncp.log_flag_call_back", FT_BOOLEAN, 8, NULL, 0x80, "", HFILL }},
+
+	{ &hf_ncp_log_flag_lock_file,
+	{ "Lock File Immediately", "ncp.log_flag_lock_file", FT_BOOLEAN, 8, NULL, 0x1, "", HFILL }},
+
+	{ &hf_ncp_log_ttl_rx_pkts,
+	{ "Total Received Packets", "ncp.log_ttl_rx_pkts", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_log_ttl_tx_pkts,
+	{ "Total Transmitted Packets", "ncp.log_ttl_tx_pkts", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_logged_count,
+	{ "Logged Count", "ncp.logged_count", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_logged_object_id,
+	{ "Logged in Object ID", "ncp.logged_object_id", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_logical_connection_number,
+	{ "Logical Connection Number", "ncp.logical_connection_number", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_logical_drive_count,
+	{ "Logical Drive Count", "ncp.logical_drive_count", FT_UINT8, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_logical_drive_number,
+	{ "Logical Drive Number", "ncp.logical_drive_number", FT_UINT8, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_logical_lock_threshold,
+	{ "LogicalLockThreshold", "ncp.logical_lock_threshold", FT_UINT8, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_logical_record_name,
+	{ "Logical Record Name", "ncp.logical_record_name", FT_UINT_STRING, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_login_expiration_time,
+	{ "Login Expiration Time", "ncp.login_expiration_time", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_login_key,
+	{ "Login Key", "ncp.login_key", FT_BYTES, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_login_name,
+	{ "Login Name", "ncp.login_name", FT_UINT_STRING, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_long_name,
+	{ "Long Name", "ncp.long_name", FT_STRING, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_lru_block_was_dirty,
+	{ "LRU Block Was Dirty", "ncp.lru_block_was_dirty", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_lru_sit_time,
+	{ "LRU Sitting Time", "ncp.lru_sit_time", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_mac_attr,
+	{ "Attributes", "ncp.mac_attr", FT_UINT16, BASE_HEX, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_mac_attr_archive,
+	{ "Archive", "ncp.mac_attr_archive", FT_BOOLEAN, 16, NULL, 0x2000, "", HFILL }},
+
+	{ &hf_ncp_mac_attr_execute_only,
+	{ "Execute Only", "ncp.mac_attr_execute_only", FT_BOOLEAN, 16, NULL, 0x800, "", HFILL }},
+
+	{ &hf_ncp_mac_attr_hidden,
+	{ "Hidden", "ncp.mac_attr_hidden", FT_BOOLEAN, 16, NULL, 0x200, "", HFILL }},
+
+	{ &hf_ncp_mac_attr_index,
+	{ "Index", "ncp.mac_attr_index", FT_BOOLEAN, 16, NULL, 0x20, "", HFILL }},
+
+	{ &hf_ncp_mac_attr_r_audit,
+	{ "Read Audit", "ncp.mac_attr_r_audit", FT_BOOLEAN, 16, NULL, 0x40, "", HFILL }},
+
+	{ &hf_ncp_mac_attr_r_only,
+	{ "Read Only", "ncp.mac_attr_r_only", FT_BOOLEAN, 16, NULL, 0x100, "", HFILL }},
+
+	{ &hf_ncp_mac_attr_share,
+	{ "Shareable File", "ncp.mac_attr_share", FT_BOOLEAN, 16, NULL, 0x8000, "", HFILL }},
+
+	{ &hf_ncp_mac_attr_smode1,
+	{ "Search Mode", "ncp.mac_attr_smode1", FT_BOOLEAN, 16, NULL, 0x1, "", HFILL }},
+
+	{ &hf_ncp_mac_attr_smode2,
+	{ "Search Mode", "ncp.mac_attr_smode2", FT_BOOLEAN, 16, NULL, 0x2, "", HFILL }},
+
+	{ &hf_ncp_mac_attr_smode3,
+	{ "Search Mode", "ncp.mac_attr_smode3", FT_BOOLEAN, 16, NULL, 0x4, "", HFILL }},
+
+	{ &hf_ncp_mac_attr_subdirectory,
+	{ "Subdirectory", "ncp.mac_attr_subdirectory", FT_BOOLEAN, 16, NULL, 0x1000, "", HFILL }},
+
+	{ &hf_ncp_mac_attr_system,
+	{ "System", "ncp.mac_attr_system", FT_BOOLEAN, 16, NULL, 0x400, "", HFILL }},
+
+	{ &hf_ncp_mac_attr_transaction,
+	{ "Transaction", "ncp.mac_attr_transaction", FT_BOOLEAN, 16, NULL, 0x10, "", HFILL }},
+
+	{ &hf_ncp_mac_attr_w_audit,
+	{ "Write Audit", "ncp.mac_attr_w_audit", FT_BOOLEAN, 16, NULL, 0x80, "", HFILL }},
+
+	{ &hf_ncp_mac_backup_date,
+	{ "Mac Backup Date", "ncp.mac_backup_date", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_mac_backup_time,
+	{ "Mac Backup Time", "ncp.mac_backup_time", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_mac_base_directory_id,
+	{ "Mac Base Directory ID", "ncp.mac_base_directory_id", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_mac_create_date,
+	{ "Mac Create Date", "ncp.mac_create_date", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_mac_create_time,
+	{ "Mac Create Time", "ncp.mac_create_time", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_mac_destination_base_id,
+	{ "Mac Destination Base ID", "ncp.mac_destination_base_id", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_mac_finder_info,
+	{ "Mac Finder Information", "ncp.mac_finder_info", FT_BYTES, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_mac_last_seen_id,
+	{ "Mac Last Seen ID", "ncp.mac_last_seen_id", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_mac_root_ids,
+	{ "MAC Root IDs", "ncp.mac_root_ids", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_mac_source_base_id,
+	{ "Mac Source Base ID", "ncp.mac_source_base_id", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_major_version,
+	{ "Major Version", "ncp.major_version", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_map_hash_node_count,
+	{ "Map Hash Node Count", "ncp.map_hash_node_count", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_max_byte_cnt,
+	{ "Maximum Byte Count", "ncp.max_byte_cnt", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_max_bytes,
+	{ "Maximum Number of Bytes", "ncp.max_bytes", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_max_data_streams,
+	{ "Maximum Data Streams", "ncp.max_data_streams", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_max_dir_depth,
+	{ "Maximum Directory Depth", "ncp.max_dir_depth", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_max_dirty_time,
+	{ "Maximum Dirty Time", "ncp.max_dirty_time", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_max_num_of_conn,
+	{ "Maximum Number of Connections", "ncp.max_num_of_conn", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_max_num_of_dir_cache_buff,
+	{ "Maximum Number Of Directory Cache Buffers", "ncp.max_num_of_dir_cache_buff", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_max_num_of_lans,
+	{ "Maximum Number Of LAN's", "ncp.max_num_of_lans", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_max_num_of_media_types,
+	{ "Maximum Number of Media Types", "ncp.max_num_of_media_types", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_max_num_of_medias,
+	{ "Maximum Number Of Media's", "ncp.max_num_of_medias", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_max_num_of_nme_sps,
+	{ "Maximum Number Of Name Spaces", "ncp.max_num_of_nme_sps", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_max_num_of_protocols,
+	{ "Maximum Number of Protocols", "ncp.max_num_of_protocols", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_max_num_of_spool_pr,
+	{ "Maximum Number Of Spool Printers", "ncp.max_num_of_spool_pr", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_max_num_of_stacks,
+	{ "Maximum Number Of Stacks", "ncp.max_num_of_stacks", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_max_num_of_users,
+	{ "Maximum Number Of Users", "ncp.max_num_of_users", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_max_num_of_vol,
+	{ "Maximum Number of Volumes", "ncp.max_num_of_vol", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_max_phy_packet_size,
+	{ "Maximum Physical Packet Size", "ncp.max_phy_packet_size", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_max_space,
+	{ "Maximum Space", "ncp.max_space", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_maxspace,
+	{ "Maximum Space", "ncp.maxspace", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_may_had_out_of_order,
+	{ "Maybe Had Out Of Order Writes Count", "ncp.may_had_out_of_order", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_media_list,
+	{ "Media List", "ncp.media_list", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_media_list_count,
+	{ "Media List Count", "ncp.media_list_count", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_media_name,
+	{ "Media Name", "ncp.media_name", FT_UINT_STRING, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_media_number,
+	{ "Media Number", "ncp.media_number", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_media_object_type,
+	{ "Object Type", "ncp.media_object_type", FT_UINT8, BASE_HEX, VALS(ncp_media_object_type_vals), 0x0, "", HFILL }},
+
+	{ &hf_ncp_member_name,
+	{ "Member Name", "ncp.member_name", FT_UINT_STRING, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_member_type,
+	{ "Member Type", "ncp.member_type", FT_UINT16, BASE_HEX, VALS(ncp_member_type_vals), 0x0, "", HFILL }},
+
+	{ &hf_ncp_message_language,
+	{ "NLM Language", "ncp.message_language", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_migrated_files,
+	{ "Migrated Files", "ncp.migrated_files", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_migrated_sectors,
+	{ "Migrated Sectors", "ncp.migrated_sectors", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_min_cache_report_thresh,
+	{ "Minimum Cache Report Threshold", "ncp.min_cache_report_thresh", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_min_num_of_cache_buff,
+	{ "Minimum Number Of Cache Buffers", "ncp.min_num_of_cache_buff", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_min_num_of_dir_cache_buff,
+	{ "Minimum Number Of Directory Cache Buffers", "ncp.min_num_of_dir_cache_buff", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_min_time_since_file_delete,
+	{ "Minimum Time Since File Delete", "ncp.min_time_since_file_delete", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_minor_version,
+	{ "Minor Version", "ncp.minor_version", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_mixed_mode_path_flag,
+	{ "Mixed Mode Path Flag", "ncp.mixed_mode_path_flag", FT_UINT8, BASE_HEX, VALS(ncp_mixed_mode_path_flag_vals), 0x0, "", HFILL }},
+
+	{ &hf_ncp_modified_counter,
+	{ "Modified Counter", "ncp.modified_counter", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_modified_date,
+	{ "Modified Date", "ncp.modified_date", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_modified_time,
+	{ "Modified Time", "ncp.modified_time", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_modifier_id,
+	{ "Modifier ID", "ncp.modifier_id", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_modify_dos_create,
+	{ "Creator ID", "ncp.modify_dos_create", FT_BOOLEAN, 16, NULL, 0x10, "", HFILL }},
+
+	{ &hf_ncp_modify_dos_delete,
+	{ "Archive Date", "ncp.modify_dos_delete", FT_BOOLEAN, 16, NULL, 0x20, "", HFILL }},
+
+	{ &hf_ncp_modify_dos_info_mask,
+	{ "Modify DOS Info Mask", "ncp.modify_dos_info_mask", FT_UINT16, BASE_HEX, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_modify_dos_inheritance,
+	{ "Inheritance", "ncp.modify_dos_inheritance", FT_BOOLEAN, 16, NULL, 0x1000, "", HFILL }},
+
+	{ &hf_ncp_modify_dos_laccess,
+	{ "Last Access", "ncp.modify_dos_laccess", FT_BOOLEAN, 16, NULL, 0x800, "", HFILL }},
+
+	{ &hf_ncp_modify_dos_max_space,
+	{ "Maximum Space", "ncp.modify_dos_max_space", FT_BOOLEAN, 16, NULL, 0x2000, "", HFILL }},
+
+	{ &hf_ncp_modify_dos_mdate,
+	{ "Modify Date", "ncp.modify_dos_mdate", FT_BOOLEAN, 16, NULL, 0x100, "", HFILL }},
+
+	{ &hf_ncp_modify_dos_mid,
+	{ "Modifier ID", "ncp.modify_dos_mid", FT_BOOLEAN, 16, NULL, 0x400, "", HFILL }},
+
+	{ &hf_ncp_modify_dos_mtime,
+	{ "Modify Time", "ncp.modify_dos_mtime", FT_BOOLEAN, 16, NULL, 0x200, "", HFILL }},
+
+	{ &hf_ncp_modify_dos_open,
+	{ "Creation Time", "ncp.modify_dos_open", FT_BOOLEAN, 16, NULL, 0x8, "", HFILL }},
+
+	{ &hf_ncp_modify_dos_parent,
+	{ "Archive Time", "ncp.modify_dos_parent", FT_BOOLEAN, 16, NULL, 0x40, "", HFILL }},
+
+	{ &hf_ncp_modify_dos_read,
+	{ "Attributes", "ncp.modify_dos_read", FT_BOOLEAN, 16, NULL, 0x2, "", HFILL }},
+
+	{ &hf_ncp_modify_dos_search,
+	{ "Archiver ID", "ncp.modify_dos_search", FT_BOOLEAN, 16, NULL, 0x80, "", HFILL }},
+
+	{ &hf_ncp_modify_dos_write,
+	{ "Creation Date", "ncp.modify_dos_write", FT_BOOLEAN, 16, NULL, 0x4, "", HFILL }},
+
+	{ &hf_ncp_more_flag,
+	{ "More Flag", "ncp.more_flag", FT_UINT8, BASE_HEX, VALS(ncp_more_flag_vals), 0x0, "", HFILL }},
+
+	{ &hf_ncp_more_properties,
+	{ "More Properties", "ncp.more_properties", FT_UINT8, BASE_HEX, VALS(ncp_more_properties_vals), 0x0, "", HFILL }},
+
+	{ &hf_ncp_move_cache_node,
+	{ "Move Cache Node Count", "ncp.move_cache_node", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_move_cache_node_from_avai,
+	{ "Move Cache Node From Avail Count", "ncp.move_cache_node_from_avai", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_moved_the_ack_bit_dn,
+	{ "Moved The ACK Bit Down Count", "ncp.moved_the_ack_bit_dn", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_name,
+	{ "Name", "ncp.name", FT_UINT_STRING, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_name12,
+	{ "Name", "ncp.name12", FT_STRING, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_name_len,
+	{ "Name Space Length", "ncp.name_len", FT_UINT8, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_name_length,
+	{ "Name Length", "ncp.name_length", FT_UINT8, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_name_list,
+	{ "Name List", "ncp.name_list", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_name_space,
+	{ "Name Space", "ncp.name_space", FT_UINT8, BASE_HEX, VALS(ncp_name_space_vals), 0x0, "", HFILL }},
+
+	{ &hf_ncp_name_space_name,
+	{ "Name Space Name", "ncp.name_space_name", FT_UINT_STRING, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_name_type,
+	{ "nameType", "ncp.name_type", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_ncompletion_code,
+	{ "Completion Code", "ncp.ncompletion_code", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_ncp_data_size,
+	{ "NCP Data Size", "ncp.ncp_data_size", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_ncp_extension_major_version,
+	{ "NCP Extension Major Version", "ncp.ncp_extension_major_version", FT_UINT8, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_ncp_extension_minor_version,
+	{ "NCP Extension Minor Version", "ncp.ncp_extension_minor_version", FT_UINT8, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_ncp_extension_name,
+	{ "NCP Extension Name", "ncp.ncp_extension_name", FT_UINT_STRING, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_ncp_extension_number,
+	{ "NCP Extension Number", "ncp.ncp_extension_number", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_ncp_extension_numbers,
+	{ "NCP Extension Numbers", "ncp.ncp_extension_numbers", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_ncp_extension_revision_number,
+	{ "NCP Extension Revision Number", "ncp.ncp_extension_revision_number", FT_UINT8, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_ncp_peak_sta_in_use,
+	{ "Peak Number of Connections since Server was brought up", "ncp.ncp_peak_sta_in_use", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_ncp_sta_in_use,
+	{ "Number of Workstations Connected to Server", "ncp.ncp_sta_in_use", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_ndirty_blocks,
+	{ "Number of Dirty Blocks", "ncp.ndirty_blocks", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_nds_request_flags,
+	{ "NDS Request Flags", "ncp.nds_request_flags", FT_UINT16, BASE_HEX, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_nds_request_flags_alias_ref,
+	{ "Alias Referral", "ncp.nds_request_flags_alias_ref", FT_BOOLEAN, 16, NULL, 0x10, "", HFILL }},
+
+	{ &hf_ncp_nds_request_flags_dn_ref,
+	{ "Down Referral", "ncp.nds_request_flags_dn_ref", FT_BOOLEAN, 16, NULL, 0x800, "", HFILL }},
+
+	{ &hf_ncp_nds_request_flags_local_entry,
+	{ "Local Entry", "ncp.nds_request_flags_local_entry", FT_BOOLEAN, 16, NULL, 0x4, "", HFILL }},
+
+	{ &hf_ncp_nds_request_flags_no_such_entry,
+	{ "No Such Entry", "ncp.nds_request_flags_no_such_entry", FT_BOOLEAN, 16, NULL, 0x2, "", HFILL }},
+
+	{ &hf_ncp_nds_request_flags_output,
+	{ "Output Fields", "ncp.nds_request_flags_output", FT_BOOLEAN, 16, NULL, 0x1, "", HFILL }},
+
+	{ &hf_ncp_nds_request_flags_reply_data_size,
+	{ "Reply Data Size", "ncp.nds_request_flags_reply_data_size", FT_BOOLEAN, 16, NULL, 0x80, "", HFILL }},
+
+	{ &hf_ncp_nds_request_flags_req_cnt,
+	{ "Request Count", "ncp.nds_request_flags_req_cnt", FT_BOOLEAN, 16, NULL, 0x20, "", HFILL }},
+
+	{ &hf_ncp_nds_request_flags_req_data_size,
+	{ "Request Data Size", "ncp.nds_request_flags_req_data_size", FT_BOOLEAN, 16, NULL, 0x40, "", HFILL }},
+
+	{ &hf_ncp_nds_request_flags_trans_ref,
+	{ "Transport Referral", "ncp.nds_request_flags_trans_ref", FT_BOOLEAN, 16, NULL, 0x100, "", HFILL }},
+
+	{ &hf_ncp_nds_request_flags_trans_ref2,
+	{ "Transport Referral", "ncp.nds_request_flags_trans_ref2", FT_BOOLEAN, 16, NULL, 0x200, "", HFILL }},
+
+	{ &hf_ncp_nds_request_flags_type_ref,
+	{ "Type Referral", "ncp.nds_request_flags_type_ref", FT_BOOLEAN, 16, NULL, 0x8, "", HFILL }},
+
+	{ &hf_ncp_nds_request_flags_up_ref,
+	{ "Up Referral", "ncp.nds_request_flags_up_ref", FT_BOOLEAN, 16, NULL, 0x400, "", HFILL }},
+
+	{ &hf_ncp_nds_status,
+	{ "NDS Status", "ncp.nds_status", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_net_id_number,
+	{ "Net ID Number", "ncp.net_id_number", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_net_status,
+	{ "Network Status", "ncp.net_status", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_netbios_broadcast_was_propogated,
+	{ "NetBIOS Broadcast Was Propogated", "ncp.netbios_broadcast_was_propogated", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_netbios_progated,
+	{ "NetBIOS Propagated Count", "ncp.netbios_progated", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_netware_access_handle,
+	{ "NetWare Access Handle", "ncp.netware_access_handle", FT_BYTES, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_network_address,
+	{ "Network Address", "ncp.network_address", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_network_node_address,
+	{ "Network Node Address", "ncp.network_node_address", FT_BYTES, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_network_number,
+	{ "Network Number", "ncp.network_number", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_network_socket,
+	{ "Network Socket", "ncp.network_socket", FT_UINT16, BASE_HEX, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_new_access_rights_create,
+	{ "Create", "ncp.new_access_rights_create", FT_BOOLEAN, 16, NULL, 0x8, "", HFILL }},
+
+	{ &hf_ncp_new_access_rights_delete,
+	{ "Delete", "ncp.new_access_rights_delete", FT_BOOLEAN, 16, NULL, 0x10, "", HFILL }},
+
+	{ &hf_ncp_new_access_rights_mask,
+	{ "New Access Rights", "ncp.new_access_rights_mask", FT_UINT16, BASE_HEX, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_new_access_rights_modify,
+	{ "Modify", "ncp.new_access_rights_modify", FT_BOOLEAN, 16, NULL, 0x80, "", HFILL }},
+
+	{ &hf_ncp_new_access_rights_open,
+	{ "Open", "ncp.new_access_rights_open", FT_BOOLEAN, 16, NULL, 0x4, "", HFILL }},
+
+	{ &hf_ncp_new_access_rights_parental,
+	{ "Parental", "ncp.new_access_rights_parental", FT_BOOLEAN, 16, NULL, 0x20, "", HFILL }},
+
+	{ &hf_ncp_new_access_rights_read,
+	{ "Read", "ncp.new_access_rights_read", FT_BOOLEAN, 16, NULL, 0x1, "", HFILL }},
+
+	{ &hf_ncp_new_access_rights_search,
+	{ "Search", "ncp.new_access_rights_search", FT_BOOLEAN, 16, NULL, 0x40, "", HFILL }},
+
+	{ &hf_ncp_new_access_rights_supervisor,
+	{ "Supervisor", "ncp.new_access_rights_supervisor", FT_BOOLEAN, 16, NULL, 0x100, "", HFILL }},
+
+	{ &hf_ncp_new_access_rights_write,
+	{ "Write", "ncp.new_access_rights_write", FT_BOOLEAN, 16, NULL, 0x2, "", HFILL }},
+
+	{ &hf_ncp_new_directory_id,
+	{ "New Directory ID", "ncp.new_directory_id", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_new_ea_handle,
+	{ "New EA Handle", "ncp.new_ea_handle", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_new_file_name,
+	{ "New File Name", "ncp.new_file_name", FT_STRING, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_new_file_name_len,
+	{ "New File Name", "ncp.new_file_name_len", FT_UINT_STRING, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_new_file_size,
+	{ "New File Size", "ncp.new_file_size", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_new_object_name,
+	{ "New Object Name", "ncp.new_object_name", FT_UINT_STRING, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_new_password,
+	{ "New Password", "ncp.new_password", FT_UINT_STRING, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_new_path,
+	{ "New Path", "ncp.new_path", FT_UINT_STRING, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_new_position,
+	{ "New Position", "ncp.new_position", FT_UINT8, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_next_cnt_block,
+	{ "Next Count Block", "ncp.next_cnt_block", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_next_huge_state_info,
+	{ "Next Huge State Info", "ncp.next_huge_state_info", FT_BYTES, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_next_limb_scan_num,
+	{ "Next Limb Scan Number", "ncp.next_limb_scan_num", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_next_object_id,
+	{ "Next Object ID", "ncp.next_object_id", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_next_record,
+	{ "Next Record", "ncp.next_record", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_next_request_record,
+	{ "Next Request Record", "ncp.next_request_record", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_next_search_index,
+	{ "Next Search Index", "ncp.next_search_index", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_next_search_number,
+	{ "Next Search Number", "ncp.next_search_number", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_next_starting_number,
+	{ "Next Starting Number", "ncp.next_starting_number", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_next_trustee_entry,
+	{ "Next Trustee Entry", "ncp.next_trustee_entry", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_next_volume_number,
+	{ "Next Volume Number", "ncp.next_volume_number", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_nlm_count,
+	{ "NLM Count", "ncp.nlm_count", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_nlm_flags,
+	{ "Flags", "ncp.nlm_flags", FT_UINT8, BASE_HEX, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_nlm_flags_multiple,
+	{ "Can Load Multiple Times", "ncp.nlm_flags_multiple", FT_BOOLEAN, 8, NULL, 0x2, "", HFILL }},
+
+	{ &hf_ncp_nlm_flags_pseudo,
+	{ "PseudoPreemption", "ncp.nlm_flags_pseudo", FT_BOOLEAN, 8, NULL, 0x8, "", HFILL }},
+
+	{ &hf_ncp_nlm_flags_reentrant,
+	{ "ReEntrant", "ncp.nlm_flags_reentrant", FT_BOOLEAN, 8, NULL, 0x1, "", HFILL }},
+
+	{ &hf_ncp_nlm_flags_synchronize,
+	{ "Synchronize Start", "ncp.nlm_flags_synchronize", FT_BOOLEAN, 8, NULL, 0x4, "", HFILL }},
+
+	{ &hf_ncp_nlm_load_options,
+	{ "NLM Load Options", "ncp.nlm_load_options", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_nlm_name_stringz,
+	{ "NLM Name", "ncp.nlm_name_stringz", FT_STRINGZ, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_nlm_number,
+	{ "NLM Number", "ncp.nlm_number", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_nlm_numbers,
+	{ "NLM Numbers", "ncp.nlm_numbers", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_nlm_start_num,
+	{ "NLM Start Number", "ncp.nlm_start_num", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_nlm_type,
+	{ "NLM Type", "ncp.nlm_type", FT_UINT8, BASE_HEX, VALS(ncp_nlm_type_vals), 0x0, "", HFILL }},
+
+	{ &hf_ncp_nlms_in_list,
+	{ "NLM's in List", "ncp.nlms_in_list", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_no_avail_conns,
+	{ "No Available Connections Count", "ncp.no_avail_conns", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_no_ecb_available_count,
+	{ "No ECB Available Count", "ncp.no_ecb_available_count", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_no_mem_for_station,
+	{ "No Memory For Station Control Count", "ncp.no_mem_for_station", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_no_more_mem_avail,
+	{ "No More Memory Available Count", "ncp.no_more_mem_avail", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_no_receive_buff,
+	{ "No Receive Buffers", "ncp.no_receive_buff", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_no_space_for_service,
+	{ "No Space For Service", "ncp.no_space_for_service", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_node,
+	{ "Node", "ncp.node", FT_BYTES, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_node_flags,
+	{ "Node Flags", "ncp.node_flags", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_non_ded_flag,
+	{ "Non Dedicated Flag", "ncp.non_ded_flag", FT_BOOLEAN, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_non_freeable_avail_sub_alloc_sectors,
+	{ "Non Freeable Available Sub Alloc Sectors", "ncp.non_freeable_avail_sub_alloc_sectors", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_non_freeable_limbo_sectors,
+	{ "Non Freeable Limbo Sectors", "ncp.non_freeable_limbo_sectors", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_not_my_network,
+	{ "Not My Network", "ncp.not_my_network", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_not_supported_mask,
+	{ "Bit Counter Supported", "ncp.not_supported_mask", FT_BOOLEAN, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_not_usable_sub_alloc_sectors,
+	{ "Not Usable Sub Alloc Sectors", "ncp.not_usable_sub_alloc_sectors", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_not_yet_purgeable_blocks,
+	{ "Not Yet Purgeable Blocks", "ncp.not_yet_purgeable_blocks", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_ns_info_mask,
+	{ "Names Space Info Mask", "ncp.ns_info_mask", FT_UINT16, BASE_HEX, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_ns_info_mask_acc_date,
+	{ "Access Date", "ncp.ns_info_mask_acc_date", FT_BOOLEAN, 16, NULL, 0x800, "", HFILL }},
+
+	{ &hf_ncp_ns_info_mask_adate,
+	{ "Archive Date", "ncp.ns_info_mask_adate", FT_BOOLEAN, 16, NULL, 0x20, "", HFILL }},
+
+	{ &hf_ncp_ns_info_mask_aid,
+	{ "Archiver ID", "ncp.ns_info_mask_aid", FT_BOOLEAN, 16, NULL, 0x80, "", HFILL }},
+
+	{ &hf_ncp_ns_info_mask_atime,
+	{ "Archive Time", "ncp.ns_info_mask_atime", FT_BOOLEAN, 16, NULL, 0x40, "", HFILL }},
+
+	{ &hf_ncp_ns_info_mask_cdate,
+	{ "Creation Date", "ncp.ns_info_mask_cdate", FT_BOOLEAN, 16, NULL, 0x4, "", HFILL }},
+
+	{ &hf_ncp_ns_info_mask_ctime,
+	{ "Creation Time", "ncp.ns_info_mask_ctime", FT_BOOLEAN, 16, NULL, 0x8, "", HFILL }},
+
+	{ &hf_ncp_ns_info_mask_fatt,
+	{ "File Attributes", "ncp.ns_info_mask_fatt", FT_BOOLEAN, 16, NULL, 0x2, "", HFILL }},
+
+	{ &hf_ncp_ns_info_mask_max_acc_mask,
+	{ "Inheritance", "ncp.ns_info_mask_max_acc_mask", FT_BOOLEAN, 16, NULL, 0x1000, "", HFILL }},
+
+	{ &hf_ncp_ns_info_mask_max_space,
+	{ "Maximum Space", "ncp.ns_info_mask_max_space", FT_BOOLEAN, 16, NULL, 0x2000, "", HFILL }},
+
+	{ &hf_ncp_ns_info_mask_modify,
+	{ "Modify Name", "ncp.ns_info_mask_modify", FT_BOOLEAN, 16, NULL, 0x1, "", HFILL }},
+
+	{ &hf_ncp_ns_info_mask_owner,
+	{ "Owner ID", "ncp.ns_info_mask_owner", FT_BOOLEAN, 16, NULL, 0x10, "", HFILL }},
+
+	{ &hf_ncp_ns_info_mask_udate,
+	{ "Update Date", "ncp.ns_info_mask_udate", FT_BOOLEAN, 16, NULL, 0x100, "", HFILL }},
+
+	{ &hf_ncp_ns_info_mask_uid,
+	{ "Update ID", "ncp.ns_info_mask_uid", FT_BOOLEAN, 16, NULL, 0x400, "", HFILL }},
+
+	{ &hf_ncp_ns_info_mask_utime,
+	{ "Update Time", "ncp.ns_info_mask_utime", FT_BOOLEAN, 16, NULL, 0x200, "", HFILL }},
+
+	{ &hf_ncp_ns_specific_info,
+	{ "Name Space Specific Info", "ncp.ns_specific_info", FT_STRING, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_num_bytes,
+	{ "Number of Bytes", "ncp.num_bytes", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_num_dir_cache_buff,
+	{ "Number Of Directory Cache Buffers", "ncp.num_dir_cache_buff", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_num_of_allocs,
+	{ "Number of Allocations", "ncp.num_of_allocs", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_num_of_cache_check_no_wait,
+	{ "Number Of Cache Check No Wait", "ncp.num_of_cache_check_no_wait", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_num_of_cache_checks,
+	{ "Number Of Cache Checks", "ncp.num_of_cache_checks", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_num_of_cache_dirty_checks,
+	{ "Number Of Cache Dirty Checks", "ncp.num_of_cache_dirty_checks", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_num_of_cache_hits,
+	{ "Number Of Cache Hits", "ncp.num_of_cache_hits", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_num_of_cache_hits_no_wait,
+	{ "Number Of Cache Hits No Wait", "ncp.num_of_cache_hits_no_wait", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_num_of_cc_in_pkt,
+	{ "Number of Custom Counters in Packet", "ncp.num_of_cc_in_pkt", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_num_of_checks,
+	{ "Number of Checks", "ncp.num_of_checks", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_num_of_dir_cache_buff,
+	{ "Number Of Directory Cache Buffers", "ncp.num_of_dir_cache_buff", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_num_of_dirty_cache_checks,
+	{ "Number Of Dirty Cache Checks", "ncp.num_of_dirty_cache_checks", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_num_of_entries,
+	{ "Number of Entries", "ncp.num_of_entries", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_num_of_files_migrated,
+	{ "Number Of Files Migrated", "ncp.num_of_files_migrated", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_num_of_garb_coll,
+	{ "Number of Garbage Collections", "ncp.num_of_garb_coll", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_num_of_ncp_reqs,
+	{ "Number of NCP Requests since Server was brought up", "ncp.num_of_ncp_reqs", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_num_of_ref_publics,
+	{ "Number of Referenced Public Symbols", "ncp.num_of_ref_publics", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_num_of_segments,
+	{ "Number of Segments", "ncp.num_of_segments", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_number_of_attributes,
+	{ "Number of Attributes", "ncp.number_of_attributes", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_number_of_cpus,
+	{ "Number of CPU's", "ncp.number_of_cpus", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_number_of_data_streams,
+	{ "Number of Data Streams", "ncp.number_of_data_streams", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_number_of_dynamic_memory_areas,
+	{ "Number Of Dynamic Memory Areas", "ncp.number_of_dynamic_memory_areas", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_number_of_entries,
+	{ "Number of Entries", "ncp.number_of_entries", FT_UINT8, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_number_of_locks,
+	{ "Number of Locks", "ncp.number_of_locks", FT_UINT8, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_number_of_minutes_to_delay,
+	{ "Number of Minutes to Delay", "ncp.number_of_minutes_to_delay", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_number_of_ncp_extensions,
+	{ "Number Of NCP Extensions", "ncp.number_of_ncp_extensions", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_number_of_ns_loaded,
+	{ "Number Of Name Spaces Loaded", "ncp.number_of_ns_loaded", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_number_of_protocols,
+	{ "Number of Protocols", "ncp.number_of_protocols", FT_UINT8, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_number_of_records,
+	{ "Number of Records", "ncp.number_of_records", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_number_of_semaphores,
+	{ "Number Of Semaphores", "ncp.number_of_semaphores", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_number_of_service_processes,
+	{ "Number Of Service Processes", "ncp.number_of_service_processes", FT_UINT8, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_number_of_set_categories,
+	{ "Number Of Set Categories", "ncp.number_of_set_categories", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_number_of_sms,
+	{ "Number Of Storage Medias", "ncp.number_of_sms", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_number_of_stations,
+	{ "Number of Stations", "ncp.number_of_stations", FT_UINT8, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_nxt_search_num,
+	{ "Next Search Number", "ncp.nxt_search_num", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_o_c_ret_flags,
+	{ "Open Create Return Flags", "ncp.o_c_ret_flags", FT_UINT8, BASE_HEX, VALS(ncp_o_c_ret_flags_vals), 0x0, "", HFILL }},
+
+	{ &hf_ncp_object_count,
+	{ "Object Count", "ncp.object_count", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_object_flags,
+	{ "Object Flags", "ncp.object_flags", FT_UINT8, BASE_HEX, VALS(ncp_object_flags_vals), 0x0, "", HFILL }},
+
+	{ &hf_ncp_object_has_properites,
+	{ "Object Has Properties", "ncp.object_has_properites", FT_UINT8, BASE_HEX, VALS(ncp_object_has_properites_vals), 0x0, "", HFILL }},
+
+	{ &hf_ncp_object_id,
+	{ "Object ID", "ncp.object_id", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_object_id_count,
+	{ "Object ID Count", "ncp.object_id_count", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_object_id_info,
+	{ "Object Information", "ncp.object_id_info", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_object_info_rtn_count,
+	{ "Object Information Count", "ncp.object_info_rtn_count", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_object_name,
+	{ "Object Name", "ncp.object_name", FT_UINT_STRING, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_object_name_len,
+	{ "Object Name", "ncp.object_name_len", FT_STRING, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_object_name_stringz,
+	{ "Object Name", "ncp.object_name_stringz", FT_STRINGZ, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_object_number,
+	{ "Object Number", "ncp.object_number", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_object_security,
+	{ "Object Security", "ncp.object_security", FT_UINT8, BASE_HEX, VALS(ncp_object_security_vals), 0x0, "", HFILL }},
+
+	{ &hf_ncp_object_type,
+	{ "Object Type", "ncp.object_type", FT_UINT16, BASE_HEX, VALS(ncp_object_type_vals), 0x0, "", HFILL }},
+
+	{ &hf_ncp_old_file_name,
+	{ "Old File Name", "ncp.old_file_name", FT_BYTES, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_old_file_size,
+	{ "Old File Size", "ncp.old_file_size", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_oldest_deleted_file_age_in_ticks,
+	{ "Oldest Deleted File Age in Ticks", "ncp.oldest_deleted_file_age_in_ticks", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_open_count,
+	{ "Open Count", "ncp.open_count", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_open_create_action,
+	{ "Open Create Action", "ncp.open_create_action", FT_UINT8, BASE_HEX, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_open_create_action_compressed,
+	{ "Compressed", "ncp.open_create_action_compressed", FT_BOOLEAN, 8, NULL, 0x8, "", HFILL }},
+
+	{ &hf_ncp_open_create_action_created,
+	{ "Created", "ncp.open_create_action_created", FT_BOOLEAN, 8, NULL, 0x2, "", HFILL }},
+
+	{ &hf_ncp_open_create_action_opened,
+	{ "Opened", "ncp.open_create_action_opened", FT_BOOLEAN, 8, NULL, 0x1, "", HFILL }},
+
+	{ &hf_ncp_open_create_action_read_only,
+	{ "Read Only", "ncp.open_create_action_read_only", FT_BOOLEAN, 8, NULL, 0x80, "", HFILL }},
+
+	{ &hf_ncp_open_create_action_replaced,
+	{ "Replaced", "ncp.open_create_action_replaced", FT_BOOLEAN, 8, NULL, 0x4, "", HFILL }},
+
+	{ &hf_ncp_open_create_mode,
+	{ "Open Create Mode", "ncp.open_create_mode", FT_UINT8, BASE_HEX, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_open_create_mode_create,
+	{ "Create new file or subdirectory (file or subdirectory cannot exist)", "ncp.open_create_mode_create", FT_BOOLEAN, 8, NULL, 0x8, "", HFILL }},
+
+	{ &hf_ncp_open_create_mode_open,
+	{ "Open existing file (file must exist)", "ncp.open_create_mode_open", FT_BOOLEAN, 8, NULL, 0x1, "", HFILL }},
+
+	{ &hf_ncp_open_create_mode_oplock,
+	{ "Open Callback (Op-Lock)", "ncp.open_create_mode_oplock", FT_BOOLEAN, 8, NULL, 0x80, "", HFILL }},
+
+	{ &hf_ncp_open_create_mode_replace,
+	{ "Replace existing file", "ncp.open_create_mode_replace", FT_BOOLEAN, 8, NULL, 0x2, "", HFILL }},
+
+	{ &hf_ncp_open_for_read_count,
+	{ "Open For Read Count", "ncp.open_for_read_count", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_open_for_write_count,
+	{ "Open For Write Count", "ncp.open_for_write_count", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_open_rights,
+	{ "Open Rights", "ncp.open_rights", FT_UINT8, BASE_HEX, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_open_rights_compat,
+	{ "Compatibility", "ncp.open_rights_compat", FT_BOOLEAN, 8, NULL, 0x10, "", HFILL }},
+
+	{ &hf_ncp_open_rights_deny_read,
+	{ "Deny Read", "ncp.open_rights_deny_read", FT_BOOLEAN, 8, NULL, 0x4, "", HFILL }},
+
+	{ &hf_ncp_open_rights_deny_write,
+	{ "Deny Write", "ncp.open_rights_deny_write", FT_BOOLEAN, 8, NULL, 0x8, "", HFILL }},
+
+	{ &hf_ncp_open_rights_read_only,
+	{ "Read Only", "ncp.open_rights_read_only", FT_BOOLEAN, 8, NULL, 0x1, "", HFILL }},
+
+	{ &hf_ncp_open_rights_write_only,
+	{ "Write Only", "ncp.open_rights_write_only", FT_BOOLEAN, 8, NULL, 0x2, "", HFILL }},
+
+	{ &hf_ncp_open_rights_write_thru,
+	{ "Write Through", "ncp.open_rights_write_thru", FT_BOOLEAN, 8, NULL, 0x40, "", HFILL }},
+
+	{ &hf_ncp_option_number,
+	{ "Option Number", "ncp.option_number", FT_UINT8, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_orig_num_cache_buff,
+	{ "Original Number Of Cache Buffers", "ncp.orig_num_cache_buff", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_original_size,
+	{ "Original Size", "ncp.original_size", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_os_language_id,
+	{ "OS Language ID", "ncp.os_language_id", FT_UINT8, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_os_major_version,
+	{ "OS Major Version", "ncp.os_major_version", FT_UINT8, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_os_minor_version,
+	{ "OS Minor Version", "ncp.os_minor_version", FT_UINT8, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_os_revision,
+	{ "OS Revision", "ncp.os_revision", FT_UINT8, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_other_file_fork_fat,
+	{ "Other File Fork FAT Entry", "ncp.other_file_fork_fat", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_other_file_fork_size,
+	{ "Other File Fork Size", "ncp.other_file_fork_size", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_outgoing_packet_discarded_no_turbo_buffer,
+	{ "Outgoing Packet Discarded No Turbo Buffer", "ncp.outgoing_packet_discarded_no_turbo_buffer", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_outstanding_compression_ios,
+	{ "Outstanding Compression IOs", "ncp.outstanding_compression_ios", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_outstanding_ios,
+	{ "Outstanding IOs", "ncp.outstanding_ios", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_packet_rs_too_small_count,
+	{ "Receive Packet Too Small Count", "ncp.packet_rs_too_small_count", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_packet_rx_misc_error_count,
+	{ "Receive Packet Misc Error Count", "ncp.packet_rx_misc_error_count", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_packet_rx_overflow_count,
+	{ "Receive Packet Overflow Count", "ncp.packet_rx_overflow_count", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_packet_rx_too_big_count,
+	{ "Receive Packet Too Big Count", "ncp.packet_rx_too_big_count", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_packet_tx_misc_error_count,
+	{ "Transmit Packet Misc Error Count", "ncp.packet_tx_misc_error_count", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_packet_tx_too_big_count,
+	{ "Transmit Packet Too Big Count", "ncp.packet_tx_too_big_count", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_packet_tx_too_small_count,
+	{ "Transmit Packet Too Small Count", "ncp.packet_tx_too_small_count", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_packets_discarded_by_hop_count,
+	{ "Packets Discarded By Hop Count", "ncp.packets_discarded_by_hop_count", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_packets_discarded_unknown_net,
+	{ "Packets Discarded Unknown Net", "ncp.packets_discarded_unknown_net", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_packets_from_invalid_connection,
+	{ "Packets From Invalid Connection", "ncp.packets_from_invalid_connection", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_packets_received_during_processing,
+	{ "Packets Received During Processing", "ncp.packets_received_during_processing", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_packets_with_bad_request_type,
+	{ "Packets With Bad Request Type", "ncp.packets_with_bad_request_type", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_packets_with_bad_sequence_number,
+	{ "Packets With Bad Sequence Number", "ncp.packets_with_bad_sequence_number", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_page_table_owner_flag,
+	{ "Page Table Owner", "ncp.page_table_owner_flag", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_parent_base_id,
+	{ "Parent Base ID", "ncp.parent_base_id", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_parent_directory_base,
+	{ "Parent Directory Base", "ncp.parent_directory_base", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_parent_dos_directory_base,
+	{ "Parent DOS Directory Base", "ncp.parent_dos_directory_base", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_parent_id,
+	{ "Parent ID", "ncp.parent_id", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_parent_object_number,
+	{ "Parent Object Number", "ncp.parent_object_number", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_password,
+	{ "Password", "ncp.password", FT_UINT_STRING, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_path,
+	{ "Path", "ncp.path", FT_UINT_STRING, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_path_and_name,
+	{ "Path and Name", "ncp.path_and_name", FT_STRINGZ, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_path_base,
+	{ "Path Base", "ncp.path_base", FT_UINT8, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_path_component_count,
+	{ "Path Component Count", "ncp.path_component_count", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_path_component_size,
+	{ "Path Component Size", "ncp.path_component_size", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_path_cookie_flags,
+	{ "Path Cookie Flags", "ncp.path_cookie_flags", FT_UINT16, BASE_HEX, VALS(ncp_path_cookie_flags_vals), 0x0, "", HFILL }},
+
+	{ &hf_ncp_path_count,
+	{ "Path Count", "ncp.path_count", FT_UINT8, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_pending_io_commands,
+	{ "Pending IO Commands", "ncp.pending_io_commands", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_percent_of_vol_used_by_dirs,
+	{ "Percent Of Volume Used By Directories", "ncp.percent_of_vol_used_by_dirs", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_physical_disk_channel,
+	{ "Physical Disk Channel", "ncp.physical_disk_channel", FT_UINT8, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_physical_disk_number,
+	{ "Physical Disk Number", "ncp.physical_disk_number", FT_UINT8, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_physical_drive_count,
+	{ "Physical Drive Count", "ncp.physical_drive_count", FT_UINT8, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_physical_drive_type,
+	{ "Physical Drive Type", "ncp.physical_drive_type", FT_UINT8, BASE_HEX, VALS(ncp_physical_drive_type_vals), 0x0, "", HFILL }},
+
+	{ &hf_ncp_physical_lock_threshold,
+	{ "Physical Lock Threshold", "ncp.physical_lock_threshold", FT_UINT8, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_physical_read_errors,
+	{ "Physical Read Errors", "ncp.physical_read_errors", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_physical_read_requests,
+	{ "Physical Read Requests", "ncp.physical_read_requests", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_physical_write_errors,
+	{ "Physical Write Errors", "ncp.physical_write_errors", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_physical_write_requests,
+	{ "Physical Write Requests", "ncp.physical_write_requests", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_poll_abort_conn,
+	{ "Poller Aborted The Connnection Count", "ncp.poll_abort_conn", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_poll_rem_old_out_of_order,
+	{ "Poller Removed Old Out Of Order Count", "ncp.poll_rem_old_out_of_order", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_positive_acknowledges_sent,
+	{ "Positive Acknowledges Sent", "ncp.positive_acknowledges_sent", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_post_poned_events,
+	{ "Postponed Events", "ncp.post_poned_events", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_pre_compressed_sectors,
+	{ "Precompressed Sectors", "ncp.pre_compressed_sectors", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_previous_control_packet,
+	{ "Previous Control Packet Count", "ncp.previous_control_packet", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_previous_record,
+	{ "Previous Record", "ncp.previous_record", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_primary_entry,
+	{ "Primary Entry", "ncp.primary_entry", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_print_flags,
+	{ "Print Flags", "ncp.print_flags", FT_UINT8, BASE_HEX, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_print_flags_banner,
+	{ "Print Banner Page", "ncp.print_flags_banner", FT_BOOLEAN, 8, NULL, 0x80, "", HFILL }},
+
+	{ &hf_ncp_print_flags_cr,
+	{ "Create", "ncp.print_flags_cr", FT_BOOLEAN, 8, NULL, 0x10, "", HFILL }},
+
+	{ &hf_ncp_print_flags_del_spool,
+	{ "Delete Spool File after Printing", "ncp.print_flags_del_spool", FT_BOOLEAN, 8, NULL, 0x20, "", HFILL }},
+
+	{ &hf_ncp_print_flags_exp_tabs,
+	{ "Expand Tabs in the File", "ncp.print_flags_exp_tabs", FT_BOOLEAN, 8, NULL, 0x40, "", HFILL }},
+
+	{ &hf_ncp_print_flags_ff,
+	{ "Suppress Form Feeds", "ncp.print_flags_ff", FT_BOOLEAN, 8, NULL, 0x8, "", HFILL }},
+
+	{ &hf_ncp_print_server_version,
+	{ "Print Server Version", "ncp.print_server_version", FT_UINT8, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_print_to_file_flag,
+	{ "Print to File Flag", "ncp.print_to_file_flag", FT_BOOLEAN, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_printer_halted,
+	{ "Printer Halted", "ncp.printer_halted", FT_UINT8, BASE_HEX, VALS(ncp_printer_halted_vals), 0x0, "", HFILL }},
+
+	{ &hf_ncp_printer_offline,
+	{ "Printer Off-Line", "ncp.printer_offline", FT_UINT8, BASE_HEX, VALS(ncp_printer_offline_vals), 0x0, "", HFILL }},
+
+	{ &hf_ncp_priority,
+	{ "Priority", "ncp.priority", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_privileges,
+	{ "Login Privileges", "ncp.privileges", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_pro_dos_info,
+	{ "Pro DOS Info", "ncp.pro_dos_info", FT_BYTES, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_processor_type,
+	{ "Processor Type", "ncp.processor_type", FT_UINT8, BASE_HEX, VALS(ncp_processor_type_vals), 0x0, "", HFILL }},
+
+	{ &hf_ncp_product_major_version,
+	{ "Product Major Version", "ncp.product_major_version", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_product_minor_version,
+	{ "Product Minor Version", "ncp.product_minor_version", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_product_revision_version,
+	{ "Product Revision Version", "ncp.product_revision_version", FT_UINT8, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_projected_comp_size,
+	{ "Projected Compression Size", "ncp.projected_comp_size", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_property_data,
+	{ "Property Data", "ncp.property_data", FT_BYTES, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_property_has_more_segments,
+	{ "Property Has More Segments", "ncp.property_has_more_segments", FT_UINT8, BASE_HEX, VALS(ncp_property_has_more_segments_vals), 0x0, "", HFILL }},
+
+	{ &hf_ncp_property_name,
+	{ "Property Name", "ncp.property_name", FT_UINT_STRING, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_property_name_16,
+	{ "Property Name", "ncp.property_name_16", FT_STRING, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_property_segment,
+	{ "Property Segment", "ncp.property_segment", FT_UINT8, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_property_type,
+	{ "Property Type", "ncp.property_type", FT_UINT8, BASE_HEX, VALS(ncp_property_type_vals), 0x0, "", HFILL }},
+
+	{ &hf_ncp_property_value,
+	{ "Property Value", "ncp.property_value", FT_STRING, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_proposed_max_size,
+	{ "Proposed Max Size", "ncp.proposed_max_size", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_protocol_board_num,
+	{ "Protocol Board Number", "ncp.protocol_board_num", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_protocol_flags,
+	{ "Protocol Flags", "ncp.protocol_flags", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_protocol_id,
+	{ "Protocol ID", "ncp.protocol_id", FT_BYTES, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_protocol_name,
+	{ "Protocol Name", "ncp.protocol_name", FT_UINT_STRING, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_protocol_number,
+	{ "Protocol Number", "ncp.protocol_number", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_purge_c_code,
+	{ "Purge Completion Code", "ncp.purge_c_code", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_purge_count,
+	{ "Purge Count", "ncp.purge_count", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_purge_flags,
+	{ "Purge Flags", "ncp.purge_flags", FT_UINT16, BASE_HEX, VALS(ncp_purge_flags_vals), 0x0, "", HFILL }},
+
+	{ &hf_ncp_purge_list,
+	{ "Purge List", "ncp.purge_list", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_purgeable_blocks,
+	{ "Purgeable Blocks", "ncp.purgeable_blocks", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_qms_version,
+	{ "QMS Version", "ncp.qms_version", FT_UINT8, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_queue_id,
+	{ "Queue ID", "ncp.queue_id", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_queue_name,
+	{ "Queue Name", "ncp.queue_name", FT_UINT_STRING, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_queue_start_position,
+	{ "Queue Start Position", "ncp.queue_start_position", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_queue_status,
+	{ "Queue Status", "ncp.queue_status", FT_UINT8, BASE_HEX, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_queue_status_new_jobs,
+	{ "Operator does not want to add jobs to the queue", "ncp.queue_status_new_jobs", FT_BOOLEAN, 8, NULL, 0x1, "", HFILL }},
+
+	{ &hf_ncp_queue_status_pserver,
+	{ "Operator does not want additional servers attaching", "ncp.queue_status_pserver", FT_BOOLEAN, 8, NULL, 0x2, "", HFILL }},
+
+	{ &hf_ncp_queue_status_svc_jobs,
+	{ "Operator does not want servers to service jobs", "ncp.queue_status_svc_jobs", FT_BOOLEAN, 8, NULL, 0x4, "", HFILL }},
+
+	{ &hf_ncp_queue_type,
+	{ "Queue Type", "ncp.queue_type", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_r_tag_num,
+	{ "Resource Tag Number", "ncp.r_tag_num", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_re_mirror_current_offset,
+	{ "ReMirror Current Offset", "ncp.re_mirror_current_offset", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_re_mirror_drive_number,
+	{ "ReMirror Drive Number", "ncp.re_mirror_drive_number", FT_UINT8, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_read_beyond_write,
+	{ "Read Beyond Write", "ncp.read_beyond_write", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_read_exist_blck,
+	{ "Read Existing Block Count", "ncp.read_exist_blck", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_read_exist_part_read,
+	{ "Read Existing Partial Read Count", "ncp.read_exist_part_read", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_read_exist_read_err,
+	{ "Read Existing Read Error Count", "ncp.read_exist_read_err", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_read_exist_write_wait,
+	{ "Read Existing Write Wait Count", "ncp.read_exist_write_wait", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_realloc_slot,
+	{ "Re-Allocate Slot Count", "ncp.realloc_slot", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_realloc_slot_came_too_soon,
+	{ "Re-Allocate Slot Came Too Soon Count", "ncp.realloc_slot_came_too_soon", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_rec_lock_count,
+	{ "Record Lock Count", "ncp.rec_lock_count", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_record_end,
+	{ "Record End", "ncp.record_end", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_record_in_use,
+	{ "Record in Use", "ncp.record_in_use", FT_UINT16, BASE_HEX, VALS(ncp_record_in_use_vals), 0x0, "", HFILL }},
+
+	{ &hf_ncp_record_start,
+	{ "Record Start", "ncp.record_start", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_redirected_printer,
+	{ "Redirected Printer", "ncp.redirected_printer", FT_UINT8, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_reexecute_request,
+	{ "Re-Execute Request Count", "ncp.reexecute_request", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_reference_count,
+	{ "Reference Count", "ncp.reference_count", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_relations_count,
+	{ "Relations Count", "ncp.relations_count", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_rem_cache_node,
+	{ "Remove Cache Node Count", "ncp.rem_cache_node", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_rem_cache_node_from_avail,
+	{ "Remove Cache Node From Avail Count", "ncp.rem_cache_node_from_avail", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_remote_max_packet_size,
+	{ "Remote Max Packet Size", "ncp.remote_max_packet_size", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_remote_target_id,
+	{ "Remote Target ID", "ncp.remote_target_id", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_removable_flag,
+	{ "Removable Flag", "ncp.removable_flag", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_remove_open_rights,
+	{ "Remove Open Rights", "ncp.remove_open_rights", FT_UINT8, BASE_HEX, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_remove_open_rights_comp,
+	{ "Compatibility", "ncp.remove_open_rights_comp", FT_BOOLEAN, 8, NULL, 0x10, "", HFILL }},
+
+	{ &hf_ncp_remove_open_rights_dr,
+	{ "Deny Read", "ncp.remove_open_rights_dr", FT_BOOLEAN, 8, NULL, 0x4, "", HFILL }},
+
+	{ &hf_ncp_remove_open_rights_dw,
+	{ "Deny Write", "ncp.remove_open_rights_dw", FT_BOOLEAN, 8, NULL, 0x8, "", HFILL }},
+
+	{ &hf_ncp_remove_open_rights_ro,
+	{ "Read Only", "ncp.remove_open_rights_ro", FT_BOOLEAN, 8, NULL, 0x1, "", HFILL }},
+
+	{ &hf_ncp_remove_open_rights_wo,
+	{ "Write Only", "ncp.remove_open_rights_wo", FT_BOOLEAN, 8, NULL, 0x2, "", HFILL }},
+
+	{ &hf_ncp_remove_open_rights_write_thru,
+	{ "Write Through", "ncp.remove_open_rights_write_thru", FT_BOOLEAN, 8, NULL, 0x40, "", HFILL }},
+
+	{ &hf_ncp_rename_flag,
+	{ "Rename Flag", "ncp.rename_flag", FT_UINT8, BASE_HEX, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_rename_flag_comp,
+	{ "Compatability allows files that are marked read only to be opened with read/write access", "ncp.rename_flag_comp", FT_BOOLEAN, 8, NULL, 0x2, "", HFILL }},
+
+	{ &hf_ncp_rename_flag_no,
+	{ "Name Only renames only the specified name space entry name", "ncp.rename_flag_no", FT_BOOLEAN, 8, NULL, 0x4, "", HFILL }},
+
+	{ &hf_ncp_rename_flag_ren,
+	{ "Rename to Myself allows file to be renamed to it's original name", "ncp.rename_flag_ren", FT_BOOLEAN, 8, NULL, 0x1, "", HFILL }},
+
+	{ &hf_ncp_replies_cancelled,
+	{ "Replies Cancelled", "ncp.replies_cancelled", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_reply_canceled,
+	{ "Reply Canceled Count", "ncp.reply_canceled", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_reply_queue_job_numbers,
+	{ "Reply Queue Job Numbers", "ncp.reply_queue_job_numbers", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_request_bit_map,
+	{ "Request Bit Map", "ncp.request_bit_map", FT_UINT16, BASE_HEX, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_request_bit_map_ratt,
+	{ "Return Attributes", "ncp.request_bit_map_ratt", FT_BOOLEAN, 16, NULL, 0x100, "", HFILL }},
+
+	{ &hf_ncp_request_bit_map_ret_acc_date,
+	{ "Access Date", "ncp.request_bit_map_ret_acc_date", FT_BOOLEAN, 16, NULL, 0x800, "", HFILL }},
+
+	{ &hf_ncp_request_bit_map_ret_acc_priv,
+	{ "Access Privileges", "ncp.request_bit_map_ret_acc_priv", FT_BOOLEAN, 16, NULL, 0x40, "", HFILL }},
+
+	{ &hf_ncp_request_bit_map_ret_afp_ent,
+	{ "AFP Entry ID", "ncp.request_bit_map_ret_afp_ent", FT_BOOLEAN, 16, NULL, 0x1, "", HFILL }},
+
+	{ &hf_ncp_request_bit_map_ret_afp_parent,
+	{ "AFP Parent Entry ID", "ncp.request_bit_map_ret_afp_parent", FT_BOOLEAN, 16, NULL, 0x200, "", HFILL }},
+
+	{ &hf_ncp_request_bit_map_ret_bak_date,
+	{ "Backup Date&Time", "ncp.request_bit_map_ret_bak_date", FT_BOOLEAN, 16, NULL, 0x2000, "", HFILL }},
+
+	{ &hf_ncp_request_bit_map_ret_cr_date,
+	{ "Creation Date", "ncp.request_bit_map_ret_cr_date", FT_BOOLEAN, 16, NULL, 0x400, "", HFILL }},
+
+	{ &hf_ncp_request_bit_map_ret_data_fork,
+	{ "Data Fork Length", "ncp.request_bit_map_ret_data_fork", FT_BOOLEAN, 16, NULL, 0x2, "", HFILL }},
+
+	{ &hf_ncp_request_bit_map_ret_finder,
+	{ "Finder Info", "ncp.request_bit_map_ret_finder", FT_BOOLEAN, 16, NULL, 0x4000, "", HFILL }},
+
+	{ &hf_ncp_request_bit_map_ret_long_nm,
+	{ "Long Name", "ncp.request_bit_map_ret_long_nm", FT_BOOLEAN, 16, NULL, 0x8000, "", HFILL }},
+
+	{ &hf_ncp_request_bit_map_ret_mod_date,
+	{ "Modify Date&Time", "ncp.request_bit_map_ret_mod_date", FT_BOOLEAN, 16, NULL, 0x1000, "", HFILL }},
+
+	{ &hf_ncp_request_bit_map_ret_num_off,
+	{ "Number of Offspring", "ncp.request_bit_map_ret_num_off", FT_BOOLEAN, 16, NULL, 0x8, "", HFILL }},
+
+	{ &hf_ncp_request_bit_map_ret_owner,
+	{ "Owner ID", "ncp.request_bit_map_ret_owner", FT_BOOLEAN, 16, NULL, 0x10, "", HFILL }},
+
+	{ &hf_ncp_request_bit_map_ret_res_fork,
+	{ "Resource Fork Length", "ncp.request_bit_map_ret_res_fork", FT_BOOLEAN, 16, NULL, 0x4, "", HFILL }},
+
+	{ &hf_ncp_request_bit_map_ret_short,
+	{ "Short Name", "ncp.request_bit_map_ret_short", FT_BOOLEAN, 16, NULL, 0x20, "", HFILL }},
+
+	{ &hf_ncp_request_code,
+	{ "Request Code", "ncp.request_code", FT_UINT8, BASE_HEX, VALS(ncp_request_code_vals), 0x0, "", HFILL }},
+
+	{ &hf_ncp_requests_reprocessed,
+	{ "Requests Reprocessed", "ncp.requests_reprocessed", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_reserved,
+	{ "Reserved", "ncp.reserved", FT_UINT8, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_reserved10,
+	{ "Reserved", "ncp.reserved10", FT_BYTES, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_reserved12,
+	{ "Reserved", "ncp.reserved12", FT_BYTES, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_reserved120,
+	{ "Reserved", "ncp.reserved120", FT_BYTES, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_reserved16,
+	{ "Reserved", "ncp.reserved16", FT_BYTES, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_reserved2,
+	{ "Reserved", "ncp.reserved2", FT_BYTES, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_reserved20,
+	{ "Reserved", "ncp.reserved20", FT_BYTES, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_reserved28,
+	{ "Reserved", "ncp.reserved28", FT_BYTES, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_reserved3,
+	{ "Reserved", "ncp.reserved3", FT_BYTES, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_reserved36,
+	{ "Reserved", "ncp.reserved36", FT_BYTES, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_reserved4,
+	{ "Reserved", "ncp.reserved4", FT_BYTES, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_reserved44,
+	{ "Reserved", "ncp.reserved44", FT_BYTES, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_reserved48,
+	{ "Reserved", "ncp.reserved48", FT_BYTES, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_reserved50,
+	{ "Reserved", "ncp.reserved50", FT_BYTES, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_reserved56,
+	{ "Reserved", "ncp.reserved56", FT_BYTES, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_reserved6,
+	{ "Reserved", "ncp.reserved6", FT_BYTES, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_reserved64,
+	{ "Reserved", "ncp.reserved64", FT_BYTES, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_reserved8,
+	{ "Reserved", "ncp.reserved8", FT_BYTES, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_reserved_or_directory_number,
+	{ "Reserved or Directory Number (see EAFlags)", "ncp.reserved_or_directory_number", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_resource_count,
+	{ "Resource Count", "ncp.resource_count", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_resource_fork_len,
+	{ "Resource Fork Len", "ncp.resource_fork_len", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_resource_fork_size,
+	{ "Resource Fork Size", "ncp.resource_fork_size", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_resource_name,
+	{ "Resource Name", "ncp.resource_name", FT_STRINGZ, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_resource_sig,
+	{ "Resource Signature", "ncp.resource_sig", FT_STRING, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_restore_time,
+	{ "Restore Time", "ncp.restore_time", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_restriction,
+	{ "Disk Space Restriction", "ncp.restriction", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_restrictions_enforced,
+	{ "Disk Restrictions Enforce Flag", "ncp.restrictions_enforced", FT_UINT8, BASE_HEX, VALS(ncp_restrictions_enforced_vals), 0x0, "", HFILL }},
+
+	{ &hf_ncp_ret_info_mask,
+	{ "Return Information", "ncp.ret_info_mask", FT_UINT16, BASE_HEX, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_ret_info_mask_actual,
+	{ "Return Actual Information", "ncp.ret_info_mask_actual", FT_BOOLEAN, 16, NULL, 0x4000, "", HFILL }},
+
+	{ &hf_ncp_ret_info_mask_alloc,
+	{ "Return Allocation Space Information", "ncp.ret_info_mask_alloc", FT_BOOLEAN, 16, NULL, 0x2, "", HFILL }},
+
+	{ &hf_ncp_ret_info_mask_arch,
+	{ "Return Archive Information", "ncp.ret_info_mask_arch", FT_BOOLEAN, 16, NULL, 0x40, "", HFILL }},
+
+	{ &hf_ncp_ret_info_mask_attr,
+	{ "Return Attribute Information", "ncp.ret_info_mask_attr", FT_BOOLEAN, 16, NULL, 0x4, "", HFILL }},
+
+	{ &hf_ncp_ret_info_mask_create,
+	{ "Return Creation Information", "ncp.ret_info_mask_create", FT_BOOLEAN, 16, NULL, 0x100, "", HFILL }},
+
+	{ &hf_ncp_ret_info_mask_dir,
+	{ "Return Directory Information", "ncp.ret_info_mask_dir", FT_BOOLEAN, 16, NULL, 0x400, "", HFILL }},
+
+	{ &hf_ncp_ret_info_mask_eattr,
+	{ "Return Extended Attributes Information", "ncp.ret_info_mask_eattr", FT_BOOLEAN, 16, NULL, 0x20, "", HFILL }},
+
+	{ &hf_ncp_ret_info_mask_fname,
+	{ "Return File Name Information", "ncp.ret_info_mask_fname", FT_BOOLEAN, 16, NULL, 0x1, "", HFILL }},
+
+	{ &hf_ncp_ret_info_mask_id,
+	{ "Return ID Information", "ncp.ret_info_mask_id", FT_BOOLEAN, 16, NULL, 0x1000, "", HFILL }},
+
+	{ &hf_ncp_ret_info_mask_logical,
+	{ "Return Logical Information", "ncp.ret_info_mask_logical", FT_BOOLEAN, 16, NULL, 0x8000, "", HFILL }},
+
+	{ &hf_ncp_ret_info_mask_mod,
+	{ "Return Modify Information", "ncp.ret_info_mask_mod", FT_BOOLEAN, 16, NULL, 0x80, "", HFILL }},
+
+	{ &hf_ncp_ret_info_mask_ns,
+	{ "Return Name Space Information", "ncp.ret_info_mask_ns", FT_BOOLEAN, 16, NULL, 0x200, "", HFILL }},
+
+	{ &hf_ncp_ret_info_mask_ns_attr,
+	{ "Return Name Space Attributes Information", "ncp.ret_info_mask_ns_attr", FT_BOOLEAN, 16, NULL, 0x2000, "", HFILL }},
+
+	{ &hf_ncp_ret_info_mask_rights,
+	{ "Return Rights Information", "ncp.ret_info_mask_rights", FT_BOOLEAN, 16, NULL, 0x800, "", HFILL }},
+
+	{ &hf_ncp_ret_info_mask_size,
+	{ "Return Size Information", "ncp.ret_info_mask_size", FT_BOOLEAN, 16, NULL, 0x8, "", HFILL }},
+
+	{ &hf_ncp_ret_info_mask_tspace,
+	{ "Return Total Space Information", "ncp.ret_info_mask_tspace", FT_BOOLEAN, 16, NULL, 0x10, "", HFILL }},
+
+	{ &hf_ncp_retry_tx_count,
+	{ "Transmit Retry Count", "ncp.retry_tx_count", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_return_info_count,
+	{ "Return Information Count", "ncp.return_info_count", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_returned_list_count,
+	{ "Returned List Count", "ncp.returned_list_count", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_rev_query_flag,
+	{ "Revoke Rights Query Flag", "ncp.rev_query_flag", FT_UINT8, BASE_HEX, VALS(ncp_rev_query_flag_vals), 0x0, "", HFILL }},
+
+	{ &hf_ncp_revision,
+	{ "Revision", "ncp.revision", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_revision_number,
+	{ "Revision", "ncp.revision_number", FT_UINT8, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_rights_grant_mask,
+	{ "Grant Rights", "ncp.rights_grant_mask", FT_UINT8, BASE_HEX, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_rights_grant_mask_create,
+	{ "Create", "ncp.rights_grant_mask_create", FT_BOOLEAN, 8, NULL, 0x8, "", HFILL }},
+
+	{ &hf_ncp_rights_grant_mask_del,
+	{ "Delete", "ncp.rights_grant_mask_del", FT_BOOLEAN, 8, NULL, 0x10, "", HFILL }},
+
+	{ &hf_ncp_rights_grant_mask_mod,
+	{ "Modify", "ncp.rights_grant_mask_mod", FT_BOOLEAN, 8, NULL, 0x80, "", HFILL }},
+
+	{ &hf_ncp_rights_grant_mask_open,
+	{ "Open", "ncp.rights_grant_mask_open", FT_BOOLEAN, 8, NULL, 0x4, "", HFILL }},
+
+	{ &hf_ncp_rights_grant_mask_parent,
+	{ "Parental", "ncp.rights_grant_mask_parent", FT_BOOLEAN, 8, NULL, 0x20, "", HFILL }},
+
+	{ &hf_ncp_rights_grant_mask_read,
+	{ "Read", "ncp.rights_grant_mask_read", FT_BOOLEAN, 8, NULL, 0x1, "", HFILL }},
+
+	{ &hf_ncp_rights_grant_mask_search,
+	{ "Search", "ncp.rights_grant_mask_search", FT_BOOLEAN, 8, NULL, 0x40, "", HFILL }},
+
+	{ &hf_ncp_rights_grant_mask_write,
+	{ "Write", "ncp.rights_grant_mask_write", FT_BOOLEAN, 8, NULL, 0x2, "", HFILL }},
+
+	{ &hf_ncp_rights_revoke_mask,
+	{ "Revoke Rights", "ncp.rights_revoke_mask", FT_UINT8, BASE_HEX, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_rights_revoke_mask_create,
+	{ "Create", "ncp.rights_revoke_mask_create", FT_BOOLEAN, 8, NULL, 0x8, "", HFILL }},
+
+	{ &hf_ncp_rights_revoke_mask_del,
+	{ "Delete", "ncp.rights_revoke_mask_del", FT_BOOLEAN, 8, NULL, 0x10, "", HFILL }},
+
+	{ &hf_ncp_rights_revoke_mask_mod,
+	{ "Modify", "ncp.rights_revoke_mask_mod", FT_BOOLEAN, 8, NULL, 0x80, "", HFILL }},
+
+	{ &hf_ncp_rights_revoke_mask_open,
+	{ "Open", "ncp.rights_revoke_mask_open", FT_BOOLEAN, 8, NULL, 0x4, "", HFILL }},
+
+	{ &hf_ncp_rights_revoke_mask_parent,
+	{ "Parental", "ncp.rights_revoke_mask_parent", FT_BOOLEAN, 8, NULL, 0x20, "", HFILL }},
+
+	{ &hf_ncp_rights_revoke_mask_read,
+	{ "Read", "ncp.rights_revoke_mask_read", FT_BOOLEAN, 8, NULL, 0x1, "", HFILL }},
+
+	{ &hf_ncp_rights_revoke_mask_search,
+	{ "Search", "ncp.rights_revoke_mask_search", FT_BOOLEAN, 8, NULL, 0x40, "", HFILL }},
+
+	{ &hf_ncp_rights_revoke_mask_write,
+	{ "Write", "ncp.rights_revoke_mask_write", FT_BOOLEAN, 8, NULL, 0x2, "", HFILL }},
+
+	{ &hf_ncp_rip_socket_num,
+	{ "RIP Socket Number", "ncp.rip_socket_num", FT_UINT16, BASE_HEX, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_route_hops,
+	{ "Hop Count", "ncp.route_hops", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_route_time,
+	{ "Route Time", "ncp.route_time", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_router_dn_flag,
+	{ "Router Down Flag", "ncp.router_dn_flag", FT_BOOLEAN, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_rpc_c_code,
+	{ "RPC Completion Code", "ncp.rpc_c_code", FT_UINT16, BASE_HEX, VALS(ncp_rpc_c_code_vals), 0x0, "", HFILL }},
+
+	{ &hf_ncp_rpy_nearest_srv_flag,
+	{ "Reply to Nearest Server Flag", "ncp.rpy_nearest_srv_flag", FT_BOOLEAN, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_rx_buffer_size,
+	{ "Receive Buffer Size", "ncp.rx_buffer_size", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_rx_buffers,
+	{ "Receive Buffers", "ncp.rx_buffers", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_rx_buffers_75,
+	{ "Receive Buffers Warning Level", "ncp.rx_buffers_75", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_rx_buffers_checked_out,
+	{ "Receive Buffers Checked Out Count", "ncp.rx_buffers_checked_out", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_s_day,
+	{ "Day", "ncp.s_day", FT_UINT8, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_s_day_of_week,
+	{ "Day of Week", "ncp.s_day_of_week", FT_UINT8, BASE_HEX, VALS(ncp_s_day_of_week_vals), 0x0, "", HFILL }},
+
+	{ &hf_ncp_s_hour,
+	{ "Hour", "ncp.s_hour", FT_UINT8, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_s_m_info,
+	{ "Storage Media Information", "ncp.s_m_info", FT_UINT8, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_s_minute,
+	{ "Minutes", "ncp.s_minute", FT_UINT8, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_s_module_name,
+	{ "Storage Module Name", "ncp.s_module_name", FT_STRINGZ, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_s_month,
+	{ "Month", "ncp.s_month", FT_UINT8, BASE_HEX, VALS(ncp_s_month_vals), 0x0, "", HFILL }},
+
+	{ &hf_ncp_s_offset_64bit,
+	{ "64bit Starting Offset", "ncp.s_offset_64bit", FT_BYTES, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_s_second,
+	{ "Seconds", "ncp.s_second", FT_UINT8, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_salvageable_file_entry_number,
+	{ "Salvageable File Entry Number", "ncp.salvageable_file_entry_number", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_sap_socket_number,
+	{ "SAP Socket Number", "ncp.sap_socket_number", FT_UINT16, BASE_HEX, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_sattr,
+	{ "Search Attributes", "ncp.sattr", FT_UINT8, BASE_HEX, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_sattr_archive,
+	{ "Archive", "ncp.sattr_archive", FT_BOOLEAN, 8, NULL, 0x20, "", HFILL }},
+
+	{ &hf_ncp_sattr_execute_confirm,
+	{ "Execute Confirm", "ncp.sattr_execute_confirm", FT_BOOLEAN, 8, NULL, 0x40, "", HFILL }},
+
+	{ &hf_ncp_sattr_exonly,
+	{ "Execute-Only Files Allowed", "ncp.sattr_exonly", FT_BOOLEAN, 8, NULL, 0x8, "", HFILL }},
+
+	{ &hf_ncp_sattr_hid,
+	{ "Hidden Files Allowed", "ncp.sattr_hid", FT_BOOLEAN, 8, NULL, 0x2, "", HFILL }},
+
+	{ &hf_ncp_sattr_ronly,
+	{ "Read-Only Files Allowed", "ncp.sattr_ronly", FT_BOOLEAN, 8, NULL, 0x1, "", HFILL }},
+
+	{ &hf_ncp_sattr_shareable,
+	{ "Shareable", "ncp.sattr_shareable", FT_BOOLEAN, 8, NULL, 0x80, "", HFILL }},
+
+	{ &hf_ncp_sattr_sub,
+	{ "Subdirectories Only", "ncp.sattr_sub", FT_BOOLEAN, 8, NULL, 0x10, "", HFILL }},
+
+	{ &hf_ncp_sattr_sys,
+	{ "System Files Allowed", "ncp.sattr_sys", FT_BOOLEAN, 8, NULL, 0x4, "", HFILL }},
+
+	{ &hf_ncp_saved_an_out_of_order_packet,
+	{ "Saved An Out Of Order Packet Count", "ncp.saved_an_out_of_order_packet", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_scan_items,
+	{ "Number of Items returned from Scan", "ncp.scan_items", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_search_att_archive,
+	{ "Archive", "ncp.search_att_archive", FT_BOOLEAN, 16, NULL, 0x20, "", HFILL }},
+
+	{ &hf_ncp_search_att_execute_confirm,
+	{ "Execute Confirm", "ncp.search_att_execute_confirm", FT_BOOLEAN, 16, NULL, 0x40, "", HFILL }},
+
+	{ &hf_ncp_search_att_execute_only,
+	{ "Execute-Only", "ncp.search_att_execute_only", FT_BOOLEAN, 16, NULL, 0x8, "", HFILL }},
+
+	{ &hf_ncp_search_att_hidden,
+	{ "Hidden Files Allowed", "ncp.search_att_hidden", FT_BOOLEAN, 16, NULL, 0x2, "", HFILL }},
+
+	{ &hf_ncp_search_att_low,
+	{ "Search Attributes", "ncp.search_att_low", FT_UINT16, BASE_HEX, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_search_att_read_only,
+	{ "Read-Only", "ncp.search_att_read_only", FT_BOOLEAN, 16, NULL, 0x1, "", HFILL }},
+
+	{ &hf_ncp_search_att_shareable,
+	{ "Shareable", "ncp.search_att_shareable", FT_BOOLEAN, 16, NULL, 0x80, "", HFILL }},
+
+	{ &hf_ncp_search_att_sub,
+	{ "Subdirectories Only", "ncp.search_att_sub", FT_BOOLEAN, 16, NULL, 0x10, "", HFILL }},
+
+	{ &hf_ncp_search_att_system,
+	{ "System", "ncp.search_att_system", FT_BOOLEAN, 16, NULL, 0x4, "", HFILL }},
+
+	{ &hf_ncp_search_attr_all_files,
+	{ "All Files and Directories", "ncp.search_attr_all_files", FT_BOOLEAN, 16, NULL, 0x8000, "", HFILL }},
+
+	{ &hf_ncp_search_bit_map,
+	{ "Search Bit Map", "ncp.search_bit_map", FT_UINT8, BASE_HEX, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_search_bit_map_files,
+	{ "Files", "ncp.search_bit_map_files", FT_BOOLEAN, 8, NULL, 0x8, "", HFILL }},
+
+	{ &hf_ncp_search_bit_map_hidden,
+	{ "Hidden", "ncp.search_bit_map_hidden", FT_BOOLEAN, 8, NULL, 0x1, "", HFILL }},
+
+	{ &hf_ncp_search_bit_map_sub,
+	{ "Subdirectory", "ncp.search_bit_map_sub", FT_BOOLEAN, 8, NULL, 0x4, "", HFILL }},
+
+	{ &hf_ncp_search_bit_map_sys,
+	{ "System", "ncp.search_bit_map_sys", FT_BOOLEAN, 8, NULL, 0x2, "", HFILL }},
+
+	{ &hf_ncp_search_conn_number,
+	{ "Search Connection Number", "ncp.search_conn_number", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_search_instance,
+	{ "Search Instance", "ncp.search_instance", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_search_number,
+	{ "Search Number", "ncp.search_number", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_search_pattern,
+	{ "Search Pattern", "ncp.search_pattern", FT_UINT_STRING, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_search_sequence,
+	{ "Search Sequence", "ncp.search_sequence", FT_BYTES, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_search_sequence_word,
+	{ "Search Sequence", "ncp.search_sequence_word", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_sec_rel_to_y2k,
+	{ "Seconds Relative to the Year 2000", "ncp.sec_rel_to_y2k", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_sector_size,
+	{ "Sector Size", "ncp.sector_size", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_sectors_per_block,
+	{ "Sectors Per Block", "ncp.sectors_per_block", FT_UINT8, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_sectors_per_cluster,
+	{ "Sectors Per Cluster", "ncp.sectors_per_cluster", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_sectors_per_cluster_long,
+	{ "Sectors Per Cluster", "ncp.sectors_per_cluster_long", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_sectors_per_track,
+	{ "Sectors Per Track", "ncp.sectors_per_track", FT_UINT8, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_security_equiv_list,
+	{ "Security Equivalent List", "ncp.security_equiv_list", FT_STRING, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_security_flag,
+	{ "Security Flag", "ncp.security_flag", FT_UINT8, BASE_HEX, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_security_restriction_version,
+	{ "Security Restriction Version", "ncp.security_restriction_version", FT_UINT8, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_semaphore_handle,
+	{ "Semaphore Handle", "ncp.semaphore_handle", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_semaphore_name,
+	{ "Semaphore Name", "ncp.semaphore_name", FT_UINT_STRING, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_semaphore_name_len,
+	{ "Semaphore Name Len", "ncp.semaphore_name_len", FT_UINT8, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_semaphore_open_count,
+	{ "Semaphore Open Count", "ncp.semaphore_open_count", FT_UINT8, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_semaphore_share_count,
+	{ "Semaphore Share Count", "ncp.semaphore_share_count", FT_UINT8, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_semaphore_time_out,
+	{ "Semaphore Time Out", "ncp.semaphore_time_out", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_semaphore_value,
+	{ "Semaphore Value", "ncp.semaphore_value", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_send_hold_off_message,
+	{ "Send Hold Off Message Count", "ncp.send_hold_off_message", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_send_status,
+	{ "Send Status", "ncp.send_status", FT_UINT8, BASE_HEX, VALS(ncp_send_status_vals), 0x0, "", HFILL }},
+
+	{ &hf_ncp_sent_a_dup_reply,
+	{ "Sent A Duplicate Reply Count", "ncp.sent_a_dup_reply", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_sent_pos_ack,
+	{ "Sent Positive Acknowledge Count", "ncp.sent_pos_ack", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_sequence_byte,
+	{ "Sequence", "ncp.sequence_byte", FT_UINT8, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_sequence_number,
+	{ "Sequence Number", "ncp.sequence_number", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_server_address,
+	{ "Server Address", "ncp.server_address", FT_BYTES, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_server_app_num,
+	{ "Server App Number", "ncp.server_app_num", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_server_id_number,
+	{ "Server ID", "ncp.server_id_number", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_server_info_flags,
+	{ "Server Information Flags", "ncp.server_info_flags", FT_UINT16, BASE_HEX, VALS(ncp_server_info_flags_vals), 0x0, "", HFILL }},
+
+	{ &hf_ncp_server_list_flags,
+	{ "Server List Flags", "ncp.server_list_flags", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_server_name,
+	{ "Server Name", "ncp.server_name", FT_STRING, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_server_name_len,
+	{ "Server Name", "ncp.server_name_len", FT_UINT_STRING, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_server_name_stringz,
+	{ "Server Name", "ncp.server_name_stringz", FT_STRINGZ, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_server_network_address,
+	{ "Server Network Address", "ncp.server_network_address", FT_BYTES, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_server_node,
+	{ "Server Node", "ncp.server_node", FT_BYTES, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_server_serial_number,
+	{ "Server Serial Number", "ncp.server_serial_number", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_server_station,
+	{ "Server Station", "ncp.server_station", FT_UINT8, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_server_station_list,
+	{ "Server Station List", "ncp.server_station_list", FT_UINT8, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_server_station_long,
+	{ "Server Station", "ncp.server_station_long", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_server_status_record,
+	{ "Server Status Record", "ncp.server_status_record", FT_STRING, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_server_task_number,
+	{ "Server Task Number", "ncp.server_task_number", FT_UINT8, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_server_task_number_long,
+	{ "Server Task Number", "ncp.server_task_number_long", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_server_type,
+	{ "Server Type", "ncp.server_type", FT_UINT16, BASE_HEX, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_server_utilization,
+	{ "Server Utilization", "ncp.server_utilization", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_server_utilization_percentage,
+	{ "Server Utilization Percentage", "ncp.server_utilization_percentage", FT_UINT8, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_set_cmd_category,
+	{ "Set Command Category", "ncp.set_cmd_category", FT_UINT8, BASE_HEX, VALS(ncp_set_cmd_category_vals), 0x0, "", HFILL }},
+
+	{ &hf_ncp_set_cmd_flags,
+	{ "Set Command Flags", "ncp.set_cmd_flags", FT_UINT8, BASE_HEX, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_set_cmd_name,
+	{ "Set Command Name", "ncp.set_cmd_name", FT_STRINGZ, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_set_cmd_type,
+	{ "Set Command Type", "ncp.set_cmd_type", FT_UINT8, BASE_HEX, VALS(ncp_set_cmd_type_vals), 0x0, "", HFILL }},
+
+	{ &hf_ncp_set_cmd_value_num,
+	{ "Set Command Value", "ncp.set_cmd_value_num", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_set_parm_name,
+	{ "Set Parameter Name", "ncp.set_parm_name", FT_STRINGZ, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_sft_error_table,
+	{ "SFT Error Table", "ncp.sft_error_table", FT_BYTES, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_sft_support_level,
+	{ "SFT Support Level", "ncp.sft_support_level", FT_UINT8, BASE_HEX, VALS(ncp_sft_support_level_vals), 0x0, "", HFILL }},
+
+	{ &hf_ncp_shareable_lock_count,
+	{ "Shareable Lock Count", "ncp.shareable_lock_count", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_shared_memory_addresses,
+	{ "Shared Memory Addresses", "ncp.shared_memory_addresses", FT_BYTES, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_short_name,
+	{ "Short Name", "ncp.short_name", FT_STRING, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_short_stack_name,
+	{ "Short Stack Name", "ncp.short_stack_name", FT_STRING, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_shouldnt_be_ack_here,
+	{ "Shouldn't Be ACKing Here Count", "ncp.shouldnt_be_ack_here", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_sibling_count,
+	{ "Sibling Count", "ncp.sibling_count", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_signature,
+	{ "Signature", "ncp.signature", FT_BOOLEAN, 8, NULL, 0x2, "", HFILL }},
+
+	{ &hf_ncp_sm_info_size,
+	{ "Storage Module Information Size", "ncp.sm_info_size", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_smids,
+	{ "Storage Media ID's", "ncp.smids", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_software_description,
+	{ "Software Description", "ncp.software_description", FT_STRING, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_software_driver_type,
+	{ "Software Driver Type", "ncp.software_driver_type", FT_UINT8, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_software_major_version_number,
+	{ "Software Major Version Number", "ncp.software_major_version_number", FT_UINT8, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_software_minor_version_number,
+	{ "Software Minor Version Number", "ncp.software_minor_version_number", FT_UINT8, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_someone_else_did_it_0,
+	{ "Someone Else Did It Count 0", "ncp.someone_else_did_it_0", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_someone_else_did_it_1,
+	{ "Someone Else Did It Count 1", "ncp.someone_else_did_it_1", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_someone_else_did_it_2,
+	{ "Someone Else Did It Count 2", "ncp.someone_else_did_it_2", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_someone_else_using_this_file,
+	{ "Someone Else Using This File Count", "ncp.someone_else_using_this_file", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_source_component_count,
+	{ "Source Path Component Count", "ncp.source_component_count", FT_UINT8, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_source_dir_handle,
+	{ "Source Directory Handle", "ncp.source_dir_handle", FT_UINT8, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_source_originate_time,
+	{ "Source Originate Time", "ncp.source_originate_time", FT_BYTES, BASE_HEX, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_source_path,
+	{ "Source Path", "ncp.source_path", FT_UINT_STRING, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_source_return_time,
+	{ "Source Return Time", "ncp.source_return_time", FT_BYTES, BASE_HEX, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_space_migrated,
+	{ "Space Migrated", "ncp.space_migrated", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_space_restriction_node_count,
+	{ "Space Restriction Node Count", "ncp.space_restriction_node_count", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_space_used,
+	{ "Space Used", "ncp.space_used", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_spx_abort_conn,
+	{ "SPX Aborted Connection", "ncp.spx_abort_conn", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_spx_bad_in_pkt,
+	{ "SPX Bad In Packet Count", "ncp.spx_bad_in_pkt", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_spx_bad_listen,
+	{ "SPX Bad Listen Count", "ncp.spx_bad_listen", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_spx_bad_send,
+	{ "SPX Bad Send Count", "ncp.spx_bad_send", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_spx_est_conn_fail,
+	{ "SPX Establish Connection Fail", "ncp.spx_est_conn_fail", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_spx_est_conn_req,
+	{ "SPX Establish Connection Requests", "ncp.spx_est_conn_req", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_spx_incoming_pkt,
+	{ "SPX Incoming Packet Count", "ncp.spx_incoming_pkt", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_spx_listen_con_fail,
+	{ "SPX Listen Connect Fail", "ncp.spx_listen_con_fail", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_spx_listen_con_req,
+	{ "SPX Listen Connect Request", "ncp.spx_listen_con_req", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_spx_listen_pkt,
+	{ "SPX Listen Packet Count", "ncp.spx_listen_pkt", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_spx_max_conn,
+	{ "SPX Max Connections Count", "ncp.spx_max_conn", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_spx_max_used_conn,
+	{ "SPX Max Used Connections", "ncp.spx_max_used_conn", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_spx_no_ses_listen,
+	{ "SPX No Session Listen ECB Count", "ncp.spx_no_ses_listen", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_spx_send,
+	{ "SPX Send Count", "ncp.spx_send", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_spx_send_fail,
+	{ "SPX Send Fail Count", "ncp.spx_send_fail", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_spx_supp_pkt,
+	{ "SPX Suppressed Packet Count", "ncp.spx_supp_pkt", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_spx_watch_dog,
+	{ "SPX Watch Dog Destination Session Count", "ncp.spx_watch_dog", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_spx_window_choke,
+	{ "SPX Window Choke Count", "ncp.spx_window_choke", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_src_name_space,
+	{ "Source Name Space", "ncp.src_name_space", FT_UINT8, BASE_HEX, VALS(ncp_src_name_space_vals), 0x0, "", HFILL }},
+
+	{ &hf_ncp_stack_count,
+	{ "Stack Count", "ncp.stack_count", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_stack_full_name_str,
+	{ "Stack Full Name", "ncp.stack_full_name_str", FT_UINT_STRING, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_stack_major_vn,
+	{ "Stack Major Version Number", "ncp.stack_major_vn", FT_UINT8, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_stack_minor_vn,
+	{ "Stack Minor Version Number", "ncp.stack_minor_vn", FT_UINT8, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_stack_number,
+	{ "Stack Number", "ncp.stack_number", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_stack_short_name,
+	{ "Stack Short Name", "ncp.stack_short_name", FT_STRING, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_start_conn_num,
+	{ "Starting Connection Number", "ncp.start_conn_num", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_start_number,
+	{ "Start Number", "ncp.start_number", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_start_number_flag,
+	{ "Start Number Flag", "ncp.start_number_flag", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_start_search_number,
+	{ "Start Search Number", "ncp.start_search_number", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_start_station_error,
+	{ "Start Station Error Count", "ncp.start_station_error", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_start_volume_number,
+	{ "Starting Volume Number", "ncp.start_volume_number", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_starting_block,
+	{ "Starting Block", "ncp.starting_block", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_starting_number,
+	{ "Starting Number", "ncp.starting_number", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_stat_major_version,
+	{ "Statistics Table Major Version", "ncp.stat_major_version", FT_UINT8, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_stat_minor_version,
+	{ "Statistics Table Minor Version", "ncp.stat_minor_version", FT_UINT8, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_stat_table_major_version,
+	{ "Statistics Table Major Version", "ncp.stat_table_major_version", FT_UINT8, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_stat_table_minor_version,
+	{ "Statistics Table Minor Version", "ncp.stat_table_minor_version", FT_UINT8, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_station_list,
+	{ "Station List", "ncp.station_list", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_station_number,
+	{ "Station Number", "ncp.station_number", FT_BYTES, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_status,
+	{ "Status", "ncp.status", FT_UINT16, BASE_HEX, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_status_flag_bits,
+	{ "Status Flag", "ncp.status_flag_bits", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_status_flag_bits_audit,
+	{ "Audit", "ncp.status_flag_bits_audit", FT_BOOLEAN, 32, NULL, 0x8, "", HFILL }},
+
+	{ &hf_ncp_status_flag_bits_comp,
+	{ "Compression", "ncp.status_flag_bits_comp", FT_BOOLEAN, 32, NULL, 0x2, "", HFILL }},
+
+	{ &hf_ncp_status_flag_bits_im_purge,
+	{ "Immediate Purge", "ncp.status_flag_bits_im_purge", FT_BOOLEAN, 32, NULL, 0x20, "", HFILL }},
+
+	{ &hf_ncp_status_flag_bits_migrate,
+	{ "Migration", "ncp.status_flag_bits_migrate", FT_BOOLEAN, 32, NULL, 0x4, "", HFILL }},
+
+	{ &hf_ncp_status_flag_bits_nss,
+	{ "NSS Volume", "ncp.status_flag_bits_nss", FT_BOOLEAN, 32, NULL, 0x80000000, "", HFILL }},
+
+	{ &hf_ncp_status_flag_bits_ro,
+	{ "Read Only", "ncp.status_flag_bits_ro", FT_BOOLEAN, 32, NULL, 0x10, "", HFILL }},
+
+	{ &hf_ncp_status_flag_bits_suballoc,
+	{ "Sub Allocation", "ncp.status_flag_bits_suballoc", FT_BOOLEAN, 32, NULL, 0x1, "", HFILL }},
+
+	{ &hf_ncp_still_doing_the_last_req,
+	{ "Still Doing The Last Request Count", "ncp.still_doing_the_last_req", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_still_transmitting,
+	{ "Still Transmitting Count", "ncp.still_transmitting", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_sub_alloc_clusters,
+	{ "Sub Alloc Clusters", "ncp.sub_alloc_clusters", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_sub_alloc_freeable_clusters,
+	{ "Sub Alloc Freeable Clusters", "ncp.sub_alloc_freeable_clusters", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_sub_directory,
+	{ "Subdirectory", "ncp.sub_directory", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_suggested_file_size,
+	{ "Suggested File Size", "ncp.suggested_file_size", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_support_module_id,
+	{ "Support Module ID", "ncp.support_module_id", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_synch_name,
+	{ "Synch Name", "ncp.synch_name", FT_UINT_STRING, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_system_interval_marker,
+	{ "System Interval Marker", "ncp.system_interval_marker", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_tab_size,
+	{ "Tab Size", "ncp.tab_size", FT_UINT8, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_target_client_list,
+	{ "Target Client List", "ncp.target_client_list", FT_UINT8, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_target_connection_number,
+	{ "Target Connection Number", "ncp.target_connection_number", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_target_dir_handle,
+	{ "Target Directory Handle", "ncp.target_dir_handle", FT_UINT8, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_target_entry_id,
+	{ "Target Entry ID", "ncp.target_entry_id", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_target_execution_time,
+	{ "Target Execution Time", "ncp.target_execution_time", FT_BYTES, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_target_file_handle,
+	{ "Target File Handle", "ncp.target_file_handle", FT_BYTES, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_target_file_offset,
+	{ "Target File Offset", "ncp.target_file_offset", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_target_message,
+	{ "Message", "ncp.target_message", FT_UINT_STRING, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_target_ptr,
+	{ "Target Printer", "ncp.target_ptr", FT_UINT8, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_target_receive_time,
+	{ "Target Receive Time", "ncp.target_receive_time", FT_BYTES, BASE_HEX, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_target_server_id_number,
+	{ "Target Server ID Number", "ncp.target_server_id_number", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_target_transmit_time,
+	{ "Target Transmit Time", "ncp.target_transmit_time", FT_BYTES, BASE_HEX, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_task_num_byte,
+	{ "Task Number", "ncp.task_num_byte", FT_UINT8, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_task_number_word,
+	{ "Task Number", "ncp.task_number_word", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_text_job_description,
+	{ "Text Job Description", "ncp.text_job_description", FT_STRING, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_thrashing_count,
+	{ "Thrashing Count", "ncp.thrashing_count", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_time_to_net,
+	{ "Time To Net", "ncp.time_to_net", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_timeout_limit,
+	{ "Timeout Limit", "ncp.timeout_limit", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_timesync_status_active,
+	{ "Time Synchronization is Active", "ncp.timesync_status_active", FT_BOOLEAN, 32, NULL, 0x4, "", HFILL }},
+
+	{ &hf_ncp_timesync_status_ext_sync,
+	{ "External Clock Status", "ncp.timesync_status_ext_sync", FT_BOOLEAN, 32, NULL, 0xf0000, "", HFILL }},
+
+	{ &hf_ncp_timesync_status_external,
+	{ "External Time Synchronization Active", "ncp.timesync_status_external", FT_BOOLEAN, 32, NULL, 0x8, "", HFILL }},
+
+	{ &hf_ncp_timesync_status_flags,
+	{ "Timesync Status", "ncp.timesync_status_flags", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_timesync_status_net_sync,
+	{ "Time is Synchronized to the Network", "ncp.timesync_status_net_sync", FT_BOOLEAN, 32, NULL, 0x2, "", HFILL }},
+
+	{ &hf_ncp_timesync_status_server_type,
+	{ "Time Server Type", "ncp.timesync_status_server_type", FT_UINT32, BASE_HEX, VALS(ncp_timesync_status_server_type_vals), 0x700, "", HFILL }},
+
+	{ &hf_ncp_timesync_status_sync,
+	{ "Time is Synchronized", "ncp.timesync_status_sync", FT_BOOLEAN, 32, NULL, 0x1, "", HFILL }},
+
+	{ &hf_ncp_too_many_ack_frag,
+	{ "Too Many ACK Fragments Count", "ncp.too_many_ack_frag", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_too_many_hops,
+	{ "Too Many Hops", "ncp.too_many_hops", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_total_blks_to_dcompress,
+	{ "Total Blocks To Decompress", "ncp.total_blks_to_dcompress", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_total_blocks,
+	{ "Total Blocks", "ncp.total_blocks", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_total_cache_writes,
+	{ "Total Cache Writes", "ncp.total_cache_writes", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_total_changed_fats,
+	{ "Total Changed FAT Entries", "ncp.total_changed_fats", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_total_cnt_blocks,
+	{ "Total Count Blocks", "ncp.total_cnt_blocks", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_total_common_cnts,
+	{ "Total Common Counts", "ncp.total_common_cnts", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_total_dir_entries,
+	{ "Total Directory Entries", "ncp.total_dir_entries", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_total_directory_slots,
+	{ "Total Directory Slots", "ncp.total_directory_slots", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_total_extended_directory_extants,
+	{ "Total Extended Directory Extants", "ncp.total_extended_directory_extants", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_total_file_service_packets,
+	{ "Total File Service Packets", "ncp.total_file_service_packets", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_total_files_opened,
+	{ "Total Files Opened", "ncp.total_files_opened", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_total_lfs_counters,
+	{ "Total LFS Counters", "ncp.total_lfs_counters", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_total_offspring,
+	{ "Total Offspring", "ncp.total_offspring", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_total_other_packets,
+	{ "Total Other Packets", "ncp.total_other_packets", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_total_queue_jobs,
+	{ "Total Queue Jobs", "ncp.total_queue_jobs", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_total_read_requests,
+	{ "Total Read Requests", "ncp.total_read_requests", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_total_request,
+	{ "Total Requests", "ncp.total_request", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_total_request_packets,
+	{ "Total Request Packets", "ncp.total_request_packets", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_total_routed_packets,
+	{ "Total Routed Packets", "ncp.total_routed_packets", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_total_rx_packet_count,
+	{ "Total Receive Packet Count", "ncp.total_rx_packet_count", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_total_rx_packets,
+	{ "Total Receive Packets", "ncp.total_rx_packets", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_total_rx_pkts,
+	{ "Total Receive Packets", "ncp.total_rx_pkts", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_total_server_memory,
+	{ "Total Server Memory", "ncp.total_server_memory", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_total_stream_size_struct_space_alloc,
+	{ "Total Data Stream Disk Space Alloc", "ncp.total_stream_size_struct_space_alloc", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_total_trans_backed_out,
+	{ "Total Transactions Backed Out", "ncp.total_trans_backed_out", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_total_trans_performed,
+	{ "Total Transactions Performed", "ncp.total_trans_performed", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_total_tx_packet_count,
+	{ "Total Transmit Packet Count", "ncp.total_tx_packet_count", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_total_tx_packets,
+	{ "Total Transmit Packets", "ncp.total_tx_packets", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_total_tx_pkts,
+	{ "Total Transmit Packets", "ncp.total_tx_pkts", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_total_unfilled_backout_requests,
+	{ "Total Unfilled Backout Requests", "ncp.total_unfilled_backout_requests", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_total_volume_clusters,
+	{ "Total Volume Clusters", "ncp.total_volume_clusters", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_total_write_requests,
+	{ "Total Write Requests", "ncp.total_write_requests", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_total_write_trans_performed,
+	{ "Total Write Transactions Performed", "ncp.total_write_trans_performed", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_track_on_flag,
+	{ "Track On Flag", "ncp.track_on_flag", FT_BOOLEAN, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_transaction_disk_space,
+	{ "Transaction Disk Space", "ncp.transaction_disk_space", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_transaction_fat_allocations,
+	{ "Transaction FAT Allocations", "ncp.transaction_fat_allocations", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_transaction_file_size_changes,
+	{ "Transaction File Size Changes", "ncp.transaction_file_size_changes", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_transaction_files_truncated,
+	{ "Transaction Files Truncated", "ncp.transaction_files_truncated", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_transaction_number,
+	{ "Transaction Number", "ncp.transaction_number", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_transaction_tracking_enabled,
+	{ "Transaction Tracking Enabled", "ncp.transaction_tracking_enabled", FT_UINT8, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_transaction_tracking_supported,
+	{ "Transaction Tracking Supported", "ncp.transaction_tracking_supported", FT_UINT8, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_transaction_volume_number,
+	{ "Transaction Volume Number", "ncp.transaction_volume_number", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_transport_addr,
+	{ "Transport Address", "ncp.transport_addr", FT_UINT_BYTES, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_transport_type,
+	{ "Communications Type", "ncp.transport_type", FT_UINT8, BASE_HEX, VALS(ncp_transport_type_vals), 0x0, "", HFILL }},
+
+	{ &hf_ncp_trustee_id_set,
+	{ "Trustee ID", "ncp.trustee_id_set", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_trustee_list_node_count,
+	{ "Trustee List Node Count", "ncp.trustee_list_node_count", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_trustee_rights_create,
+	{ "Create", "ncp.trustee_rights_create", FT_BOOLEAN, 16, NULL, 0x8, "", HFILL }},
+
+	{ &hf_ncp_trustee_rights_del,
+	{ "Delete", "ncp.trustee_rights_del", FT_BOOLEAN, 16, NULL, 0x10, "", HFILL }},
+
+	{ &hf_ncp_trustee_rights_low,
+	{ "Trustee Rights", "ncp.trustee_rights_low", FT_UINT16, BASE_HEX, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_trustee_rights_modify,
+	{ "Modify", "ncp.trustee_rights_modify", FT_BOOLEAN, 16, NULL, 0x80, "", HFILL }},
+
+	{ &hf_ncp_trustee_rights_open,
+	{ "Open", "ncp.trustee_rights_open", FT_BOOLEAN, 16, NULL, 0x4, "", HFILL }},
+
+	{ &hf_ncp_trustee_rights_parent,
+	{ "Parental", "ncp.trustee_rights_parent", FT_BOOLEAN, 16, NULL, 0x20, "", HFILL }},
+
+	{ &hf_ncp_trustee_rights_read,
+	{ "Read", "ncp.trustee_rights_read", FT_BOOLEAN, 16, NULL, 0x1, "", HFILL }},
+
+	{ &hf_ncp_trustee_rights_search,
+	{ "Search", "ncp.trustee_rights_search", FT_BOOLEAN, 16, NULL, 0x40, "", HFILL }},
+
+	{ &hf_ncp_trustee_rights_super,
+	{ "Supervisor", "ncp.trustee_rights_super", FT_BOOLEAN, 16, NULL, 0x100, "", HFILL }},
+
+	{ &hf_ncp_trustee_rights_write,
+	{ "Write", "ncp.trustee_rights_write", FT_BOOLEAN, 16, NULL, 0x2, "", HFILL }},
+
+	{ &hf_ncp_trustee_set_number,
+	{ "Trustee Set Number", "ncp.trustee_set_number", FT_UINT8, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_try_to_write_too_much,
+	{ "Trying To Write Too Much Count", "ncp.try_to_write_too_much", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_ttl_comp_blks,
+	{ "Total Compression Blocks", "ncp.ttl_comp_blks", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_ttl_ds_disk_space_alloc,
+	{ "Total Streams Space Allocated", "ncp.ttl_ds_disk_space_alloc", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_ttl_eas,
+	{ "Total EA's", "ncp.ttl_eas", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_ttl_eas_data_size,
+	{ "Total EA's Data Size", "ncp.ttl_eas_data_size", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_ttl_eas_key_size,
+	{ "Total EA's Key Size", "ncp.ttl_eas_key_size", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_ttl_inter_blks,
+	{ "Total Intermediate Blocks", "ncp.ttl_inter_blks", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_ttl_migrated_size,
+	{ "Total Migrated Size", "ncp.ttl_migrated_size", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_ttl_num_of_r_tags,
+	{ "Total Number of Resource Tags", "ncp.ttl_num_of_r_tags", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_ttl_num_of_set_cmds,
+	{ "Total Number of Set Commands", "ncp.ttl_num_of_set_cmds", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_ttl_pckts_routed,
+	{ "Total Packets Routed", "ncp.ttl_pckts_routed", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_ttl_pckts_srvcd,
+	{ "Total Packets Serviced", "ncp.ttl_pckts_srvcd", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_ttl_values_length,
+	{ "Total Values Length", "ncp.ttl_values_length", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_ttl_write_data_size,
+	{ "Total Write Data Size", "ncp.ttl_write_data_size", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_tts_flag,
+	{ "Transaction Tracking Flag", "ncp.tts_flag", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_tts_level,
+	{ "TTS Level", "ncp.tts_level", FT_UINT8, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_turbo_fat_build_failed,
+	{ "Turbo FAT Build Failed Count", "ncp.turbo_fat_build_failed", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_turbo_used_for_file_service,
+	{ "Turbo Used For File Service", "ncp.turbo_used_for_file_service", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_un_claimed_packets,
+	{ "Unclaimed Packets", "ncp.un_claimed_packets", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_un_compressable_data_streams_count,
+	{ "Uncompressable Data Streams Count", "ncp.un_compressable_data_streams_count", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_un_used,
+	{ "Unused", "ncp.un_used", FT_UINT8, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_un_used_directory_entries,
+	{ "Unused Directory Entries", "ncp.un_used_directory_entries", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_un_used_extended_directory_extants,
+	{ "Unused Extended Directory Extants", "ncp.un_used_extended_directory_extants", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_unclaimed_packets,
+	{ "Unclaimed Packets", "ncp.unclaimed_packets", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_undefined_28,
+	{ "Undefined", "ncp.undefined_28", FT_BYTES, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_undefined_8,
+	{ "Undefined", "ncp.undefined_8", FT_BYTES, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_unique_id,
+	{ "Unique ID", "ncp.unique_id", FT_UINT8, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_unknown_network,
+	{ "Unknown Network", "ncp.unknown_network", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_unused_disk_blocks,
+	{ "Unused Disk Blocks", "ncp.unused_disk_blocks", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_update_date,
+	{ "Update Date", "ncp.update_date", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_update_id,
+	{ "Update ID", "ncp.update_id", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_update_time,
+	{ "Update Time", "ncp.update_time", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_used_blocks,
+	{ "Used Blocks", "ncp.used_blocks", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_used_space,
+	{ "Used Space", "ncp.used_space", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_user_id,
+	{ "User ID", "ncp.user_id", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_user_info_audit_conn,
+	{ "Audit Connection Recorded", "ncp.user_info_audit_conn", FT_BOOLEAN, 16, NULL, 0x40, "", HFILL }},
+
+	{ &hf_ncp_user_info_audited,
+	{ "Audited", "ncp.user_info_audited", FT_BOOLEAN, 16, NULL, 0x4, "", HFILL }},
+
+	{ &hf_ncp_user_info_being_abort,
+	{ "Being Aborted", "ncp.user_info_being_abort", FT_BOOLEAN, 16, NULL, 0x2, "", HFILL }},
+
+	{ &hf_ncp_user_info_bindery,
+	{ "Bindery Connection", "ncp.user_info_bindery", FT_BOOLEAN, 16, NULL, 0x400, "", HFILL }},
+
+	{ &hf_ncp_user_info_dsaudit_conn,
+	{ "DS Audit Connection Recorded", "ncp.user_info_dsaudit_conn", FT_BOOLEAN, 16, NULL, 0x80, "", HFILL }},
+
+	{ &hf_ncp_user_info_held_req,
+	{ "Held Requests", "ncp.user_info_held_req", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_user_info_int_login,
+	{ "Internal Login", "ncp.user_info_int_login", FT_BOOLEAN, 16, NULL, 0x200, "", HFILL }},
+
+	{ &hf_ncp_user_info_logged_in,
+	{ "Logged In", "ncp.user_info_logged_in", FT_BOOLEAN, 16, NULL, 0x1, "", HFILL }},
+
+	{ &hf_ncp_user_info_logout,
+	{ "Logout in Progress", "ncp.user_info_logout", FT_BOOLEAN, 16, NULL, 0x100, "", HFILL }},
+
+	{ &hf_ncp_user_info_mac_station,
+	{ "MAC Station", "ncp.user_info_mac_station", FT_BOOLEAN, 16, NULL, 0x10, "", HFILL }},
+
+	{ &hf_ncp_user_info_need_sec,
+	{ "Needs Security Change", "ncp.user_info_need_sec", FT_BOOLEAN, 16, NULL, 0x8, "", HFILL }},
+
+	{ &hf_ncp_user_info_temp_authen,
+	{ "Temporary Authenticated", "ncp.user_info_temp_authen", FT_BOOLEAN, 16, NULL, 0x20, "", HFILL }},
+
+	{ &hf_ncp_user_info_ttl_bytes_rd,
+	{ "Total Bytes Read", "ncp.user_info_ttl_bytes_rd", FT_BYTES, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_user_info_ttl_bytes_wrt,
+	{ "Total Bytes Written", "ncp.user_info_ttl_bytes_wrt", FT_BYTES, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_user_info_use_count,
+	{ "Use Count", "ncp.user_info_use_count", FT_UINT16, BASE_HEX, VALS(ncp_user_info_use_count_vals), 0x0, "", HFILL }},
+
+	{ &hf_ncp_user_login_allowed,
+	{ "Login Status", "ncp.user_login_allowed", FT_UINT8, BASE_HEX, VALS(ncp_user_login_allowed_vals), 0x0, "", HFILL }},
+
+	{ &hf_ncp_user_name,
+	{ "User Name", "ncp.user_name", FT_UINT_STRING, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_user_name_16,
+	{ "User Name", "ncp.user_name_16", FT_STRING, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_uts_time_in_seconds,
+	{ "UTC Time in Seconds", "ncp.uts_time_in_seconds", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_valid_bfrs_reused,
+	{ "Valid Buffers Reused", "ncp.valid_bfrs_reused", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_value_available,
+	{ "Value Available", "ncp.value_available", FT_UINT8, BASE_HEX, VALS(ncp_value_available_vals), 0x0, "", HFILL }},
+
+	{ &hf_ncp_vap_version,
+	{ "VAP Version", "ncp.vap_version", FT_UINT8, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_variable_bit_mask,
+	{ "Variable Bit Mask", "ncp.variable_bit_mask", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_variable_bits_defined,
+	{ "Variable Bits Defined", "ncp.variable_bits_defined", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_vconsole_rev,
+	{ "Console Revision", "ncp.vconsole_rev", FT_UINT8, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_vconsole_ver,
+	{ "Console Version", "ncp.vconsole_ver", FT_UINT8, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_verb,
+	{ "Verb", "ncp.verb", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_verb_data,
+	{ "Verb Data", "ncp.verb_data", FT_UINT8, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_version,
+	{ "Version", "ncp.version", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_version_number,
+	{ "Version", "ncp.version_number", FT_UINT8, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_vert_location,
+	{ "Vertical Location", "ncp.vert_location", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_virtual_console_version,
+	{ "Virtual Console Version", "ncp.virtual_console_version", FT_UINT8, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_vol_info_reply_len,
+	{ "Volume Information Reply Length", "ncp.vol_info_reply_len", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_volume_active_count,
+	{ "Volume Active Count", "ncp.volume_active_count", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_volume_cached_flag,
+	{ "Volume Cached Flag", "ncp.volume_cached_flag", FT_UINT8, BASE_HEX, VALS(ncp_volume_cached_flag_vals), 0x0, "", HFILL }},
+
+	{ &hf_ncp_volume_hashed_flag,
+	{ "Volume Hashed Flag", "ncp.volume_hashed_flag", FT_UINT8, BASE_HEX, VALS(ncp_volume_hashed_flag_vals), 0x0, "", HFILL }},
+
+	{ &hf_ncp_volume_id,
+	{ "Volume ID", "ncp.volume_id", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_volume_last_modified_date,
+	{ "Volume Last Modified Date", "ncp.volume_last_modified_date", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_volume_last_modified_time,
+	{ "Volume Last Modified Time", "ncp.volume_last_modified_time", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_volume_mounted_flag,
+	{ "Volume Mounted Flag", "ncp.volume_mounted_flag", FT_UINT8, BASE_HEX, VALS(ncp_volume_mounted_flag_vals), 0x0, "", HFILL }},
+
+	{ &hf_ncp_volume_name,
+	{ "Volume Name", "ncp.volume_name", FT_STRING, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_volume_name_len,
+	{ "Volume Name", "ncp.volume_name_len", FT_UINT_STRING, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_volume_name_stringz,
+	{ "Volume Name", "ncp.volume_name_stringz", FT_STRINGZ, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_volume_number,
+	{ "Volume Number", "ncp.volume_number", FT_UINT8, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_volume_number_long,
+	{ "Volume Number", "ncp.volume_number_long", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_volume_reference_count,
+	{ "Volume Reference Count", "ncp.volume_reference_count", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_volume_removable_flag,
+	{ "Volume Removable Flag", "ncp.volume_removable_flag", FT_UINT8, BASE_HEX, VALS(ncp_volume_removable_flag_vals), 0x0, "", HFILL }},
+
+	{ &hf_ncp_volume_request_flags,
+	{ "Volume Request Flags", "ncp.volume_request_flags", FT_UINT16, BASE_HEX, VALS(ncp_volume_request_flags_vals), 0x0, "", HFILL }},
+
+	{ &hf_ncp_volume_segment_dev_num,
+	{ "Volume Segment Device Number", "ncp.volume_segment_dev_num", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_volume_segment_offset,
+	{ "Volume Segment Offset", "ncp.volume_segment_offset", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_volume_segment_size,
+	{ "Volume Segment Size", "ncp.volume_segment_size", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_volume_size_in_clusters,
+	{ "Volume Size in Clusters", "ncp.volume_size_in_clusters", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_volume_type,
+	{ "Volume Type", "ncp.volume_type", FT_UINT16, BASE_HEX, VALS(ncp_volume_type_vals), 0x0, "", HFILL }},
+
+	{ &hf_ncp_volume_use_count,
+	{ "Volume Use Count", "ncp.volume_use_count", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_volumes_supported_max,
+	{ "Volumes Supported Max", "ncp.volumes_supported_max", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_wait_node,
+	{ "Wait Node Count", "ncp.wait_node", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_wait_node_alloc_fail,
+	{ "Wait Node Alloc Failure Count", "ncp.wait_node_alloc_fail", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_wait_on_sema,
+	{ "Wait On Semaphore Count", "ncp.wait_on_sema", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_wait_till_dirty_blcks_dec,
+	{ "Wait Till Dirty Blocks Decrease Count", "ncp.wait_till_dirty_blcks_dec", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_wait_time,
+	{ "Wait Time", "ncp.wait_time", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_wasted_server_memory,
+	{ "Wasted Server Memory", "ncp.wasted_server_memory", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_write_curr_trans,
+	{ "Write Currently Transmitting Count", "ncp.write_curr_trans", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_write_didnt_need_but_req_ack,
+	{ "Write Didn't Need But Requested ACK Count", "ncp.write_didnt_need_but_req_ack", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_write_didnt_need_this_frag,
+	{ "Write Didn't Need This Fragment Count", "ncp.write_didnt_need_this_frag", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_write_dup_req,
+	{ "Write Duplicate Request Count", "ncp.write_dup_req", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_write_err,
+	{ "Write Error Count", "ncp.write_err", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_write_got_an_ack0,
+	{ "Write Got An ACK Count 0", "ncp.write_got_an_ack0", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_write_got_an_ack1,
+	{ "Write Got An ACK Count 1", "ncp.write_got_an_ack1", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_write_held_off,
+	{ "Write Held Off Count", "ncp.write_held_off", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_write_held_off_with_dup,
+	{ "Write Held Off With Duplicate Request", "ncp.write_held_off_with_dup", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_write_incon_packet_len,
+	{ "Write Inconsistent Packet Lengths Count", "ncp.write_incon_packet_len", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_write_out_of_mem_for_ctl_nodes,
+	{ "Write Out Of Memory For Control Nodes Count", "ncp.write_out_of_mem_for_ctl_nodes", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_write_timeout,
+	{ "Write Time Out Count", "ncp.write_timeout", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_write_too_many_buf_check,
+	{ "Write Too Many Buffers Checked Out Count", "ncp.write_too_many_buf_check", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_write_trash_dup_req,
+	{ "Write Trashed Duplicate Request Count", "ncp.write_trash_dup_req", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_write_trash_packet,
+	{ "Write Trashed Packet Count", "ncp.write_trash_packet", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_wrt_blck_cnt,
+	{ "Write Block Count", "ncp.wrt_blck_cnt", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_wrt_entire_blck,
+	{ "Write Entire Block Count", "ncp.wrt_entire_blck", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	{ &hf_ncp_year,
+	{ "Year", "ncp.year", FT_UINT8, BASE_HEX, VALS(ncp_year_vals), 0x0, "", HFILL }},
+
+	{ &hf_ncp_zero_ack_frag,
+	{ "Zero ACK Fragment Count", "ncp.zero_ack_frag", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
+
+	};
+
+	static gint *ett[] = {
+		&ett_ncp_access_mode_bitfield,
+		&ett_ncp_access_privileges_bitfield,
+		&ett_ncp_access_rights_mask_bitfield,
+		&ett_ncp_access_rights_mask_word_bitfield,
+		&ett_ncp_action_flag_bitfield,
+		&ett_ncp_attr_def_16_bitfield,
+		&ett_ncp_attr_def_32_bitfield,
+		&ett_ncp_attr_def_bitfield,
+		&ett_ncp_change_bits_bitfield,
+		&ett_ncp_conn_ctrl_bits_bitfield,
+		&ett_ncp_desired_access_rights_bitfield,
+		&ett_ncp_ea_access_flag_bitfield,
+		&ett_ncp_effective_rights_bitfield,
+		&ett_ncp_enum_info_mask_bitfield,
+		&ett_ncp_ext_info_bitfield,
+		&ett_ncp_finder_attr_bitfield,
+		&ett_ncp_info_flags_bitfield,
+		&ett_ncp_info_mask_bitfield,
+		&ett_ncp_inheritance_revoke_mask_bitfield,
+		&ett_ncp_inherited_rights_mask_bitfield,
+		&ett_ncp_job_control_flags_bitfield,
+		&ett_ncp_job_control_flags_word_bitfield,
+		&ett_ncp_log_file_flag_high_bitfield,
+		&ett_ncp_log_file_flag_low_bitfield,
+		&ett_ncp_mac_attr_bitfield,
+		&ett_ncp_modify_dos_info_mask_bitfield,
+		&ett_ncp_nds_request_flags_bitfield,
+		&ett_ncp_new_access_rights_mask_bitfield,
+		&ett_ncp_nlm_flags_bitfield,
+		&ett_ncp_ns_info_mask_bitfield,
+		&ett_ncp_open_create_action_bitfield,
+		&ett_ncp_open_create_mode_bitfield,
+		&ett_ncp_open_rights_bitfield,
+		&ett_ncp_print_flags_bitfield,
+		&ett_ncp_queue_status_bitfield,
+		&ett_ncp_remove_open_rights_bitfield,
+		&ett_ncp_rename_flag_bitfield,
+		&ett_ncp_request_bit_map_bitfield,
+		&ett_ncp_ret_info_mask_bitfield,
+		&ett_ncp_rights_grant_mask_bitfield,
+		&ett_ncp_rights_revoke_mask_bitfield,
+		&ett_ncp_sattr_bitfield,
+		&ett_ncp_search_att_low_bitfield,
+		&ett_ncp_search_bit_map_bitfield,
+		&ett_ncp_security_flag_bitfield,
+		&ett_ncp_set_cmd_flags_bitfield,
+		&ett_ncp_status_bitfield,
+		&ett_ncp_status_flag_bits_bitfield,
+		&ett_ncp_timesync_status_flags_bitfield,
+		&ett_ncp_trustee_rights_low_bitfield,
+		&ett_struct_acctng_info_struct,
+		&ett_struct_afp_10_struct,
+		&ett_struct_afp_20_struct,
+		&ett_struct_archive_info_struct,
+		&ett_struct_attributes_struct,
+		&ett_struct_board_name_struct,
+		&ett_struct_cache_info,
+		&ett_struct_common_lan_struct,
+		&ett_struct_comp_d_comp_stat,
+		&ett_struct_conn_file_struct,
+		&ett_struct_conn_struct,
+		&ett_struct_conn_task_struct,
+		&ett_struct_counters_struct,
+		&ett_struct_cpu_information,
+		&ett_struct_creation_info_struct,
+		&ett_struct_custom_cnts_info,
+		&ett_struct_dir_cache_info,
+		&ett_struct_dir_entry_struct,
+		&ett_struct_directory_instance,
+		&ett_struct_dos_directory_entry_struct,
+		&ett_struct_dos_file_entry_struct,
+		&ett_struct_dos_name_struct,
+		&ett_struct_dyn_mem_struct,
+		&ett_struct_ea_info_struct,
+		&ett_struct_extra_cache_cntrs,
+		&ett_struct_file_info_struct,
+		&ett_struct_file_instance,
+		&ett_struct_file_name_struct,
+		&ett_struct_file_server_counters,
+		&ett_struct_file_system_info,
+		&ett_struct_generic_info_def,
+		&ett_struct_ipx_information,
+		&ett_struct_job_entry_time,
+		&ett_struct_job_struct,
+		&ett_struct_job_struct_3x,
+		&ett_struct_job_struct_new,
+		&ett_struct_known_routes,
+		&ett_struct_known_server_struct,
+		&ett_struct_lan_cfg_info,
+		&ett_struct_lock_info_struct,
+		&ett_struct_lock_struct,
+		&ett_struct_log_lock_struct,
+		&ett_struct_log_rec_struct,
+		&ett_struct_login_time,
+		&ett_struct_lsl_information,
+		&ett_struct_memory_counters,
+		&ett_struct_mlid_board_info,
+		&ett_struct_modify_info_struct,
+		&ett_struct_name_info_struct,
+		&ett_struct_ncp_network_address_struct,
+		&ett_struct_net_addr_struct,
+		&ett_struct_nlm_information,
+		&ett_struct_nw_audit_status,
+		&ett_struct_opn_files_struct,
+		&ett_struct_packet_burst_information,
+		&ett_struct_phy_lock_struct,
+		&ett_struct_print_info_struct,
+		&ett_struct_r_tag_struct,
+		&ett_struct_routers_info,
+		&ett_struct_segments,
+		&ett_struct_sema_struct,
+		&ett_struct_server_info,
+		&ett_struct_servers_src_info,
+		&ett_struct_space_struct,
+		&ett_struct_spx_information,
+		&ett_struct_stack_info,
+		&ett_struct_stats_info_struct,
+		&ett_struct_trend_counters,
+		&ett_struct_user_info,
+		&ett_struct_vol_info_struct,
+		&ett_struct_vol_info_struct_2,
+	};
+
+
+	proto_register_field_array(proto_ncp, hf, array_length(hf));
+	
+
+	proto_register_subtree_array(ett, array_length(ett));
+		
+
+	register_init_routine(&ncp_init_protocol);
+	register_postseq_cleanup_routine(&ncp_postseq_cleanup);
+	register_final_registration_routine(final_registration_ncp2222);
+	
+}
+
+#include "packet-ncp2222.inc"
diff -x entries -urN ethereal/prefs.c ethereal-win32/prefs.c
--- ethereal/prefs.c	2004-07-21 15:26:50.926499400 -0500
+++ ethereal-win32/prefs.c	2004-07-20 15:58:03.000000000 -0500
@@ -946,6 +946,9 @@
 #ifdef WIN32
     prefs.gui_font_name1 = g_strdup("-*-lucida console-medium-r-*-*-*-100-*-*-*-*-*-*");
     prefs.gui_font_name2 = g_strdup("Lucida Console 10");
+    prefs.gui_win32_font_name = g_strdup("");
+    prefs.gui_win32_font_style = g_strdup("");
+    prefs.gui_win32_font_size = 12;
 #else
     /*
      * XXX - for now, we make the initial font name a pattern that matches
@@ -1103,7 +1106,7 @@
   return &prefs;
 }
 
-/* read the preferences file (or similiar) and call the callback 
+/* read the preferences file (or similiar) and call the callback
  * function to set each key/value pair found */
 int
 read_prefs_file(const char *pf_path, FILE *pf, pref_set_pair_cb pref_set_pair_fct)
@@ -1307,6 +1310,9 @@
 #define PRS_GUI_HEX_DUMP_HIGHLIGHT_STYLE "gui.hex_dump_highlight_style"
 #define PRS_GUI_FONT_NAME_1              "gui.font_name"
 #define PRS_GUI_FONT_NAME_2              "gui.gtk2.font_name"
+#define PRS_GUI_WIN32_FONT_NAME          "gui.win32.font_name"
+#define PRS_GUI_WIN32_FONT_STYLE         "gui.win32.font_style"
+#define PRS_GUI_WIN32_FONT_SIZE          "gui.win32.font_size"
 #define PRS_GUI_MARKED_FG                "gui.marked_frame.fg"
 #define PRS_GUI_MARKED_BG                "gui.marked_frame.bg"
 #define PRS_GUI_CONSOLE_OPEN             "gui.console_open"
@@ -1585,6 +1591,19 @@
     if (prefs.gui_font_name2 != NULL)
       g_free(prefs.gui_font_name2);
     prefs.gui_font_name2 = g_strdup(value);
+  } else if (strcmp(pref_name, PRS_GUI_WIN32_FONT_NAME) == 0) {
+    if (prefs.gui_win32_font_name != NULL)
+      g_free(prefs.gui_win32_font_name);
+    prefs.gui_win32_font_name = g_strdup(value);
+  } else if (strcmp(pref_name, PRS_GUI_WIN32_FONT_STYLE) == 0) {
+    if (prefs.gui_win32_font_style != NULL)
+      g_free(prefs.gui_win32_font_style);
+    prefs.gui_win32_font_style = g_strdup(value);
+  } else if (strcmp(pref_name, PRS_GUI_WIN32_FONT_SIZE) == 0) {
+    prefs.gui_win32_font_size = strtoul(value, NULL, 10);
+    if (prefs.gui_win32_font_size == 0) {
+      prefs.gui_win32_font_size = 12;
+    }
   } else if (strcmp(pref_name, PRS_GUI_MARKED_FG) == 0) {
     cval = strtoul(value, NULL, 16);
     prefs.gui_marked_fg.pixel = 0;
@@ -2121,7 +2140,7 @@
     "# Ethereal.  Making manual changes should be safe, however.\n", pf);
 
   fprintf (pf, "\n######## User Interface ########\n");
-  
+
   fprintf(pf, "\n# Vertical scrollbars should be on right side?\n");
   fprintf(pf, "# TRUE or FALSE (case-insensitive).\n");
   fprintf(pf, PRS_GUI_SCROLLBAR_ON_RIGHT ": %s\n",
@@ -2176,12 +2195,12 @@
   fprintf(pf, "# TRUE or FALSE (case-insensitive).\n");
   fprintf(pf, PRS_GUI_GEOMETRY_SAVE_SIZE ": %s\n",
 		  prefs.gui_geometry_save_size == TRUE ? "TRUE" : "FALSE");
-                  
+
   fprintf(pf, "\n# Save window maximized state at exit (GTK2 only)?\n");
   fprintf(pf, "# TRUE or FALSE (case-insensitive).\n");
   fprintf(pf, PRS_GUI_GEOMETRY_SAVE_MAXIMIZED ": %s\n",
 		  prefs.gui_geometry_save_maximized == TRUE ? "TRUE" : "FALSE");
-                  
+
   fprintf(pf, "\n# Open a console window (WIN32 only)?\n");
   fprintf(pf, "# One of: NEVER, AUTOMATIC, ALWAYS\n");
   fprintf(pf, PRS_GUI_CONSOLE_OPEN ": %s\n",
@@ -2226,7 +2245,7 @@
 	          gui_layout_content_text[prefs.gui_layout_content_3]);
 
   fprintf (pf, "\n######## User Interface: Columns ########\n");
-  
+
   clp = prefs.col_list;
   col_l = NULL;
   while (clp) {
@@ -2251,6 +2270,15 @@
   fprintf(pf, "\n# Font name for packet list, protocol tree, and hex dump panes (GTK version 2).\n");
   fprintf(pf, PRS_GUI_FONT_NAME_2 ": %s\n", prefs.gui_font_name2);
 
+  fprintf(pf, "\n# Font name for protocol tree and hex dump panes (Windows native).\n");
+  fprintf(pf, PRS_GUI_WIN32_FONT_NAME ": %s\n", prefs.gui_win32_font_name);
+
+  fprintf(pf, "\n# Font style for protocol tree and hex dump panes (Windows native).\n");
+  fprintf(pf, PRS_GUI_WIN32_FONT_STYLE ": %s\n", prefs.gui_win32_font_style);
+
+  fprintf(pf, "\n# Font size for protocol tree and hex dump panes (Windows native).\n");
+  fprintf(pf, PRS_GUI_WIN32_FONT_SIZE ": %d\n", prefs.gui_win32_font_size);
+
   fprintf (pf, "\n######## User Interface: Colors ########\n");
 
   fprintf (pf, "\n# Color preferences for a marked frame.\n");
@@ -2284,7 +2312,7 @@
     (prefs.st_server_bg.blue * 255 / 65535));
 
   fprintf(pf, "\n####### Capture ########\n");
-  
+
   if (prefs.capture_device != NULL) {
     fprintf(pf, "\n# Default capture device\n");
     fprintf(pf, PRS_CAP_DEVICE ": %s\n", prefs.capture_device);
@@ -2339,7 +2367,7 @@
     "%s: %s\n", PRS_PRINT_CMD, prefs.pr_cmd);
 
   fprintf(pf, "\n####### Name Resolution ########\n");
-  
+
   fprintf(pf, "\n# Resolve addresses to names?\n");
   fprintf(pf, "# TRUE or FALSE (case-insensitive), or a list of address types to resolve.\n");
   fprintf(pf, PRS_NAME_RESOLVE ": %s\n",
diff -x entries -urN ethereal/prefs.h ethereal-win32/prefs.h
--- ethereal/prefs.h	2004-07-21 15:26:51.757694600 -0500
+++ ethereal-win32/prefs.h	2004-07-20 15:58:03.000000000 -0500
@@ -119,6 +119,9 @@
   gint     gui_toolbar_main_style;
   gchar   *gui_font_name1;
   gchar   *gui_font_name2;
+  gchar   *gui_win32_font_name;
+  gchar   *gui_win32_font_style;
+  guint    gui_win32_font_size;
   color_t  gui_marked_fg;
   color_t  gui_marked_bg;
   gboolean gui_geometry_save_position;
diff -x entries -urN ethereal/xulender/README ethereal-win32/xulender/README
--- ethereal/xulender/README	1969-12-31 18:00:00.000000000 -0600
+++ ethereal-win32/xulender/README	2004-06-14 14:44:01.000000000 -0500
@@ -0,0 +1,77 @@
+This directory contains the code necessary to build native front-ends for
+Ethereal.  At the present time Windows is the only platform supported.
+
+
+Introduction:
+
+Each front-end is made up of code created by feeding a set of XUL files to
+a Python script.  The only frontend script we have so far (win32csdk.py)
+creates plain C code and uses the Windows Platform SDK.
+
+The XUL files and parsers are currently pseudo-XUL, and do not strictly
+conform to the spec.
+
+This environment is very stripped-down compared to Mozilla's XPFE.  There
+is no JavaScript, XBL, chrome, or XPCOM.
+
+There's no reason a frontend couldn't use C++, Java, C#, Python, Perl,
+assembler, or any other language, as long as it can link with the rest of
+Ethereal's code base.  We could also create virtual frontends, e.g. for
+unit/regression testing.
+
+This directory contains the following:
+
+  - ethereal-main.xul, *-dialog.xul
+
+    These are XUL files used to generate the main Ethereal window and each
+    dialog
+
+  - *.py
+
+    Python scripts that read the XUL files and generate code.  The main
+    script is xulender.py; it should be run without any arguments.
+    It calls routines in win32csdk.py to create code.
+
+	Each frontend module MUST:
+
+    - Define a function named "get_func_prefix()" that returns a prefix
+      name for the module.  The prefix name for win32csdk.py is "win32".
+
+    - Define start and stop (if needed) functions for for each XUL entity
+      name.  Start functions MUST be named <module>_gen_<entity>,
+      e.g.  win32_gen_menuitem.  Stop functions MUST be named
+      <module>_gen_<entity>_end, e.g. kde_gen_checkbox_end.
+
+      Each function MUST take one argument, a Python xml.dom Node object.
+
+      Utility routines can be found in frontendutil.py.  
+
+  - win32-c-sdk/
+
+    This directory contains code generated by win32csdk.py along with 
+    hand-written glue routines.
+
+
+Example:
+
+In order to build "ethereal-main.c" in the "win32-c-sdk" directory,
+Makefile.nmake runs "$(PYTHON) ..\xulender.py ethereal-main.xul".
+
+When xulender.py encounters the "<splitter />" tag, it calls 
+"win32_gen_splitter()" in the win32csdk.py module.  This adds
+
+	/* Begin <splitter> */
+	win32_box_add_splitter(cur_box, -1);
+	/* End <splitter> */
+
+to ethereal-main.c.
+
+
+To do:
+- Have xulender create a list of required glue routines.
+- Add more frontends, of course!  MacOS X and QT seem like good candidates.
+- Actually link <menuitem>s to <command>s, and link them in both directions
+  so that disabling will work according to the spec?
+- Move CodeGenError class out of win32-c-sdk.py, so that xulender.py can use
+  it.
+- Move hierarchy checks from win32-c-sdk.py to xulender.py?
diff -x entries -urN ethereal/xulender/README.win32csdk ethereal-win32/xulender/README.win32csdk
--- ethereal/xulender/README.win32csdk	1969-12-31 18:00:00.000000000 -0600
+++ ethereal-win32/xulender/README.win32csdk	2004-07-21 15:22:40.000000000 -0500
@@ -0,0 +1,33 @@
+Overall architecture
+
+The win32csdk.py module generates native Windows interface code using
+the Win32 C SDK.  XUL elements are implemented using common controls,
+custom controls, and plain windows.  
+
+
+Bugs/Caveats
+
+- Markup in <description> text isn't handled at all.
+
+
+To do:
+
+- Is it the responsibility of each element to set its min/normal/max width
+  and height?  It would seem so.
+
+- We treat dialogs as normal windows.  That is, we don't use CreateDialog(),
+  nor do we use the normal dialog event/lifecycle mechanism.
+  Instead we use CreateWindow() and try to fake it as best we can.  We may
+  want to switch to using normal Windows dialogs at some point.  This means
+  that for each element we'd have to have "window" code and "dialog template"
+  code.  That just seems messy.
+
+- Some of our element constructors return HWNDs and some return
+  win32_element_t *'s.  We should standardize on the latter.
+
+- Once in a while, clicking in the packet list causes a crash for
+  some reason.  The MS debugger doesn't give much helpful information
+  when this happens.
+
+- Function names and parameters need to be normalized, e.g.
+  win32_menulist_get_selection() vs win32_listbox_set_selected().
diff -x entries -urN ethereal/xulender/about-dialog.xul ethereal-win32/xulender/about-dialog.xul
--- ethereal/xulender/about-dialog.xul	1969-12-31 18:00:00.000000000 -0600
+++ ethereal-win32/xulender/about-dialog.xul	2004-06-21 15:25:11.000000000 -0500
@@ -0,0 +1,24 @@
+<?xml version="1.0"?>
+<dialog
+  id="about-dialog"
+  title="About Ethereal"
+  width="250"
+  height="100"
+  >
+
+  <vbox
+    id="about-dlg.vbox"
+    >
+    <hbox>
+
+      <spacer flex="1" />
+      <button
+        id="about-ok"
+        label="OK"
+        default="True"
+        oncommand="about_dialog_hide"
+       />
+
+    </hbox>
+  </vbox>
+</dialog>
diff -x entries -urN ethereal/xulender/capture-dialog.xul ethereal-win32/xulender/capture-dialog.xul
--- ethereal/xulender/capture-dialog.xul	1969-12-31 18:00:00.000000000 -0600
+++ ethereal-win32/xulender/capture-dialog.xul	2004-07-14 15:10:31.000000000 -0500
@@ -0,0 +1,223 @@
+<?xml version="1.0"?>
+<dialog
+  id="capture-dialog"
+  title="Capture Options"
+  >
+
+  <vbox>
+    <groupbox>
+      <caption>Capture</caption>
+      <hbox>
+        <description>Interface:</description>
+        <ethereal:combobox id="capture-dialog.interface-combo" flex="1" />
+      </hbox>
+      <hbox>
+        <description>Link-layer header type:</description>
+        <description>Buffer size:</description>
+        <ethereal:spinner id="capture-dialog.buffer-size" />
+        <description>megabyte(s)</description>
+      </hbox>
+      <checkbox
+        id="capture-dialog.promiscuous"
+        label="Capture packets in promiscuous mode"
+      />
+      <hbox>
+        <checkbox
+          id="capture-dialog.packet-size-cb"
+          label="Limit each packet to"
+          oncommand="capture_dialog_limit_packet_size"
+        />
+        <ethereal:spinner id="capture-dialog.packet-size-spinner" />
+        <description>bytes</description>
+      </hbox>
+      <hbox>
+        <button
+          label="Capture Filter:"
+        />
+        <textbox id="capture-dialog.capture-filter" flex="1" />
+      </hbox>
+    </groupbox>
+
+    <hbox>
+      <vbox>
+        <groupbox>
+          <caption>Capture File(s)</caption>
+          <hbox>
+	    <description>File:</description>
+            <textbox id="capture-dialog.save-file" flex="1" />
+            <button
+              label="..."
+             />
+          </hbox>
+          <checkbox
+            id="capture-dialog.use-multiple-files"
+            label="Use multiple files"
+            oncommand="capture_dialog_adjust_sensitivity"
+          />
+          <grid>
+            <columns>
+              <column/>
+              <column/>
+              <column/>
+            </columns>
+
+            <rows>
+              <row>
+                <checkbox
+                  id="capture-dialog.next-file-every-size-cb"
+                  label="Next file every"
+                  oncommand="capture_dialog_adjust_sensitivity"
+                />
+                <ethereal:spinner id="capture-dialog.next-file-every-size-spinner" />
+                <menulist id="capture-dialog.next-file-every-size-ml">
+                  <menupopup>
+                    <menuitem label="byte(s)" />
+                    <menuitem label="kilobyte(s)" />
+                    <menuitem label="megabyte(s)" selected="true" />
+                    <menuitem label="gigabyte(s)" />
+                  </menupopup>
+                </menulist>
+              </row>
+              <row>
+                <checkbox
+                  id="capture-dialog.next-file-every-time-cb"
+                  label="Next file every"
+                  oncommand="capture_dialog_adjust_sensitivity"
+                />
+                <ethereal:spinner id="capture-dialog.next-file-every-time-spinner" />
+                <menulist id="capture-dialog.next-file-every-time-ml">
+                  <menupopup>
+                    <menuitem label="second(s)" />
+                    <menuitem label="minute(s)" selected="true" />
+                    <menuitem label="hour(s)" />
+                    <menuitem label="day(s)" />
+                  </menupopup>
+                </menulist>
+              </row>
+              <row>
+                <checkbox
+                  id="capture-dialog.ring-buffer-with-cb"
+                  label="Ring buffer with"
+                  oncommand="capture_dialog_adjust_sensitivity"
+                />
+                <ethereal:spinner id="capture-dialog.ring-buffer-with-spinner" />
+                <description id="capture-dialog.ring-buffer-with-descr">
+                  Files
+                </description>
+              </row>
+              <row>
+                <checkbox
+                  id="capture-dialog.stop-capture-after-cb"
+                  label="Stop capture after"
+                  oncommand="capture_dialog_adjust_sensitivity"
+                />
+                <ethereal:spinner id="capture-dialog.stop-capture-after-spinner" />
+                <description id="capture-dialog.stop-capture-after-descr">
+                  File(s)
+                </description>
+              </row>
+            </rows>
+          </grid>
+        </groupbox>
+        <groupbox>
+          <caption>Stop Capture ...</caption>
+          <hbox>
+            <checkbox
+              id="capture-dialog.stop-after-packets-cb"
+              label="... after"
+              oncommand="capture_dialog_adjust_sensitivity"
+            />
+            <ethereal:spinner id="capture-dialog.stop-after-packets-spinner" />
+            <description id="capture-dialog.stop-after-packets-descr">
+              File(s)
+            </description>
+          </hbox>
+          <hbox>
+            <checkbox
+              id="capture-dialog.stop-after-size-cb"
+              label="... after"
+              oncommand="capture_dialog_adjust_sensitivity"
+            />
+            <ethereal:spinner id="capture-dialog.stop-after-size-spinner" />
+            <menulist id="capture-dialog.stop-after-size-ml">
+              <menupopup>
+                <menuitem label="byte(s)" />
+                <menuitem label="kilobyte(s)" />
+                <menuitem label="megabyte(s)" selected="true" />
+                <menuitem label="gigabyte(s)" />
+              </menupopup>
+            </menulist>
+          </hbox>
+          <hbox>
+            <checkbox
+              id="capture-dialog.stop-after-time-cb"
+              label="... after"
+              oncommand="capture_dialog_adjust_sensitivity"
+            />
+            <ethereal:spinner id="capture-dialog.stop-after-time-spinner" />
+            <menulist id="capture-dialog.stop-after-time-ml">
+              <menupopup>
+                <menuitem label="second(s)" />
+                <menuitem label="minute(s)" selected="true" />
+                <menuitem label="hour(s)" />
+                <menuitem label="day(s)" />
+              </menupopup>
+            </menulist>
+          </hbox>
+        </groupbox>
+      </vbox>
+
+      <vbox>
+        <groupbox flex="1">
+          <caption>Display Options</caption>
+          <checkbox
+            id="capture-dialog.update-real-time"
+            label="Update list of packets in real time"
+            oncommand="capture_dialog_adjust_sensitivity"
+          />
+          <checkbox
+            id="capture-dialog.auto-scroll-live"
+            label="Automatic scrolling in live capture"
+          />
+          <checkbox
+            id="capture-dialog.show_info"
+            label="Hide capture info window"
+          />
+        </groupbox>
+        <groupbox flex="1">
+          <caption>Name Resolution</caption>
+          <checkbox
+            id="capture-mac-resolution"
+            label="Enable MAC name resolution"
+          />
+          <checkbox
+            id="capture-network-resolution"
+            label="Enable network name resolution"
+          />
+          <checkbox
+            id="capture-transport-resolution"
+            label="Enable transport name resolution"
+          />
+        </groupbox>
+      </vbox>
+    </hbox>
+
+    <hbox>
+
+      <spacer flex="1" />
+      <button
+        id="capture-ok"
+        label="OK"
+        default="True"
+        oncommand="capture_dialog_start_capture"
+       />
+
+      <button
+        id="capture-cancel"
+        label="Cancel"
+        oncommand="capture_dialog_hide"
+       />
+
+    </hbox>
+  </vbox>
+</dialog>
diff -x entries -urN ethereal/xulender/capture-info-dialog.xul ethereal-win32/xulender/capture-info-dialog.xul
--- ethereal/xulender/capture-info-dialog.xul	1969-12-31 18:00:00.000000000 -0600
+++ ethereal-win32/xulender/capture-info-dialog.xul	2004-05-19 15:01:21.000000000 -0500
@@ -0,0 +1,245 @@
+<?xml version="1.0"?>
+<dialog
+  id="capture-info-dialog"
+  title="Ethereal: Capture"
+  >
+
+  <vbox id="debug-element">
+    <groupbox orient="vertical">
+      <caption>Captured Packets</caption>
+
+      <hbox>
+        <description>Total: </description>
+        <description id="capture-count-total" flex="1">0</description>
+      </hbox>
+
+      <hbox>
+        <description>Running: </description>
+        <description id="capture-run-time" flex="1">Unknown</description>
+      </hbox>
+
+      <grid> <!-- Protocol-specific counts -->
+        <columns>
+          <column/>           <!-- Protocol name -->
+          <column/>           <!-- Count -->
+          <column flex="1" /> <!-- Progress meter -->
+          <column/>           <!-- Percentage -->
+        </columns>
+
+        <rows>
+          <row>
+            <description flex="1">SCTP: </description>
+            <description 
+              id="capture-sctp-count" 
+              flex="1"
+              style="text-align: right;"
+            >
+              0000
+            </description>
+            <progressmeter id="capture-sctp-progress" />
+            <description
+              id="capture-sctp-percent"
+              flex="1"
+              style="text-align: right;"
+            >
+              000.0%
+            </description>
+          </row>
+
+          <row>
+            <description>TCP: </description>
+            <description
+              id="capture-tcp-count"
+              flex="1"
+              style="text-align: right;"
+            >
+              0
+            </description>
+            <progressmeter id="capture-tcp-progress" />
+            <description
+              id="capture-tcp-percent"
+              style="text-align: right;"
+            >
+              0.0%
+            </description>
+          </row>
+
+          <row>
+            <description>UDP: </description>
+            <description
+              id="capture-udp-count"
+              flex="1"
+              style="text-align: right;"
+            >
+              0
+            </description>
+            <progressmeter id="capture-udp-progress" />
+            <description
+              id="capture-udp-percent"
+              style="text-align: right;"
+            >
+              0.0%
+            </description>
+          </row>
+
+          <row>
+            <description>ICMP: </description>
+            <description
+              id="capture-icmp-count"
+              flex="1"
+              style="text-align: right;"
+            >
+              0
+            </description>
+            <progressmeter id="capture-icmp-progress" />
+            <description
+              id="capture-icmp-percent"
+              style="text-align: right;"
+            >
+              0.0%
+            </description>
+          </row>
+
+          <row>
+            <description>ARP: </description>
+            <description
+              id="capture-arp-count"
+              flex="1"
+              style="text-align: right;"
+            >
+              0
+            </description>
+            <progressmeter id="capture-arp-progress" />
+            <description
+              id="capture-arp-percent"
+              style="text-align: right;"
+            >
+              0.0%
+            </description>
+          </row>
+
+          <row>
+            <description>OSPF: </description>
+            <description
+              id="capture-ospf-count"
+              flex="1"
+              style="text-align: right;"
+            >
+              0
+            </description>
+            <progressmeter id="capture-ospf-progress" />
+            <description
+              id="capture-ospf-percent"
+              style="text-align: right;"
+            >
+              0.0%
+            </description>
+          </row>
+
+          <row>
+            <description>GRE: </description>
+            <description
+              id="capture-gre-count"
+              flex="1"
+              style="text-align: right;"
+            >
+              0
+            </description>
+            <progressmeter id="capture-gre-progress" />
+            <description
+              id="capture-gre-percent"
+              style="text-align: right;"
+            >
+              0.0%
+            </description>
+          </row>
+
+          <row>
+            <description>NetBIOS: </description>
+            <description
+              id="capture-netbios-count"
+              flex="1"
+              style="text-align: right;"
+            >
+              0
+            </description>
+            <progressmeter id="capture-netbios-progress" />
+            <description
+              id="capture-netbios-percent"
+              style="text-align: right;"
+            >
+              0.0%
+            </description>
+          </row>
+
+          <row>
+            <description>IPX: </description>
+            <description
+              id="capture-ipx-count"
+              flex="1"
+              style="text-align: right;"
+            >
+              0
+            </description>
+            <progressmeter id="capture-ipx-progress" />
+            <description
+              id="capture-ipx-percent"
+              style="text-align: right;"
+            >
+              0.0%
+            </description>
+          </row>
+
+          <row>
+            <description>VINES: </description>
+            <description
+              id="capture-vines-count"
+              flex="1"
+              style="text-align: right;"
+            >
+              0
+            </description>
+            <progressmeter id="capture-vines-progress" />
+            <description
+              id="capture-vines-percent"
+              style="text-align: right;"
+            >
+              0.0%
+            </description>
+          </row>
+
+          <row>
+            <description>Other: </description>
+            <description
+              id="capture-other-count"
+              flex="1"
+              style="text-align: right;"
+            >
+              0
+            </description>
+            <progressmeter id="capture-other-progress" />
+            <description
+              id="capture-other-percent"
+              style="text-align: right;"
+            >
+              0.0%
+            </description>
+          </row>
+
+        </rows>
+      </grid>
+    </groupbox>
+
+    <hbox>
+      <spacer flex="1" />
+      <button
+        id="capture-info-stop"
+        label="Stop"
+        default="True"
+        oncommand="capture_info_dialog_stop_capture"
+       />
+      <spacer flex="1" />
+    </hbox>
+
+  </vbox>
+</dialog>
diff -x entries -urN ethereal/xulender/ethereal-main.xul ethereal-win32/xulender/ethereal-main.xul
--- ethereal/xulender/ethereal-main.xul	1969-12-31 18:00:00.000000000 -0600
+++ ethereal-win32/xulender/ethereal-main.xul	2004-06-29 09:59:26.000000000 -0500
@@ -0,0 +1,136 @@
+<?xml version="1.0"?>
+<window
+  title="Ethereal"
+  id="ethereal-main"
+  width="620"
+  height="420"
+  xmlns:ethereal="http://www.ethereal.com/development.html";
+  >
+
+  <menubar autostretch="always">
+    <menu label="File">
+      <menupopup>
+        <menuitem
+          label="Open..."
+          command="ethereal-main-open"
+        />
+        <menuitem
+          label="Open Recent"
+          command="ethereal-main-open-recent"
+        />
+        <menuitem
+          label="Close"
+          command="ethereal-main-close"
+        />
+        <menuseparator/>
+        <menuitem
+          label="Save"
+          command="ethereal-main-save"
+        />
+        <menuitem
+          label="Save As..."
+          command="ethereal-main-save-as"
+        />
+        <menuseparator/>
+        <menuitem
+          label="Export"
+          command="ethereal-main-export"
+        />
+        <menuseparator/>
+        <menuitem
+          label="Print..."
+          command="ethereal-main-print"
+        />
+        <menuseparator/>
+        <menuitem
+          label="Exit"
+          command="ethereal-main-exit"
+        />
+      </menupopup>
+    </menu>
+
+    <menu label="Edit">
+      <menupopup>
+        <menuitem
+          label="Preferences..."
+          command="ethereal-main-edit-preferences"
+        />
+      </menupopup>
+    </menu>
+
+    <menu label="Capture">
+      <menupopup>
+        <menuitem
+          label="Start"
+          command="ethereal-main-capture-start"
+        />
+        <menuitem
+          label="Stop"
+          command="ethereal-main-capture-stop"
+        />
+        <menuitem
+          label="Capture Filters..."
+          command="ethereal-main-capture-filters"
+        />
+      </menupopup>
+    </menu>
+
+    <menu label="Help">
+      <menupopup>
+        <menuitem
+          label="Contents"
+          command="ethereal-main-about-contents"
+        />
+        <menuitem
+          label="Supported Protocols"
+          command="ethereal-main-about-supported-protocols"
+        />
+        <menuseparator/>
+        <menuitem
+          label="About Plugins"
+          command="ethereal-main-about-plugins"
+        />
+        <menuitem
+          label="About Ethereal"
+          command="ethereal-main-about-ethereal"
+        />
+      </menupopup>
+    </menu>
+
+  </menubar>
+
+  <vbox
+    flex="1"
+  >
+
+    <ethereal:packetlist flex="1" />
+
+    <splitter />
+
+    <ethereal:treeview id="main-treeview" flex="1" />
+
+    <splitter />
+
+    <ethereal:byteview id="main-byteview" flex="1" />
+
+    <!-- Should we use a statusbar instead? -->
+    <hbox>
+      <button label="Filter:" />
+      <ethereal:combobox id="dfilter-entry" flex="1"/>
+      <button
+        label="Clear"
+        oncommand="filter_clear_cb"
+      />
+      <button
+        label="Apply"
+        oncommand="filter_apply_cb"
+      />
+<!--
+      <textbox readonly="True" id="statusbar" />
+-->
+    </hbox>
+
+  </vbox>
+
+</window>
+
diff -x entries -urN ethereal/xulender/frontendutil.py ethereal-win32/xulender/frontendutil.py
--- ethereal/xulender/frontendutil.py	1969-12-31 18:00:00.000000000 -0600
+++ ethereal-win32/xulender/frontendutil.py	2004-01-15 09:31:36.000000000 -0600
@@ -0,0 +1,55 @@
+# frontendutil.py - Frontend utility functions
+
+def id_to_name(id):
+	'''Convert an id name (which may have dashes or other "odd" charaters to
+	   a valid C-style identifier.'''
+	for ch in ' -:': id = id.replace(ch, '_')
+	return id
+
+def get_attribute(node, attr_name, notfound = None):
+	'''If a node has a particular attribute, return that attribute. 
+	   Otherwise return the value of "notfound".'''
+	try:
+		return node.attributes[attr_name].value
+	except:
+		pass
+	
+	return notfound
+ 
+class counter:
+	'''Create a "counter" that increments each time get_count() is called.
+	   This is useful for resource IDs, etc.'''
+	def __init__(self, start=0):
+		self.count = start
+
+	def get_count(self):
+		return self.count
+
+class sect_file:
+	'''File objects that have headers, bodies, and footers.  The file's
+	   contents aren't written until the close() method is called.'''
+	def __init__(self, file_path):
+		self.file_path = file_path
+		self.header = '''/* %s */
+/* THIS FILE HAS BEEN AUTOMATICALLY GENERATED. */
+/* Do not modify by hand. */
+''' % (file_path)
+		self.body = ''
+		self.footer = ''
+	
+	def write_header(self, text):
+		self.header = self.header + text
+
+	def write_body(self, text):
+		self.body = self.body + text
+
+	def write_footer(self, text):
+		self.footer = self.footer + text
+		
+	def close(self):
+		print 'Writing ' + self.file_path
+		fp = open(self.file_path, 'w')
+		fp.write(self.header)
+		fp.write(self.body)
+		fp.write(self.footer)
+		fp.close()
Files ethereal/xulender/frontendutil.pyc and ethereal-win32/xulender/frontendutil.pyc differ
diff -x entries -urN ethereal/xulender/preferences-dialog.xul ethereal-win32/xulender/preferences-dialog.xul
--- ethereal/xulender/preferences-dialog.xul	1969-12-31 18:00:00.000000000 -0600
+++ ethereal-win32/xulender/preferences-dialog.xul	2004-07-14 14:24:11.000000000 -0500
@@ -0,0 +1,540 @@
+<?xml version="1.0"?>
+<dialog
+  id="preferences-dialog"
+  title="Ethereal: Preferences"
+  width="250"
+  height="100"
+  >
+
+  <!--
+    Preferences dialog.  Each row in the tree corresponds to a panel in
+    the deck.  To make things easy code-wise, tree row IDs are in the 
+    form "prefs-dialog.tree.[unique name]" and panel IDs are in the form
+    "prefs-dialog.deck.[unique name]".
+  -->
+
+  <vbox>
+    <hbox>
+      <tree
+        id="prefs-dialog.tree"
+        onselect="prefs_tree_select"
+      >
+        <treecols>
+          <treecol id="prefs-dialog.tree" primary="true" hideheader="true" />
+        </treecols>
+        <treechildren>
+          <treeitem container="true" open="true">
+            <treerow id="prefs-dialog.tree.user-interface">
+	      <treecell label="User Interface" />
+            </treerow>
+            <treechildren>
+              <treeitem>
+                <treerow id="prefs-dialog.tree.columns">
+	          <treecell label="Columns" />
+                </treerow>
+              </treeitem>
+              <treeitem>
+                <treerow id="prefs-dialog.tree.font">
+	          <treecell label="Font" />
+                </treerow>
+              </treeitem>              <treeitem>
+                <treerow id="prefs-dialog.tree.colors">
+	          <treecell label="Colors" />
+                </treerow>
+              </treeitem>
+            </treechildren>
+          </treeitem>
+          <treeitem>
+            <treerow id="prefs-dialog.tree.capture">
+	      <treecell label="Capture" />
+            </treerow>
+          </treeitem>
+          <treeitem>
+            <treerow id="prefs-dialog.tree.printing">
+	      <treecell label="Printing" />
+            </treerow>
+          </treeitem>
+          <treeitem>
+            <treerow id="prefs-dialog.tree.name-resolution">
+	      <treecell label="Name Resolution" />
+            </treerow>
+          </treeitem>
+        </treechildren>
+      </tree>
+
+      <deck id="prefs-dialog.deck">
+
+        <!-- User Interface -->
+        <groupbox id="prefs-dialog.deck.user-interface">
+          <caption>User Interface</caption>
+          <grid>
+            <columns>
+              <column/>
+              <column/>
+            </columns>
+            <rows>
+              <row>
+                <description style="text-align: right;">
+                  Packet list selection mode:
+                </description>
+                <menulist id="prefs.gui_plist_sel_browse">
+		  <menupopup>
+		    <menuitem label="Selects" />
+		    <menuitem label="Browses" />
+		  </menupopup>
+                </menulist>
+              </row>
+              <row>
+                <description style="text-align: right;">
+                  Protocol tree selection mode:
+                </description>
+                <menulist id="prefs.gui_ptree_sel_browse">
+		  <menupopup>
+		    <menuitem label="Selects" />
+		    <menuitem label="Browses" />
+		  </menupopup>
+                </menulist>
+              </row>
+              <row>
+                <description style="text-align: right;">
+                  Hex display highlight style:
+                </description>
+                <menulist id="prefs.gui_hex_dump_highlight_style">
+		  <menupopup>
+		    <menuitem label="Bold" />
+		    <menuitem label="Inverse" />
+		  </menupopup>
+                </menulist>
+              </row>
+              <row>
+                <description style="text-align: right;">
+                  Toolbar style:
+                </description>
+                <menulist id="prefs.gui_toolbar_main_style">
+		  <menupopup>
+		    <menuitem label="Icons only" />
+		    <menuitem label="Text only" />
+		    <menuitem label="Icons &amp; Text" />
+		  </menupopup>
+                </menulist>
+              </row>
+              <row>
+                <description style="text-align: right;">
+                  Filter toolbar placement:
+                </description>
+                <menulist id="prefs.filter_toolbar_show_in_statusbar">
+		  <menupopup>
+		    <menuitem label="Below main toolbar" />
+		    <menuitem label="Inside status bar" />
+		  </menupopup>
+                </menulist>
+              </row>
+              <row>
+                <description style="text-align: right;">
+                  Save window position:
+                </description>
+                <checkbox id="prefs.gui_geometry_save_position" />
+              </row>
+              <row>
+                <description style="text-align: right;">
+                  Save window size:
+                </description>
+                <checkbox id="prefs.gui_geometry_save_size" />
+              </row>
+              <row>
+                <description style="text-align: right;">
+                  Save maximized state:
+                </description>
+                <checkbox id="prefs.gui_geometry_save_maximized" />
+              </row>
+              <row>
+                <description style="text-align: right;">
+                  Open a console window:
+                </description>
+                <menulist id="prefs.gui_console_open">
+		  <menupopup>
+		    <menuitem label="Never" />
+		    <menuitem label="Automatic (advanced users)" />
+		    <menuitem label="Always (debugging)" />
+		  </menupopup>
+                </menulist>
+              </row>
+              <row>
+                <description style="text-align: right;">
+                  \"File Open\" dialog behavior:
+                </description>
+                <radiogroup orient="horizontal">
+                  <radio 
+                    label="Remember last directory"
+                    id="prefs.gui_fo_style_last_opened"
+		    oncommand="prefs_fileopen_style"
+                  />
+                  <radio
+                    label="Always start in:"
+                    id="prefs.gui_fo_style_specified"
+		    oncommand="prefs_fileopen_style"
+                  />
+                </radiogroup>
+              </row>
+              <row>
+                <description style="text-align: right;">
+                  Directory:
+                </description>
+                <textbox flex="1" id="prefs.gui_fileopen_dir" />
+              </row>
+              <row>
+                <description style="text-align: right;">
+                  \"Open Recent\" maximum entries:
+                </description>
+                <ethereal:spinner id="prefs.gui_recent_files_count_max" />
+              </row>
+            </rows>
+          </grid>
+        </groupbox>
+        
+        <!-- Columns -->
+        <groupbox id="prefs-dialog.deck.columns">
+          <caption>Columns</caption>
+          <hbox flex="1">
+            <groupbox>
+              <caption>Edit</caption>
+              <spacer flex="1.5" />
+              <button
+		id="prefs-dialog.cols.new"
+		label="New"
+		oncommand="prefs_dialog_new_column"
+	      />
+              <spacer flex="1" />
+              <button
+		id="prefs-dialog.cols.delete"
+		label="Delete"
+		oncommand="prefs_dialog_delete_column"
+	      />
+              <spacer flex="1.5" />
+            </groupbox>
+            <groupbox flex="1">
+              <caption>Columns</caption>
+              <listbox
+                id="prefs-dialog.cols.list"
+                flex="1"
+                onselect="prefs_col_list_select"
+              >
+                <listhead>
+                  <listheader label="Title" />
+                  <listheader label="Format" />
+                </listhead>
+              </listbox>
+            </groupbox>
+            <groupbox>
+              <caption>Order</caption>
+              <spacer flex="1.5" />
+              <button
+		id="prefs-dialog.cols.up"
+		label="Up"
+		oncommand="prefs_dialog_move_column"
+	      />
+              <spacer flex="1" />
+              <button
+		id="prefs-dialog.cols.down"
+		label="Down"
+		oncommand="prefs_dialog_move_column"
+	      />
+              <spacer flex="1.5" />
+            </groupbox>
+          </hbox>
+          <groupbox>
+            <caption>Properties</caption>
+	    <grid flex="1">
+	      <columns>
+		<column />
+		<column />
+	      </columns>
+	      <rows>
+		<row>
+		  <description style="text-align: right;">Title:</description>
+		  <textbox
+		    flex="1"
+		    id="prefs-dialog.cols.title"
+		    oninput="prefs_dialog_set_column_title"
+		  />
+		</row>
+		<row>
+		  <description style="text-align: right;">Format:</description>
+		  <menulist
+		    id="prefs-dialog.cols.format"
+		    oncommand="prefs_dialog_set_column_format"
+		  >
+		    <menupopup>
+		    </menupopup>
+		  </menulist>
+		</row>
+	      </rows>
+	    </grid>
+          </groupbox>
+        </groupbox>
+        
+        <!-- Font -->
+        <groupbox id="prefs-dialog.deck.font">
+          <caption>Font</caption>
+          <grid flex="1">
+            <columns>
+              <column flex="3.5" />
+              <column flex="2.0" />
+              <column flex="1.0" />
+            </columns>
+            <rows>
+              <row>
+                <description>Font</description>
+                <description>Font style</description>
+                <description>Size</description>
+              </row>
+              <row>
+                <textbox id="prefs-dialog.font.tb.name" />
+                <textbox id="prefs-dialog.font.tb.style" />
+                <textbox id="prefs-dialog.font.tb.size" />
+              </row>
+              <row flex="1">
+                <listbox
+                  id="prefs-dialog.font.lb.name"
+                  onselect="prefs_font_name_list_select"
+                  sortdirection="ascending"
+                />
+                <listbox
+                  id="prefs-dialog.font.lb.style"
+                  onselect="prefs_font_style_list_select"
+                />
+                <listbox
+                  id="prefs-dialog.font.lb.size"
+                  onselect="prefs_font_size_list_select"
+                />
+              </row>
+            </rows>
+          </grid>
+          <groupbox>
+            <caption>Preview</caption>
+            <textbox
+              flex="1" 
+              id="prefs-dialog.font.tb.sample"
+              minheight="40"
+              value="abcdefghijk ABCDEFGHIJK"
+            />
+          </groupbox>
+        </groupbox>
+        
+        <!-- Colors -->
+        <groupbox id="prefs-dialog.deck.colors">
+          <caption>Colors</caption>
+          <hbox>
+            <!-- This should be better, but we haven't implemented 
+                 <colorpicker> yet. -->
+            <button
+	      id="prefs-dialog.color.set"
+	      label="Set..."
+	      oncommand="prefs_dialog_set_color"
+	     />
+	    <menulist id="prefs-dialog.color.select">
+	      <menupopup>
+		<menuitem label="Marked packet foreground" />
+		<menuitem label="Marked packet background" />
+		<menuitem label="TCP stream client foreground" />
+		<menuitem label="TCP stream client background" />
+		<menuitem label="TCP stream server foreground" />
+		<menuitem label="TCP stream server background" />
+	      </menupopup>
+	    </menulist>
+            <textbox
+              flex="1"
+              id="prefs-dialog.color.sample"
+              multiline="true"
+              rows="3"
+            />
+          </hbox>
+        </groupbox>
+        
+        <!-- Capture -->
+        <groupbox id="prefs-dialog.deck.capture">
+          <caption>Capture</caption>
+          <grid>
+            <columns>
+              <column/>
+              <column flex="1" />
+            </columns>
+
+            <rows>
+              <row>
+                <description style="text-align: right;">
+                  Default interface:
+                </description>
+                <!-- XXX - this should be a combobox -->
+                <menulist
+                  flex="1"
+                  id="prefs-dialog.capture.iflist"
+                >
+		  <menupopup>
+		  </menupopup>
+                </menulist>
+              </row>
+              <row>
+                <description style="text-align: right;">
+                  Interface:
+                </description>
+                <button
+                  label="Edit..."
+                />
+              </row>
+              <row>
+                <description style="text-align: right;">
+                  Capture packets in promiscuous mode:
+                </description>
+                <checkbox id="prefs.capture_prom_mode" />
+              </row>
+              <row>
+                <description style="text-align: right;">
+                  Update list of packets in real time:
+                </description>
+                <checkbox id="prefs.capture_real_time" />
+              </row>
+              <row>
+                <description style="text-align: right;">
+                  Automatic scrolling in live capture:
+                </description>
+                <checkbox id="prefs.capture_auto_scroll" />
+              </row>
+              <row>
+                <description style="text-align: right;">
+                  Hide capture info window:
+                </description>
+                <checkbox id="prefs.capture_show_info" />
+              </row>
+            </rows>
+          </grid>
+        </groupbox>
+
+        <!-- Printing -->
+        <groupbox id="prefs-dialog.deck.printing">
+          <caption>Printing</caption>
+          <grid>
+            <columns>
+              <column/>
+              <column flex="1" />
+            </columns>
+            <rows>
+              <row>
+                <description style="text-align: right;">
+                  Format:
+                </description>
+                <radiogroup orient="horizontal">
+                  <radio
+                    id="prefs.pr_format_plain"
+                    label="Plain text"
+                  />
+                  <radio
+                    id="prefs.pr_format_ps"
+                    label="Postscript"
+                  />
+                </radiogroup>
+              </row>
+              <row>
+                <description style="text-align: right;">
+                  Print to:
+                </description>
+                <radiogroup orient="horizontal">
+                  <radio
+                    id="prefs.pr_dest_printer"
+                    label="Printer"
+                  />
+                  <radio
+                    id="prefs.pr_dest_file"
+                    label="File"
+                  />
+                </radiogroup>
+              </row>
+              <row>
+                <description style="text-align: right;">
+                  File:
+                </description>
+                <hbox>
+                  <textbox flex="1" id="prefs.pr_file" />
+                  <button label="..." />
+                </hbox>
+              </row>
+            </rows>
+          </grid>
+        </groupbox>
+
+        <!-- Name Resolution -->
+        <groupbox id="prefs-dialog.deck.name-resolution">
+          <caption>Name Resolution</caption>
+          <grid>
+            <columns>
+              <column/>
+              <column/>
+            </columns>
+            <rows>
+              <row>
+                <description style="text-align: right;">
+                Enable MAC name resolution:
+                </description>
+                <checkbox id="prefs.name_resolve_mac" />
+              </row>
+              <row>
+                <description style="text-align: right;">
+                  Enable network name resolution:
+                </description>
+                <checkbox id="prefs.name_resolve_network" />
+              </row>
+              <row>
+                <description style="text-align: right;">
+                  Enable transport name resolution:
+                </description>
+                <checkbox id="prefs.name_resolve_transport" />
+              </row>
+              <row>
+                <description style="text-align: right;">
+                  Enable concurrent DNS name resolution:
+                </description>
+                <checkbox id="prefs.name_resolve_concurrent" />
+              </row>
+              <row>
+                <description style="text-align: right;">
+                  Maximumn concurrent requests:
+                </description>
+                <ethereal:spinner id="prefs.name_resolve_concurrency" />
+              </row>
+            </rows>
+          </grid>
+        </groupbox>
+      </deck>
+    </hbox>
+
+    <hbox>
+      <spacer flex="1" />
+      
+      <button
+        id="prefs-dialog.ok"
+        label="OK"
+        default="True"
+        oncommand="prefs_dialog_ok"
+       />
+
+      <button
+        id="prefs-dialog.apply"
+        label="Apply"
+        oncommand="prefs_dialog_apply"
+       />
+
+      <button
+        id="prefs-dialog.save"
+        label="Save"
+        oncommand="prefs_dialog_save"
+       />
+
+      <button
+        id="prefs-dialog.cancel"
+        label="Cancel"
+        oncommand="prefs_dialog_cancel"
+       />
+
+    </hbox>
+  </vbox>
+</dialog>
diff -x entries -urN ethereal/xulender/progress-dialog.xul ethereal-win32/xulender/progress-dialog.xul
--- ethereal/xulender/progress-dialog.xul	1969-12-31 18:00:00.000000000 -0600
+++ ethereal-win32/xulender/progress-dialog.xul	2004-06-16 13:10:17.000000000 -0500
@@ -0,0 +1,90 @@
+<?xml version="1.0"?>
+<dialog
+  id="progress-dialog"
+  title=""
+  width="250"
+  height="100"
+  >
+
+  <vbox>
+    <grid> <!-- Labels -->
+      <columns>
+	<column/>           <!-- Static labels -->
+	<column flex="1" /> <!-- Dynamic labels -->
+      </columns>
+
+      <rows>
+	<row>
+	  <description
+	    flex="1"
+	    id="progress-dlg.task_title"
+	    style="text-align: right;"
+	  > </description>
+	  <description 
+	    id="progress-dlg.item_title" 
+	    flex="1"
+	  > </description>
+	</row>
+
+	<row>
+	  <description
+	    flex="1"
+	    style="text-align: right;"
+	  >Status: </description>
+	  <description 
+	    id="progress-dlg.status" 
+	    flex="1"
+	  > </description>
+	</row>
+
+	<row>
+	  <description
+	    flex="1"
+	    style="text-align: right;"
+	  >Elapsed Time: </description>
+	  <description 
+	    id="progress-dlg.time.elapsed" 
+	    flex="1"
+	  >00:00</description>
+	</row>
+
+	<row>
+	  <description
+	    flex="1"
+	    style="text-align: right;"
+	  >Time Left: </description>
+	  <description 
+	    id="progress-dlg.time.left" 
+	    flex="1"
+	  >--:--</description>
+	</row>
+
+	<row>
+	  <description
+	    flex="1"
+	    style="text-align: right;"
+	  >Progress: </description>
+	  <hbox>
+	    <progressmeter 
+	      id="progress-dlg.progress" 
+	    />
+	    <description
+	      id="progress-dlg.percentage"
+	    >0%</description>
+	  </hbox>
+	</row>
+      </rows>
+    </grid>
+    
+    <hbox>
+      <spacer flex="1" />
+      <button
+        id="progress-dlg.cancel"
+        label="Cancel"
+        oncommand="progress_dialog_destroy"
+      />
+      <spacer flex="1" />
+    </hbox>
+
+  </vbox>
+</dialog>
diff -x entries -urN ethereal/xulender/win32-c-sdk/Makefile.nmake ethereal-win32/xulender/win32-c-sdk/Makefile.nmake
--- ethereal/xulender/win32-c-sdk/Makefile.nmake	1969-12-31 18:00:00.000000000 -0600
+++ ethereal-win32/xulender/win32-c-sdk/Makefile.nmake	2004-07-13 18:44:11.000000000 -0500
@@ -0,0 +1,104 @@
+include <win32.mak>
+include ..\..\config.nmake
+
+.SUFFIXES : .xul
+
+CC = cl
+LINK = link
+
+CFLAGS=-DHAVE_CONFIG_H $(LOCAL_CFLAGS) $(GLIB_CFLAGS) /I. /Iwiretap \
+	/I..\.. /Igenerated /Istdelements /Ilocalelements \
+	$(ZLIB_CFLAGS) /I$(PCAP_DIR)\include \
+	/I$(NET_SNMP_DIR)\include /I$(NET_SNMP_DIR)\win32 \
+	$(ADNS_CFLAGS) $(PCRE_CFLAGS) -D_U_="" -D_NEED_VAR_IMPORT_
+
+CVARSDLL=-DWIN32 -DNULL=0 -D_MT -D_DLL
+
+XULENDERFLAGS=-I.. -f win32csdk
+
+.c.obj::
+	$(CC) $(CVARSDLL) $(CFLAGS) -Fd.\ -c $<
+
+{localelements}.c.obj::
+	$(CC) $(CVARSDLL) $(CFLAGS) -Fd.\ -c $<
+
+{stdelements}.c.obj::
+	$(CC) $(CVARSDLL) $(CFLAGS) -Fd.\ -c $<
+
+{..\}.xul.obj:
+	cd generated
+	$(PYTHON) ..\..\xulender.py $(XULENDERFLAGS) $<
+	cd ..
+	$(CC) $(CVARSDLL) $(CFLAGS) -Fd.\ -c generated\$(*B).c
+
+GENERATED_OBJECTS = \
+	ethereal-main.obj \
+	about-dialog.obj \
+	capture-dialog.obj \
+	capture-info-dialog.obj \
+	preferences-dialog.obj \
+	progress-dialog.obj
+
+LOCAL_OBJECTS = \
+	ethereal-byteview.obj \
+	ethereal-combobox.obj \
+	ethereal-packetlist.obj \
+	ethereal-spinner.obj \
+	ethereal-treeview.obj
+
+STD_OBJECTS = \
+	win32-box.obj \
+	win32-button.obj \
+	win32-checkbox.obj \
+	win32-description.obj \
+	win32-deck.obj \
+	win32-element.obj \
+	win32-grid.obj \
+	win32-groupbox.obj \
+	win32-listbox.obj \
+	win32-menulist.obj \
+	win32-progressmeter.obj \
+	win32-radio.obj \
+	win32-spacer.obj \
+	win32-textbox.obj \
+	win32-tree.obj
+
+OBJECTS = \
+	$(GENERATED_OBJECTS) \
+	$(LOCAL_OBJECTS) \
+	$(STD_OBJECTS) \
+	about-dlg.obj \
+	capture_combo_utils.obj \
+	capture-util.obj \
+	prefs-dlg.obj \
+	ui_util.obj \
+	win32-color-filters.obj \
+	win32-file-dlg.obj \
+	win32-main.obj \
+	win32-menu.obj \
+	win32-progress-dlg.obj \
+	win32-simple-dialog.obj \
+	win32-statusbar.obj \
+	win32-tap-register.obj \
+	win32-util.obj
+
+RESOURCES = win32-main.res
+
+XUL_SCRIPTS = \
+	..\frontendutil.py \
+	..\xulender.py \
+	..\win32csdk.py
+
+all: win32-c-sdk.lib $(RESOURCES)
+
+$(GENERATED_OBJECTS): $(XUL_SCRIPTS)
+
+win32-c-sdk.lib : $(OBJECTS)
+	lib /out:win32-c-sdk.lib $(OBJECTS)
+
+clean:
+	rm -f generated/* *.obj *.lib *.exe $(RESOURCES)
+
+# XXX - Change this to delete any autogenerated files
+distclean: clean
+	rm -rf generated/* *.obj
diff -x entries -urN ethereal/xulender/win32-c-sdk/about-dlg.c ethereal-win32/xulender/win32-c-sdk/about-dlg.c
--- ethereal/xulender/win32-c-sdk/about-dlg.c	1969-12-31 18:00:00.000000000 -0600
+++ ethereal-win32/xulender/win32-c-sdk/about-dlg.c	2004-07-08 10:06:29.000000000 -0500
@@ -0,0 +1,103 @@
+
+#ifdef HAVE_CONFIG_H
+# include "config.h"
+#endif
+
+#include "globals.h"
+#include "glib.h"
+#include <windows.h>
+#include <windowsx.h>
+
+
+#include "win32-c-sdk.h"
+
+#include "win32-globals.h"
+#include "win32-util.h"
+#include "about-dlg.h"
+
+#include "about-dialog.h"
+
+extern GString *comp_info_str, *runtime_info_str;
+
+void
+about_dialog_init(HWND hw_parent) {
+    win32_element_t *about_dlg = win32_identifier_get_str("about-dialog");
+    HWND             hw_about;
+    win32_element_t *about_vbox;
+    win32_element_t *descr;
+    int              i = 0;
+    GString         *line;
+
+    if (! about_dlg) {
+	hw_about = about_dialog_dialog_create(hw_parent);
+	about_dlg = (win32_element_t *) GetWindowLong(hw_about, GWL_USERDATA);
+	about_vbox = win32_identifier_get_str("about-dlg.vbox");
+	win32_element_assert(about_vbox);
+
+	descr = win32_description_new(about_vbox->h_wnd, "Ethereal - Network Protocol Analyzer\n");
+	win32_box_add(about_vbox, descr, i++);
+
+	line = g_string_new("Version " VERSION
+#ifdef CVSVERSION
+	    " (" CVSVERSION ")"
+#endif
+	    " (C) 1998-2004 Gerald Combs <gerald@xxxxxxxxxxxx>\n");
+
+	descr = win32_description_new(about_vbox->h_wnd, line->str);
+	win32_box_add(about_vbox, descr, i++);
+
+	g_string_printf(line, "%s\n", comp_info_str->str);
+	descr = win32_description_new(about_vbox->h_wnd, line->str);
+	win32_box_add(about_vbox, descr, i++);
+
+	g_string_printf(line, "%s\n", runtime_info_str->str);
+	descr = win32_description_new(about_vbox->h_wnd, line->str);
+	win32_box_add(about_vbox, descr, i++);
+
+	g_string_printf(line, "%s\n", "Ethereal is Open Source Software released under the GNU General Public License.");
+	descr = win32_description_new(about_vbox->h_wnd, line->str);
+	win32_box_add(about_vbox, descr, i++);
+
+	g_string_printf(line, "%s\n", "Check the man page and http://www.ethereal.com for more information.");
+	descr = win32_description_new(about_vbox->h_wnd, line->str);
+	win32_box_add(about_vbox, descr, i++);
+
+	win32_element_resize(about_dlg, -1, -1);
+    }
+    about_dialog_dialog_show(about_dlg->h_wnd);
+}
+
+BOOL CALLBACK
+about_dialog_dlg_proc(HWND hw_about, UINT msg, WPARAM w_param, LPARAM l_param)
+{
+    win32_element_t *dlg_box;
+
+    switch( msg ) {
+	case WM_INITDIALOG:
+	    about_dialog_handle_wm_initdialog(hw_about);
+	    dlg_box = (win32_element_t *) GetWindowLong(hw_about, GWL_USERDATA);
+	    win32_element_assert (dlg_box);
+	    win32_element_resize(dlg_box, -1, -1);
+	    return 0;
+	    break;
+	case WM_COMMAND:
+	    return 0;
+	    break;
+	case WM_CLOSE:
+	    about_dialog_dialog_hide(hw_about);
+	    return 1;
+	    break;
+	default:
+	    return 0;
+    }
+    return 0;
+}
+
+void
+about_dialog_hide(win32_element_t *ok_el) {
+    win32_element_t *about_el = win32_identifier_get_str("about-dialog");
+
+    win32_element_assert(about_el);
+    about_dialog_dialog_hide(about_el->h_wnd);
+}
+
diff -x entries -urN ethereal/xulender/win32-c-sdk/about-dlg.h ethereal-win32/xulender/win32-c-sdk/about-dlg.h
--- ethereal/xulender/win32-c-sdk/about-dlg.h	1969-12-31 18:00:00.000000000 -0600
+++ ethereal-win32/xulender/win32-c-sdk/about-dlg.h	2004-06-21 15:39:56.000000000 -0500
@@ -0,0 +1,8 @@
+/* about-dlg.h */
+
+#ifndef ABOUT_DLG_H
+#define ABOUT_DLG_H
+
+void about_dialog_init(HWND hw_parent);
+
+#endif /* prefs-dlg.h */
diff -x entries -urN ethereal/xulender/win32-c-sdk/capture-util.c ethereal-win32/xulender/win32-c-sdk/capture-util.c
--- ethereal/xulender/win32-c-sdk/capture-util.c	1969-12-31 18:00:00.000000000 -0600
+++ ethereal-win32/xulender/win32-c-sdk/capture-util.c	2004-07-14 15:24:49.000000000 -0500
@@ -0,0 +1,677 @@
+/* capture-util.c
+ * UI utility routines
+ *
+ * $Id: ui_util.c,v 1.19 2004/02/13 00:53:37 guy Exp $
+ *
+ * Ethereal - Network traffic analyzer
+ * By Gerald Combs <gerald@xxxxxxxxxxxx>
+ * Copyright 1998 Gerald Combs
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
+ */
+
+/*
+ * Much (most?) of this stuff was copied from gtk/ui_util.c and
+ * gtk/capture_info_dlg.c, and modified accordingly.
+ */
+
+#include "config.h"
+
+#ifdef HAVE_LIBPCAP
+#include <pcap.h>
+#endif
+
+#include <windows.h>
+#include <windowsx.h>
+#include <commctrl.h>
+
+#include "globals.h"
+#include <glib.h>
+
+#include "ringbuffer.h"
+#include "pcap-util.h"
+
+#include "win32-globals.h"
+#include "win32-c-sdk.h"
+#include "ethereal-win32.h"
+
+#include <epan/packet.h>
+#include <epan/resolv.h>
+#include "capture.h"
+#include "simple_dialog.h"
+#include <epan/filesystem.h>
+
+#include "capture-util.h"
+#include "capture-dialog.h"
+#include "capture-info-dialog.h"
+
+/*
+ * These should match the element IDs in capture-info-dialog.xul AND
+ * the packet_counts struct in epan/packet.h.
+ */
+gchar *info_element_id[] = {
+    "sctp",
+    "tcp",
+    "udp",
+    "icmp",
+    "arp",
+    "ospf",
+    "gre",
+    "netbios",
+    "ipx",
+    "vines",
+    "other"
+    /* We handle "total" elsewhere. */
+};
+
+
+/* capture_info_counts_t and capture_info_ui_t wer
+/* a single capture counter value (with title, pointer to value and GtkWidgets) */
+/* as the packet_counts is a struct, not an array, keep a pointer to the */
+/* corresponding value packet_counts, to speed up (and simplify) output of values */
+typedef struct {
+    gint            *value_ptr;
+    win32_element_t *value_ds, *percent_pm, *percent_ds;
+} capture_info_counts_t;
+
+/* all data we need to know of this dialog, after creation finished */
+typedef struct {
+    win32_element_t       *cap_info_dlg, *total_el, *running_time_el;
+    capture_info_counts_t  counts[CAPTURE_PACKET_COUNTS - 1];
+} capture_info_ui_t;
+
+static guint32 time_unit_menulist_get_value(win32_element_t *ml_el, guint32 value);
+static guint32 size_unit_menulist_get_value(win32_element_t *ml_el, guint32 value);
+
+
+/* XXX - Move this to epan/strutil.c */
+/* calculate the percentage of the current packet type */
+static float
+pct(gint num, gint denom) {
+    if (denom) {
+	return (float) (num * 100.0 / denom);
+    } else {
+	return 0.0;
+    }
+}
+
+/* Defined in capture.h */
+
+/* create the capture info dialog */
+void
+capture_info_create(capture_info *cinfo, gchar *iface) {
+    capture_info_ui_t *info;
+    gchar id_str[64];
+    int i;
+
+    if (! g_hw_capture_info_dlg) {
+    	g_hw_capture_info_dlg = capture_info_dialog_dialog_create(g_hw_mainwin);
+    }
+    SetWindowText(g_hw_capture_info_dlg,
+	g_strdup_printf("Ethereal: Capture - Interface %s", iface));
+
+    info = g_malloc0(sizeof(capture_info_ui_t));
+
+    info->cap_info_dlg = (win32_element_t *) GetWindowLong(g_hw_capture_info_dlg, GWL_USERDATA);
+    info->total_el = win32_identifier_get_str("capture-count-total");
+    win32_element_assert(info->total_el);
+    info->running_time_el = win32_identifier_get_str("capture-run-time");
+    win32_element_assert(info->running_time_el);
+
+    info->counts[0].value_ptr  = &(cinfo->counts->sctp);
+    info->counts[1].value_ptr  = &(cinfo->counts->tcp);
+    info->counts[2].value_ptr  = &(cinfo->counts->udp);
+    info->counts[3].value_ptr  = &(cinfo->counts->icmp);
+    info->counts[4].value_ptr  = &(cinfo->counts->arp);
+    info->counts[5].value_ptr  = &(cinfo->counts->ospf);
+    info->counts[6].value_ptr  = &(cinfo->counts->gre);
+    info->counts[7].value_ptr  = &(cinfo->counts->netbios);
+    info->counts[8].value_ptr  = &(cinfo->counts->ipx);
+    info->counts[9].value_ptr  = &(cinfo->counts->vines);
+    info->counts[10].value_ptr = &(cinfo->counts->other);
+
+    for (i = 0; i < CAPTURE_PACKET_COUNTS - 1; i++) {
+	g_snprintf(id_str, sizeof(id_str), "capture-%s-count", info_element_id[i]);
+	info->counts[i].value_ds = win32_identifier_get_str(id_str);
+	win32_element_assert(info->counts[i].value_ds);
+	g_snprintf(id_str, sizeof(id_str), "capture-%s-progress", info_element_id[i]);
+	info->counts[i].percent_pm = win32_identifier_get_str(id_str);
+	win32_element_assert(info->counts[i].percent_pm);
+	g_snprintf(id_str, sizeof(id_str), "capture-%s-percent", info_element_id[i]);
+	info->counts[i].percent_ds = win32_identifier_get_str(id_str);
+	win32_element_assert(info->counts[i].percent_ds);
+    }
+
+    capture_info_dialog_dialog_show(g_hw_capture_info_dlg);
+
+    cinfo->ui = info;
+}
+
+/* Update the capture info counters in the dialog */
+void
+capture_info_update(capture_info *cinfo) {
+    int i;
+    gchar label_str[64];
+    capture_info_ui_t *info = cinfo->ui;
+
+    g_snprintf(label_str, sizeof(label_str), "%02ld:%02ld:%02ld",
+	(long)(cinfo->running_time/3600), (long)((cinfo->running_time%3600)/60),
+	(long)(cinfo->running_time%60));
+    SetWindowText(info->running_time_el->h_wnd, label_str);
+
+    g_snprintf(label_str, sizeof(label_str), "%d", cinfo->counts->total);
+    SetWindowText(info->total_el->h_wnd, label_str);
+
+    for (i = 0; i < CAPTURE_PACKET_COUNTS - 1; i++) {
+	g_snprintf(label_str, sizeof(label_str), "%d", *info->counts[i].value_ptr);
+	SetWindowText(info->counts[i].value_ds->h_wnd, label_str);
+	SendMessage(info->counts[i].percent_pm->h_wnd, PBM_SETPOS,
+	    (int) (pct(*info->counts[i].value_ptr, cinfo->counts->total)), 0);
+	g_snprintf(label_str, sizeof(label_str), "%.1f%%",
+	    pct(*info->counts[i].value_ptr, cinfo->counts->total));
+	SetWindowText(info->counts[i].percent_ds->h_wnd, label_str);
+    }
+// XXX - Fix resizing.
+//    win32_element_resize(info->cap_info_dlg, -1, -1);
+}
+
+/* destroy the capture info dialog again */
+void
+capture_info_destroy(capture_info *cinfo) {
+    capture_info_dialog_dialog_hide(g_hw_capture_info_dlg);
+    g_free(cinfo->ui);
+}
+
+/* Defined in capture-util.h */
+
+/* Collect our capture parameters and start capturing.  This is the
+   counterpart to gtk/capture_dlg.c:capture_prep_ok_cb(). */
+
+void
+capture_dialog_start_capture (win32_element_t *ok_el) {
+    gchar           *save_file = NULL, *g_save_file = NULL;
+    gchar           *if_name = NULL;
+    gchar           *filter_text = NULL;
+    win32_element_t *if_el, *cd_el = win32_identifier_get_str("capture-dialog");
+    win32_element_t *cb_el, *sp_el, *tb_el, *ml_el;
+    int len;
+    gchar           *cf_name, *dirname;
+    guint32          tmp;
+
+    win32_element_assert(ok_el);
+    win32_element_assert(cd_el);
+
+    /* Fetch our interface settings */
+    if_el = win32_identifier_get_str("capture-dialog.interface-combo");
+    len = SendMessage(if_el->h_wnd, WM_GETTEXTLENGTH, 0, 0);
+    if (len > 0) {
+	len++;
+	if_name = g_malloc(len);
+	SendMessage(if_el->h_wnd, WM_GETTEXT, (WPARAM) len, (LPARAM) if_name);
+    }
+
+    if (*if_name == '\0' || if_name == NULL) {
+	simple_dialog(ESD_TYPE_ERROR, ESD_BTN_OK,
+	    "You didn't specify an interface on which to capture packets.");
+	if (if_name)
+	    g_free(if_name);
+	return;
+    }
+
+    if (cfile.iface)
+	g_free(cfile.iface);
+    cfile.iface = g_strdup(if_name);
+    g_free(if_name);
+
+    /* XXX - We haven't implemented linktype options yet. */
+    capture_opts.linktype = -1;
+
+    /* Fetch the capture buffer size */
+    sp_el = win32_identifier_get_str("capture-dialog.buffer-size");
+    capture_opts.buffer_size = ethereal_spinner_get_pos(sp_el);
+
+    /* Fetch the snapshot length */
+    cb_el = win32_identifier_get_str("capture-dialog.packet-size-cb");
+    capture_opts.has_snaplen = win32_checkbox_get_state(cb_el);
+    if (capture_opts.has_snaplen) {
+	sp_el = win32_identifier_get_str("capture-dialog.packet-size-spinner");
+	capture_opts.snaplen = ethereal_spinner_get_pos(sp_el);
+	if (capture_opts.snaplen < 1)
+	    capture_opts.snaplen = WTAP_MAX_PACKET_SIZE;
+	else if (capture_opts.snaplen < MIN_PACKET_SIZE)
+	    capture_opts.snaplen = MIN_PACKET_SIZE;
+    }
+
+    /* Promiscuous mode */
+    cb_el = win32_identifier_get_str("capture-dialog.promiscuous");
+    capture_opts.promisc_mode = win32_checkbox_get_state(cb_el);
+
+    /* Fetch the capture filter */
+    /* XXX - don't try to get clever and set "cfile.filter" to NULL if the
+       filter string is empty, as an indication that we don't have a filter
+       and thus don't have to set a filter when capturing - the version of
+       libpcap in Red Hat Linux 6.1, and versions based on later patches
+       in that series, don't bind the AF_PACKET socket to an interface
+       until a filter is set, which means they aren't bound at all if
+       no filter is set, which means no packets arrive as input on that
+       socket, which means Ethereal never sees any packets. */
+    tb_el = win32_identifier_get_str("capture-dialog.capture-filter");
+    filter_text = win32_textbox_get_text(tb_el);
+    g_assert(filter_text != NULL);
+
+    if (cfile.cfilter)
+	g_free(cfile.cfilter);
+
+    cfile.cfilter = filter_text;
+
+    /* Fetch the save file */
+    tb_el = win32_identifier_get_str("capture-dialog.save-file");
+    g_save_file = win32_textbox_get_text(tb_el);
+    if (g_save_file && g_save_file[0]) {
+	/* User specified a file to which the capture should be written. */
+	save_file = g_save_file;
+	/* Save the directory name for future file dialogs. */
+	cf_name = g_strdup(g_save_file);
+	dirname = get_dirname(cf_name);  /* Overwrites cf_name */
+	set_last_open_dir(dirname);
+	g_free(cf_name);
+    } else {
+	/* User didn't specify a file; save to a temporary file. */
+	if (g_save_file)
+	    g_free(g_save_file);
+	save_file = NULL;
+    }
+
+    /* Fetch our autostop settings */
+    cb_el = win32_identifier_get_str("capture-dialog.stop-after-packets-cb");
+    capture_opts.has_autostop_packets = win32_checkbox_get_state(cb_el);
+    if (capture_opts.has_autostop_packets) {
+	sp_el = win32_identifier_get_str("capture-dialog.stop-after-packets-spinner");
+	capture_opts.autostop_packets = ethereal_spinner_get_pos(sp_el);
+    }
+
+    cb_el = win32_identifier_get_str("capture-dialog.stop-after-time-cb");
+    capture_opts.has_autostop_duration = win32_checkbox_get_state(cb_el);
+    if (capture_opts.has_autostop_duration) {
+	sp_el = win32_identifier_get_str("capture-dialog.stop-after-time-spinner");
+	ml_el = win32_identifier_get_str("capture-dialog.stop-after-time-ml");
+	capture_opts.autostop_duration = ethereal_spinner_get_pos(sp_el);
+	capture_opts.autostop_duration =
+	    time_unit_menulist_get_value(ml_el, capture_opts.autostop_duration);
+    }
+
+    cb_el = win32_identifier_get_str("capture-dialog.update-real-time");
+    capture_opts.sync_mode = win32_checkbox_get_state(cb_el);
+
+    cb_el = win32_identifier_get_str("capture-dialog.auto-scroll-live");
+    auto_scroll_live = win32_checkbox_get_state(cb_el);
+
+    cb_el = win32_identifier_get_str("capture-dialog.show_info");
+    capture_opts.show_info = ! win32_checkbox_get_state(cb_el);
+
+    /* Fetch our name resolution settings */
+    cb_el = win32_identifier_get_str("capture-mac-resolution");
+    if (win32_checkbox_get_state(cb_el))
+	g_resolv_flags |= RESOLV_MAC;
+
+    cb_el = win32_identifier_get_str("capture-network-resolution");
+    if (win32_checkbox_get_state(cb_el))
+	g_resolv_flags |= RESOLV_NETWORK;
+
+    cb_el = win32_identifier_get_str("capture-transport-resolution");
+    if (win32_checkbox_get_state(cb_el))
+	g_resolv_flags |= RESOLV_TRANSPORT;
+
+    cb_el = win32_identifier_get_str("capture-dialog.ring-buffer-with-cb");
+    capture_opts.has_ring_num_files = win32_checkbox_get_state(cb_el);
+
+    sp_el = win32_identifier_get_str("capture-dialog.ring-buffer-with-spinner");
+    capture_opts.ring_num_files = ethereal_spinner_get_pos(sp_el);
+    if (capture_opts.ring_num_files > RINGBUFFER_MAX_NUM_FILES)
+	capture_opts.ring_num_files = RINGBUFFER_MAX_NUM_FILES;
+#if RINGBUFFER_MIN_NUM_FILES > 0
+    else if (capture_opts.ring_num_files < RINGBUFFER_MIN_NUM_FILES)
+	capture_opts.ring_num_files = RINGBUFFER_MIN_NUM_FILES;
+#endif
+
+    cb_el = win32_identifier_get_str("capture-dialog.use-multiple-files");
+    capture_opts.multi_files_on = win32_checkbox_get_state(cb_el);
+
+    if(capture_opts.sync_mode)
+	capture_opts.multi_files_on = FALSE;
+
+    if (capture_opts.multi_files_on) {
+	cb_el = win32_identifier_get_str("capture-dialog.next-file-every-size-cb");
+	capture_opts.has_autostop_filesize = win32_checkbox_get_state(cb_el);
+	if (capture_opts.has_autostop_filesize) {
+	    sp_el = win32_identifier_get_str("capture-dialog.stop-after-size-spinner");
+	    tmp = ethereal_spinner_get_pos(sp_el);
+	    tmp = size_unit_menulist_get_value(sp_el, tmp);
+	    if(tmp != 0) {
+		capture_opts.autostop_filesize = tmp;
+	    } else {
+		simple_dialog(ESD_TYPE_ERROR, ESD_BTN_OK,
+		"Multiple files: Requested filesize too large!\n\n"
+		"The setting \"Next file every x byte(s)\" can't be greater than %u bytes (2GB).", G_MAXINT);
+		return;
+	    }
+	}
+	/* test if the settings are ok for a ringbuffer */
+	if (save_file == NULL) {
+	    simple_dialog(ESD_TYPE_ERROR, ESD_BTN_OK,
+		"Multiple files: No capture file name given!\n\n"
+		"You must specify a filename if you want to use multiple files.");
+	    return;
+	} else if (!capture_opts.has_autostop_filesize) {
+	    simple_dialog(ESD_TYPE_ERROR, ESD_BTN_OK,
+		"Multiple files: No file limit given!\n\n"
+		"You must specify a file size at which is switched to the next capture file\n"
+		"if you want to use multiple files.");
+	    g_free(save_file);
+	    return;
+	}
+    } else {
+	cb_el = win32_identifier_get_str("capture-dialog.next-file-every-size-cb");
+	capture_opts.has_autostop_filesize = win32_checkbox_get_state(cb_el);
+	if (capture_opts.has_autostop_filesize) {
+	    sp_el = win32_identifier_get_str("capture-dialog.stop-after-size-spinner");
+	    tmp = ethereal_spinner_get_pos(sp_el);
+	    tmp = size_unit_menulist_get_value(sp_el, tmp);
+	    if(tmp != 0) {
+		capture_opts.autostop_filesize = tmp;
+	    } else {
+		simple_dialog(ESD_TYPE_ERROR, ESD_BTN_OK,
+		    "Stop Capture: Requested filesize too large!\n\n"
+		    "The setting \"... after x byte(s)\" can't be greater than %u bytes (2GB).", G_MAXINT);
+		return;
+	    }
+	}
+    }
+
+    cb_el = win32_identifier_get_str("capture-dialog.next-file-every-time-cb");
+    capture_opts.has_file_duration = win32_checkbox_get_state(cb_el);
+
+    if (capture_opts.has_file_duration) {
+	sp_el = win32_identifier_get_str("capture-dialog.next-file-every-time-spinner");
+	capture_opts.file_duration = ethereal_spinner_get_pos(sp_el);
+	capture_opts.file_duration = time_unit_menulist_get_value(sp_el, capture_opts.file_duration);
+    }
+
+    cb_el = win32_identifier_get_str("capture-dialog.stop-capture-after-cb");
+    capture_opts.has_autostop_files = win32_checkbox_get_state(cb_el);
+
+    if (capture_opts.has_autostop_files) {
+	sp_el = win32_identifier_get_str("capture-dialog.stop-capture-after-spinner");
+	capture_opts.file_duration = ethereal_spinner_get_pos(sp_el);
+    }
+
+    capture_dialog_dialog_hide(cd_el->h_wnd);
+
+    do_capture(save_file);
+    if (save_file != NULL)
+	g_free(save_file);
+}
+
+void
+capture_info_dialog_stop_capture(win32_element_t *cid_el) {
+    capture_stop();
+}
+
+/* Defined in capture-dialog.h */
+
+void
+capture_dialog_hide(win32_element_t *cancel_el) {
+    win32_element_t *cd_el = win32_identifier_get_str("capture-dialog");
+
+    win32_element_assert(cd_el);
+
+    capture_dialog_dialog_hide(cd_el->h_wnd);
+}
+
+void
+capture_dialog_limit_packet_size(win32_element_t *cb_el) {
+    win32_element_t *sp_el;
+
+    capture_opts.has_snaplen = win32_checkbox_get_state(cb_el);
+
+    sp_el = win32_identifier_get_str("capture-dialog.packet-size-spinner");
+    win32_element_set_enabled(sp_el, win32_checkbox_get_state(cb_el));
+}
+
+/*
+ * This is the counterpart of capture_prep_adjust_sensitivity() in
+ * gtk/capture_dlg.c.  We have several controls in the capture dialog
+ * that affect the behavior of other controls.  Adjust them all here.
+ */
+void
+capture_dialog_adjust_sensitivity(win32_element_t *cb_el) {
+    win32_element_t *sync_cb, *multi_files_on_cb, *auto_scroll_cb,
+		    *ring_filesize_cb, *ring_filesize_sp,
+		    *ring_filesize_ml, *file_duration_cb,
+		    *file_duration_sp, *file_duration_ml,
+		    *ringbuffer_nbf_cb, *ringbuffer_nbf_sp,
+		    *ringbuffer_nbf_ds, *stop_filesize_cb,
+		    *stop_filesize_sp, *stop_filesize_ml,
+		    *stop_files_cb, *stop_files_sp, *stop_files_ds,
+		    *stop_packets_cb, *stop_packets_sp, *stop_packets_ds,
+		    *stop_duration_cb, *stop_duration_sp, *stop_duration_ml,
+		    *hide_info_cb;
+
+    sync_cb           = win32_identifier_get_str("capture-dialog.update-real-time");
+    multi_files_on_cb = win32_identifier_get_str("capture-dialog.use-multiple-files");
+    auto_scroll_cb    = win32_identifier_get_str("capture-dialog.auto-scroll-live");
+    hide_info_cb      = win32_identifier_get_str("capture-dialog.show_info");
+    ring_filesize_cb  = win32_identifier_get_str("capture-dialog.next-file-every-size-cb");
+    ring_filesize_sp  = win32_identifier_get_str("capture-dialog.next-file-every-size-spinner");
+    ring_filesize_ml  = win32_identifier_get_str("capture-dialog.next-file-every-size-ml");
+    file_duration_cb  = win32_identifier_get_str("capture-dialog.next-file-every-time-cb");
+    file_duration_sp  = win32_identifier_get_str("capture-dialog.next-file-every-time-spinner");
+    file_duration_ml  = win32_identifier_get_str("capture-dialog.next-file-every-time-ml");
+    ringbuffer_nbf_cb = win32_identifier_get_str("capture-dialog.ring-buffer-with-cb");
+    ringbuffer_nbf_sp = win32_identifier_get_str("capture-dialog.ring-buffer-with-spinner");
+    ringbuffer_nbf_ds = win32_identifier_get_str("capture-dialog.ring-buffer-with-descr");
+    stop_filesize_cb  = win32_identifier_get_str("capture-dialog.stop-after-size-cb");
+    stop_filesize_sp  = win32_identifier_get_str("capture-dialog.stop-after-size-spinner");
+    stop_filesize_ml  = win32_identifier_get_str("capture-dialog.stop-after-size-ml");
+    stop_files_cb     = win32_identifier_get_str("capture-dialog.stop-capture-after-cb");
+    stop_files_sp     = win32_identifier_get_str("capture-dialog.stop-capture-after-spinner");
+    stop_files_ds     = win32_identifier_get_str("capture-dialog.stop-capture-after-descr");
+    stop_packets_cb   = win32_identifier_get_str("capture-dialog.stop-after-packets-cb");
+    stop_packets_sp   = win32_identifier_get_str("capture-dialog.stop-after-packets-spinner");
+    stop_packets_ds   = win32_identifier_get_str("capture-dialog.stop-after-packets-descr");
+    stop_duration_cb  = win32_identifier_get_str("capture-dialog.stop-after-time-cb");
+    stop_duration_sp  = win32_identifier_get_str("capture-dialog.stop-after-time-spinner");
+    stop_duration_ml  = win32_identifier_get_str("capture-dialog.stop-after-time-ml");
+
+    if (win32_checkbox_get_state(sync_cb)) {
+	/* "Update list of packets in real time" captures enabled; we don't
+	   support ring buffer mode for those captures, so turn ring buffer
+	   mode off if it's on, and make its toggle button, and the spin
+	   button for the number of ring buffer files (and the spin button's
+	   label), insensitive. */
+	win32_checkbox_set_state(multi_files_on_cb, FALSE);
+	win32_element_set_enabled(multi_files_on_cb, FALSE);
+
+       /* Auto-scroll mode is meaningful only in "Update list of packets
+	  in real time" captures, so make its toggle button sensitive. */
+	win32_element_set_enabled(auto_scroll_cb, TRUE);
+    } else {
+	/* "Update list of packets in real time" captures disabled; that
+	   means ring buffer mode is OK, so make its toggle button
+	   sensitive. */
+	win32_element_set_enabled(multi_files_on_cb, TRUE);
+
+	/* Auto-scroll mode is meaningful only in "Update list of packets
+	   in real time" captures, so make its toggle button insensitive. */
+	win32_element_set_enabled(auto_scroll_cb, FALSE);
+    }
+
+    if (win32_checkbox_get_state(multi_files_on_cb)) {
+	/* Ring buffer mode enabled. */
+	/* Filesize is currently forced */
+	win32_element_set_enabled(ring_filesize_cb, TRUE);
+	win32_checkbox_set_state(ring_filesize_cb, TRUE);
+
+	win32_element_set_enabled(ringbuffer_nbf_cb, TRUE);
+	win32_element_set_enabled(ringbuffer_nbf_sp,
+	    win32_checkbox_get_state(ringbuffer_nbf_cb));
+	win32_element_set_enabled(ringbuffer_nbf_ds,
+	    win32_checkbox_get_state(ringbuffer_nbf_cb));
+
+	/* The ring filesize spinbox is sensitive if the "Next capture file
+	   after N kilobytes" checkbox is on. */
+	win32_element_set_enabled(ring_filesize_sp,
+	    win32_checkbox_get_state(ring_filesize_cb));
+	win32_element_set_enabled(ring_filesize_ml,
+	    win32_checkbox_get_state(ring_filesize_cb));
+
+        /* The ring duration spinbox is sensitive if the "Next capture file
+	   after N seconds" checkbox is on. */
+	win32_element_set_enabled(file_duration_cb, TRUE);
+	win32_element_set_enabled(file_duration_sp,
+	    win32_checkbox_get_state(file_duration_cb));
+	win32_element_set_enabled(file_duration_ml,
+	    win32_checkbox_get_state(file_duration_cb));
+
+	win32_element_set_enabled(stop_filesize_cb, FALSE);
+	win32_element_set_enabled(stop_filesize_sp, FALSE);
+	win32_element_set_enabled(stop_filesize_ml, FALSE);
+
+	win32_element_set_enabled(stop_files_cb, TRUE);
+	win32_element_set_enabled(stop_files_sp,
+	    win32_checkbox_get_state(stop_files_cb));
+	win32_element_set_enabled(stop_files_ds,
+	    win32_checkbox_get_state(stop_files_cb));
+    } else {
+	/* Ring buffer mode disabled. */
+	win32_element_set_enabled(ringbuffer_nbf_cb, FALSE);
+	win32_element_set_enabled(ringbuffer_nbf_sp, FALSE);
+	win32_element_set_enabled(ringbuffer_nbf_ds, FALSE);
+
+	win32_element_set_enabled(ring_filesize_cb, FALSE);
+	win32_element_set_enabled(ring_filesize_sp, FALSE);
+	win32_element_set_enabled(ring_filesize_ml, FALSE);
+
+	win32_element_set_enabled(file_duration_cb, FALSE);
+	win32_element_set_enabled(file_duration_sp, FALSE);
+	win32_element_set_enabled(file_duration_ml, FALSE);
+
+	/* The maximum file size spinbox is sensitive if the "Stop capture
+	   after N kilobytes" checkbox is on. */
+	win32_element_set_enabled(stop_filesize_cb, TRUE);
+	win32_element_set_enabled(stop_filesize_sp,
+	    win32_checkbox_get_state(stop_filesize_cb));
+	win32_element_set_enabled(stop_filesize_ml,
+	    win32_checkbox_get_state(stop_filesize_cb));
+
+	win32_element_set_enabled(stop_files_cb, FALSE);
+	win32_element_set_enabled(stop_files_sp, FALSE);
+	win32_element_set_enabled(stop_files_ds, FALSE);
+    }
+    /* The maximum packet count spinbox is sensitive if the "Stop capture
+       after N packets" checkbox is on. */
+    win32_element_set_enabled(stop_packets_sp,
+	win32_checkbox_get_state(stop_packets_cb));
+    win32_element_set_enabled(stop_packets_ds,
+	win32_checkbox_get_state(stop_packets_cb));
+
+    /* The capture duration spinbox is sensitive if the "Stop capture
+       after N seconds" checkbox is on. */
+    win32_element_set_enabled(stop_duration_sp,
+	win32_checkbox_get_state(stop_duration_cb));
+    win32_element_set_enabled(stop_duration_ml,
+	win32_checkbox_get_state(stop_duration_cb));
+}
+
+/*
+ * Private
+ */
+
+#define TIME_UNIT_SECOND 0
+#define TIME_UNIT_MINUTE 1
+#define TIME_UNIT_HOUR   2
+#define TIME_UNIT_DAY    3
+#define MAX_TIME_UNITS   4
+
+static guint32
+time_unit_menulist_get_value(win32_element_t *ml_el, guint32 value) {
+    int unit;
+
+    win32_element_assert(ml_el);
+    unit = SendMessage(ml_el->h_wnd, CB_GETCURSEL, 0, 0);
+
+    switch(unit) {
+    case(TIME_UNIT_SECOND):
+        return value;
+        break;
+    case(TIME_UNIT_MINUTE):
+        return value * 60;
+        break;
+    case(TIME_UNIT_HOUR):
+        return value * 60 * 60;
+        break;
+    case(TIME_UNIT_DAY):
+        return value * 60 * 60 * 24;
+        break;
+    default:
+        g_assert_not_reached();
+        return 0;
+    }
+}
+
+#define SIZE_UNIT_BYTES     0
+#define SIZE_UNIT_KILOBYTES 1
+#define SIZE_UNIT_MEGABYTES 2
+#define SIZE_UNIT_GIGABYTES 3
+#define MAX_SIZE_UNITS      4
+
+static guint32
+size_unit_menulist_get_value(win32_element_t *ml_el, guint32 value) {
+    int unit;
+
+    win32_element_assert(ml_el);
+    unit = SendMessage(ml_el->h_wnd, CB_GETCURSEL, 0, 0);
+
+
+    switch(unit) {
+    case(SIZE_UNIT_BYTES):
+        return value;
+        break;
+    case(SIZE_UNIT_KILOBYTES):
+        if(value > G_MAXINT / 1024) {
+            return 0;
+        } else {
+            return value * 1024;
+        }
+        break;
+    case(SIZE_UNIT_MEGABYTES):
+        if(value > G_MAXINT / (1024 * 1024)) {
+            return 0;
+        } else {
+            return value * 1024 * 1024;
+        }
+        break;
+    case(SIZE_UNIT_GIGABYTES):
+        if(value > G_MAXINT / (1024 * 1024 * 1024)) {
+            return 0;
+        } else {
+            return value * 1024 * 1024 * 1024;
+        }
+        break;
+    default:
+        g_assert_not_reached();
+        return 0;
+    }
+}
diff -x entries -urN ethereal/xulender/win32-c-sdk/capture-util.h ethereal-win32/xulender/win32-c-sdk/capture-util.h
--- ethereal/xulender/win32-c-sdk/capture-util.h	1969-12-31 18:00:00.000000000 -0600
+++ ethereal-win32/xulender/win32-c-sdk/capture-util.h	2004-04-02 15:28:20.000000000 -0600
@@ -0,0 +1,6 @@
+/* capture-util.h */
+
+#ifndef CAPTURE_UTIL_H
+#define CAPTURE_UTIL_H
+
+#endif /* capture-util.h */
diff -x entries -urN ethereal/xulender/win32-c-sdk/capture_combo_utils.c ethereal-win32/xulender/win32-c-sdk/capture_combo_utils.c
--- ethereal/xulender/win32-c-sdk/capture_combo_utils.c	1969-12-31 18:00:00.000000000 -0600
+++ ethereal-win32/xulender/win32-c-sdk/capture_combo_utils.c	2004-06-02 10:00:17.000000000 -0500
@@ -0,0 +1,160 @@
+/* capture_combo_utils.c
+ * Utilities for combo box of interface names
+ *
+ * $Id: capture_combo_utils.c,v 1.4 2003/12/21 12:17:58 ulfl Exp $
+ *
+ * Ethereal - Network traffic analyzer
+ * By Gerald Combs <gerald@xxxxxxxxxxxx>
+ * Copyright 1998 Gerald Combs
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
+ */
+
+#ifdef HAVE_CONFIG_H
+# include "config.h"
+#endif
+
+#ifdef HAVE_LIBPCAP
+
+#include <pcap.h>
+#include <string.h>
+
+#include "prefs.h"
+#include "pcap-util.h"
+#include "capture_combo_utils.h"
+
+/*
+ * Find capture device description that matches interface name.
+ */
+static char *
+capture_dev_descr_find(const gchar *if_name)
+{
+	char	*p;
+	char	*p2 = NULL;
+	char	*descr = NULL;
+	int		lp = 0;
+	int		ct = 0;
+	
+	if (prefs.capture_devices_descr == NULL) {
+		/* There are no descriptions. */
+		return NULL;
+	}
+
+	if ((p = strstr(prefs.capture_devices_descr, if_name)) == NULL) {
+		/* There are, but there isn't one for this interface. */
+		return NULL;
+	}
+	
+	while (*p != '\0') {
+		/* error: ran into next interface description */
+		if (*p == ',')
+			return NULL;
+		/* found left parenthesis, start of description */
+		else if (*p == '(') {
+			ct = 0;
+			lp++;
+			/* skip over left parenthesis */
+			p++;
+			/* save pointer to beginning of description */
+			p2 = p;
+			continue;
+		}
+		else if (*p == ')') {
+			/* end of description */
+			break;
+		}
+		else {
+			p++;
+			ct++;
+		}
+	}
+	
+	if ((lp == 1) && (ct > 0) && (p2 != NULL)) {
+		/* Allocate enough space to return the string,
+		   which runs from p2 to p, plus a terminating
+		   '\0'. */
+		descr = g_malloc(p - p2 + 1);
+		memcpy(descr, p2, p - p2);
+		descr[p - p2] = '\0';
+		return descr;
+	}
+	else
+		return NULL;
+}
+
+GList *
+build_capture_combo_list(GList *if_list, gboolean do_hide)
+{
+  GList *combo_list;
+  GList *if_entry;
+  if_info_t *if_info;
+  char *if_string;
+  gchar *descr;
+
+  combo_list = NULL;
+  if (if_list != NULL) {
+    /* Scan through the list and build a list of strings to display. */
+    for (if_entry = if_list; if_entry != NULL;
+	 if_entry = g_list_next(if_entry)) {
+      if_info = if_entry->data;
+
+      /* Is this interface hidden and, if so, should we include it
+         anyway? */
+      if (prefs.capture_devices_hide == NULL ||
+	  strstr(prefs.capture_devices_hide, if_info->name) == NULL ||
+	  !do_hide) {
+	/* It's not hidden, or it is but we should include it in the list. */
+
+	/* Do we have a user-supplied description? */
+	descr = capture_dev_descr_find(if_info->name);
+	if (descr != NULL) {
+	  /* Yes, we have a user-supplied description; use it. */
+	  if_string = g_strdup_printf("%s: %s", descr, if_info->name);
+	  g_free(descr);
+	} else {
+	  /* No, we don't have a user-supplied description; did we get
+	     one from the OS or libpcap? */
+	  if (if_info->description != NULL) {
+	    /* Yes - use it. */
+	    if_string = g_strdup_printf("%s: %s", if_info->description,
+					if_info->name);
+	  } else {
+	    /* No. */
+	    if_string = g_strdup(if_info->name);
+	  }
+	}
+	combo_list = g_list_append(combo_list, if_string);
+      }
+    }
+  }
+  return combo_list;
+}
+
+static void
+free_if_string(gpointer data, gpointer user_data _U_)
+{
+  g_free(data);
+}
+
+void
+free_capture_combo_list(GList *combo_list)
+{
+  if (combo_list != NULL) {
+    g_list_foreach(combo_list, free_if_string, NULL);
+    g_list_free(combo_list);
+  }
+}
+
+#endif /* HAVE_LIBPCAP */
diff -x entries -urN ethereal/xulender/win32-c-sdk/capture_combo_utils.h ethereal-win32/xulender/win32-c-sdk/capture_combo_utils.h
--- ethereal/xulender/win32-c-sdk/capture_combo_utils.h	1969-12-31 18:00:00.000000000 -0600
+++ ethereal-win32/xulender/win32-c-sdk/capture_combo_utils.h	2004-06-02 09:40:27.000000000 -0500
@@ -0,0 +1,31 @@
+/* capture_combo_utils.c
+ * Declarations of tilities for combo box of interface names
+ *
+ * $Id: capture_combo_utils.h,v 1.1 2003/09/10 05:35:25 guy Exp $
+ *
+ * Ethereal - Network traffic analyzer
+ * By Gerald Combs <gerald@xxxxxxxxxxxx>
+ * Copyright 1998 Gerald Combs
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
+ */
+
+#ifndef __CAPTURE_COMBO_UTILS_H__
+#define __CAPTURE_COMBO_UTILS_H__
+
+GList *build_capture_combo_list(GList *if_list, gboolean do_hide);
+void free_capture_combo_list(GList *combo_list);
+
+#endif
diff -x entries -urN ethereal/xulender/win32-c-sdk/ethereal-win32.h ethereal-win32/xulender/win32-c-sdk/ethereal-win32.h
--- ethereal/xulender/win32-c-sdk/ethereal-win32.h	1969-12-31 18:00:00.000000000 -0600
+++ ethereal-win32/xulender/win32-c-sdk/ethereal-win32.h	2004-04-28 16:11:53.000000000 -0500
@@ -0,0 +1,12 @@
+#ifndef __ETHEREAL_WIN32_H__
+#define __ETHEREAL_WIN32_H__
+
+#include "ethereal-byteview.h"
+#include "ethereal-combobox.h"
+#include "ethereal-packetlist.h"
+#include "ethereal-spinner.h"
+#include "ethereal-treeview.h"
+
+#include "win32-main.h"
+
+#endif /* ethereal-win32.h */
diff -x entries -urN ethereal/xulender/win32-c-sdk/localelements/ethereal-byteview.c ethereal-win32/xulender/win32-c-sdk/localelements/ethereal-byteview.c
--- ethereal/xulender/win32-c-sdk/localelements/ethereal-byteview.c	1969-12-31 18:00:00.000000000 -0600
+++ ethereal-win32/xulender/win32-c-sdk/localelements/ethereal-byteview.c	2004-07-09 10:33:18.000000000 -0500
@@ -0,0 +1,841 @@
+
+
+#ifdef HAVE_CONFIG_H
+# include "config.h"
+#endif
+
+#ifdef HAVE_LIBPCAP
+#include <pcap.h>
+#endif
+
+#include "globals.h"
+#include "glib.h"
+#include <windows.h>
+#include <windowsx.h>
+#include <commctrl.h>
+#include <tchar.h>
+#include <richedit.h>
+
+#include "win32-c-sdk.h"
+
+#include "win32-globals.h"
+
+#include "ethereal-byteview.h"
+#include "ethereal-treeview.h"
+
+#include <epan/epan.h>
+#include <epan/filesystem.h>
+#include <epan/epan_dissect.h>
+#include <epan/packet.h>
+#include "util.h"
+
+static LRESULT CALLBACK ethereal_byteview_wnd_proc(HWND, UINT, WPARAM, LPARAM);
+static void ethereal_byteview_show_hide(HWND tab);
+static void ethereal_byteview_empty(win32_element_t *byteview);
+static void ethereal_byteview_resize(HWND hw_byteview);
+static LRESULT ethereal_byteview_notify(HWND, LPARAM, capture_file *);
+static void add_byte_tab(HWND tab, const char *name, tvbuff_t *tvb,
+	int encoding, win32_element_t *treeview);
+static void packet_hex_print_common(HWND hw_bv, const guint8 *pd, int len,
+	int bstart, int bend);
+static void byteview_select(win32_element_t *byteview, HWND edit, LONG selpt);
+
+typedef struct _byteview_data_t {
+    HWND        tab;		/* Notebook/tab control */
+    proto_tree *tree;		/* Associated protocol tree */
+    gboolean    in_hex_print;	/* Are we in the middle of printing? */
+} byteview_data_t;
+
+typedef struct _byte_tab_data_t {
+    tvbuff_t        *tvb;
+    win32_element_t *treeview;
+    int              encoding;
+} byte_tab_data_t;
+
+#define EWC_BYTE_PANE          "ByteViewPane"
+#define EWC_BYTE_TEXT          "ByteViewTextArea"
+#define ETHEREAL_BYTEVIEW_DATA "_ethereal_byteview_data"
+
+
+/*
+ * Copied from gtk/proto_draw.c.
+ */
+#define BYTE_VIEW_WIDTH    16
+#define BYTE_VIEW_SEP       8
+
+#define MAX_OFFSET_LEN	 8	/* max length of hex offset of bytes */
+#define BYTES_PER_LINE	16	/* max byte values in a line */
+#define HEX_DUMP_LEN	(BYTES_PER_LINE*3 + 1)
+				/* max number of characters hex dump takes -
+				   2 digits plus trailing blank
+				   plus separator between first and
+				   second 8 digits */
+#define DATA_DUMP_LEN	(HEX_DUMP_LEN + 2 + BYTES_PER_LINE)
+				/* number of characters those bytes take;
+				   3 characters per byte of hex dump,
+				   2 blanks separating hex from ASCII,
+				   1 character per byte of ASCII dump */
+#define MAX_LINE_LEN	(MAX_OFFSET_LEN + 2 + DATA_DUMP_LEN)
+				/* number of characters per line;
+				   offset, 2 blanks separating offset
+				   from data dump, data dump */
+
+/*
+ * Creates a ByteView control
+ */
+
+win32_element_t *
+ethereal_byteview_new(HWND hw_parent) {
+    HINSTANCE        h_instance = (HINSTANCE) GetWindowLong(hw_parent, GWL_HINSTANCE);
+    win32_element_t *byteview;
+    byteview_data_t *bd;
+    WNDCLASS         wc;
+
+    wc.lpszClassName = EWC_BYTE_PANE;
+    wc.lpfnWndProc = ethereal_byteview_wnd_proc;
+    wc.style = CS_HREDRAW | CS_VREDRAW | CS_OWNDC;
+    wc.cbClsExtra = 0;
+    wc.cbWndExtra = 0;
+    wc.hInstance = h_instance;
+    wc.hIcon = NULL;
+    wc.hCursor = LoadCursor(NULL, IDC_ARROW);
+    wc.hbrBackground = (HBRUSH) (COLOR_WINDOWFRAME+1);
+    wc.lpszMenuName = NULL;
+
+    RegisterClass(&wc);
+
+    g_assert(hw_parent != NULL);
+
+    byteview = win32_element_new(NULL);
+
+    byteview->h_wnd = CreateWindow(
+	EWC_BYTE_PANE,
+	EWC_BYTE_PANE,
+	WS_CHILD | WS_VISIBLE,
+	0, 0, 0, 0,
+	hw_parent,
+	NULL,
+	h_instance,
+	(LPSTR) NULL);
+    ShowWindow(byteview->h_wnd, SW_SHOW);
+    UpdateWindow(byteview->h_wnd);
+
+    /* Attach the byteview address to our HWND. */
+    SetWindowLong(byteview->h_wnd, GWL_USERDATA, (LONG) byteview);
+    SendMessage(byteview->h_wnd, WM_SETFONT, (WPARAM) g_fixed_font, FALSE);
+
+    bd = g_malloc(sizeof(byteview_data_t));
+    win32_element_set_data(byteview, ETHEREAL_BYTEVIEW_DATA, bd);
+    bd->tree = NULL;
+
+    /*
+     * XXX - According to
+     * http://msdn.microsoft.com/library/default.asp?url=/library/en-us/shellcc/platform/commctls/tab/styles.asp
+     * TCS_BOTTOM isn't supported in ComCtl32.dll version 6.  Yay.
+     */
+    bd->tab = CreateWindowEx(
+	0,
+	WC_TABCONTROL,
+	"",
+	WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_CLIPSIBLINGS /* | TCS_BOTTOM */,
+	0, 0, 50, 25,
+	byteview->h_wnd,
+	NULL,
+	h_instance,
+	(LPSTR) NULL);
+
+    SendMessage(bd->tab, WM_SETFONT,
+	(WPARAM) GetStockObject(DEFAULT_GUI_FONT), TRUE);
+
+    ShowWindow(bd->tab, SW_HIDE);
+    UpdateWindow(bd->tab);
+
+    ethereal_byteview_empty(byteview);
+    add_byte_tab(bd->tab, "", NULL, CHAR_ASCII, NULL);
+    ethereal_byteview_resize(byteview->h_wnd);
+
+    return byteview;
+}
+
+/* XXX Add a "destroy" routine */
+
+static LRESULT CALLBACK
+ethereal_byteview_wnd_proc(HWND hw_byteview, UINT msg,
+	WPARAM w_param, LPARAM l_param) {
+    win32_element_t *byteview;
+    byteview_data_t *bd;
+    int              count, i;
+    TCITEM           tci;
+    HWND             edit;
+    LPNMHDR          lpnmh;
+    SELCHANGE       *selchg;
+
+    switch (msg) {
+	case WM_CREATE:
+	    break;
+	case WM_SIZE:
+	    if (GetWindowLong(hw_byteview, GWL_USERDATA) != 0) {
+		ethereal_byteview_resize (hw_byteview);
+	    }
+	    break;
+	case WM_NOTIFY:
+	    lpnmh = (LPNMHDR) l_param;
+	    switch (lpnmh->code) {
+		case NM_CLICK:
+		    ethereal_byteview_show_hide(lpnmh->hwndFrom);
+		    ethereal_byteview_resize(hw_byteview);
+		    break;
+		case EN_SELCHANGE:
+		    selchg = (SELCHANGE *) l_param;
+		    byteview = (win32_element_t *) GetWindowLong(hw_byteview, GWL_USERDATA);
+		    win32_element_assert(byteview);
+		    bd = win32_element_get_data(byteview, ETHEREAL_BYTEVIEW_DATA);
+		    if (bd && bd->in_hex_print) break;
+
+		    byteview_select(byteview, lpnmh->hwndFrom, selchg->chrg.cpMin);
+		default:
+		    break;
+	    }
+	    break;
+	case WM_SETFONT:
+	    byteview = (win32_element_t *) GetWindowLong(hw_byteview, GWL_USERDATA);
+	    win32_element_assert(byteview);
+	    bd = win32_element_get_data(byteview, ETHEREAL_BYTEVIEW_DATA);
+
+	    if (bd) {
+		count = TabCtrl_GetItemCount(bd->tab);
+		for (i = 0; i < count; i++) {
+		    ZeroMemory(&tci, sizeof(tci));
+		    tci.mask = TCIF_PARAM;
+		    TabCtrl_GetItem(bd->tab, i, &tci);
+		    edit = (HWND) tci.lParam;
+		    if (edit == NULL) continue;
+		    SendMessage(edit, WM_SETFONT, w_param, l_param);
+		}
+	    }
+
+	    break;
+	default:
+	    return (DefWindowProc(hw_byteview, msg, w_param, l_param));
+    }
+    return (DefWindowProc(hw_byteview, msg, w_param, l_param));
+}
+
+static void
+ethereal_byteview_resize(HWND hw_byteview) {
+    win32_element_t *byteview;
+    byteview_data_t *bd;
+    RECT             pr;
+    int              item;
+    TCITEM           tci;
+    HWND             edit;
+
+    byteview = (win32_element_t *) GetWindowLong(hw_byteview, GWL_USERDATA);
+    win32_element_assert(byteview);
+    bd = win32_element_get_data(byteview, ETHEREAL_BYTEVIEW_DATA);
+
+    GetClientRect(hw_byteview, &pr);
+
+    item = TabCtrl_GetItemCount(bd->tab);
+    if (item < 1) return;
+
+    /* If we have one item, the first item is the only visible window.
+       Otherwise, we size the tab control, then the current window */
+    if (item > 1) {
+	MoveWindow(bd->tab, pr.left, pr.top, pr.right - pr.left,
+	    pr.bottom - pr.top, TRUE);
+	TabCtrl_AdjustRect(bd->tab, FALSE, &pr);
+    }
+
+    item = TabCtrl_GetCurSel(bd->tab);
+    ZeroMemory(&tci, sizeof(tci));
+    tci.mask = TCIF_PARAM;
+    TabCtrl_GetItem(bd->tab, item, &tci);
+    edit = (HWND) tci.lParam;
+    if (edit == NULL) return;
+    MoveWindow(edit, pr.left, pr.top, pr.right - pr.left,
+	pr.bottom - pr.top, TRUE);
+}
+
+static void
+ethereal_byteview_show_hide(HWND tab) {
+    HWND   edit;
+    TCITEM tci;
+    int    count, i, cur_sel;
+
+    cur_sel = TabCtrl_GetCurSel(tab);
+    count = TabCtrl_GetItemCount(tab);
+    if (count > 1) {
+	ShowWindow(tab, SW_SHOW);
+    } else {
+	ShowWindow(tab, SW_HIDE);
+    }
+
+    for (i = 0; i < count; i++) {
+	ZeroMemory(&tci, sizeof(tci));
+	tci.mask = TCIF_PARAM;
+	TabCtrl_GetItem(tab, i, &tci);
+	edit = (HWND) tci.lParam;
+	if (edit == NULL) continue;
+	if (i == cur_sel) {
+	    ShowWindow(edit, SW_SHOW);
+	} else {
+	    ShowWindow(edit, SW_HIDE);
+	    UpdateWindow(edit);
+	}
+    }
+}
+
+static void
+ethereal_byteview_empty(win32_element_t *byteview) {
+    byteview_data_t *bd;
+    byte_tab_data_t *btd;
+    TCITEM           tci;
+    int              count, i;
+    HWND             edit;
+
+    win32_element_assert(byteview);
+    bd = win32_element_get_data(byteview, ETHEREAL_BYTEVIEW_DATA);
+
+    count = TabCtrl_GetItemCount(bd->tab);
+    for (i = 0; i < count; i++) {
+	ZeroMemory(&tci, sizeof(tci));
+	tci.mask = TCIF_PARAM;
+	TabCtrl_GetItem(bd->tab, i, &tci);
+	edit = (HWND) tci.lParam;
+	if (edit == NULL) continue;
+	btd = (byte_tab_data_t *) GetWindowLong(edit, GWL_USERDATA);
+	g_free(btd);
+	DestroyWindow(edit);
+    }
+    TabCtrl_DeleteAllItems(bd->tab);
+    ShowWindow(bd->tab, SW_HIDE);
+}
+
+/*
+ * Get the data and length for a byte view, given the byte view page.
+ * Return the pointer, or NULL on error, and set "*data_len" to the length.
+ */
+/*
+ * Copied from gtk/proto_draw.c.
+ * XXX - Maybe this should be an epan/tvbuff routine?
+ */
+const guint8 *
+get_byteview_data_and_length(win32_element_t *byteview, guint *data_len)
+{
+    byteview_data_t *bd;
+    byte_tab_data_t *btd;
+    const guint8    *data_ptr;
+    int              cur_sel;
+    TCITEM           tci;
+    HWND             edit;
+
+    win32_element_assert(byteview);
+    bd = win32_element_get_data(byteview, ETHEREAL_BYTEVIEW_DATA);
+
+    cur_sel = TabCtrl_GetCurSel(bd->tab);
+    if (cur_sel < 0) return NULL;
+
+    ZeroMemory(&tci, sizeof(tci));
+    tci.mask = TCIF_PARAM;
+    TabCtrl_GetItem(bd->tab, cur_sel, &tci);
+    edit = (HWND) tci.lParam;
+    if (edit == NULL) return NULL;
+
+    btd = (byte_tab_data_t *) GetWindowLong(edit, GWL_USERDATA);
+
+    if (btd->tvb == NULL) return NULL;
+
+    data_ptr = tvb_get_ptr(btd->tvb, 0, -1);
+    *data_len = tvb_length(btd->tvb);
+    return data_ptr;
+}
+
+/*
+ * Create byte views in the main window.  Defined in ui_util.h.
+ * Many bits copied from gtk/proto_draw.c.
+ */
+/* XXX - Add selection */
+// proto_draw.c:add_byte_tab() does this:
+// - Add a tab to the notebook widget
+// - Create a scrolled window/text widget and add it to the notebook
+// - Disable editing, word wrap and line wrap in the text widget
+// - Show tabs if there is more than one notebook page
+// proto_draw.c:byte_view_realize_cb() does this:
+// - Gets the tvb data and length
+// - Calls packet_hex_print on the textarea
+
+/* Corresponds to add_byte_views() in gtk/proto_draw.c */
+void
+ethereal_byteview_add(epan_dissect_t *edt, win32_element_t *byteview, win32_element_t *treeview) {
+    byteview_data_t *bd;
+    GSList          *src_le = edt->pi.data_src;
+    data_source     *src;
+
+    win32_element_assert(byteview);
+    bd = win32_element_get_data(byteview, ETHEREAL_BYTEVIEW_DATA);
+    bd->tree = edt->tree;
+
+    ethereal_byteview_empty(byteview);
+
+    for (src_le = edt->pi.data_src; src_le != NULL; src_le = src_le->next) {
+	src = src_le->data;
+	add_byte_tab(bd->tab, src->name, src->tvb, edt->pi.fd->flags.encoding, treeview);
+    }
+
+    /*
+     * Initially select the first byte view.
+     */
+    TabCtrl_SetCurFocus(bd->tab, 0);
+    ethereal_byteview_show_hide(bd->tab);
+}
+
+void set_notebook_page(win32_element_t *byteview, tvbuff_t *tvb) {
+    byteview_data_t *bd;
+    byte_tab_data_t *btd;
+    int              count, i;
+    TCITEM           tci;
+    HWND             edit;
+
+    win32_element_assert(byteview);
+    bd = win32_element_get_data(byteview, ETHEREAL_BYTEVIEW_DATA);
+
+    count = TabCtrl_GetItemCount(bd->tab);
+    for (i = 0; i < count; i++) {
+	ZeroMemory(&tci, sizeof(tci));
+	tci.mask = TCIF_PARAM;
+	TabCtrl_GetItem(bd->tab, i, &tci);
+	edit = (HWND) tci.lParam;
+	if (edit == NULL) continue;
+	btd = (byte_tab_data_t *) GetWindowLong(edit, GWL_USERDATA);
+	if (btd->tvb == tvb) {
+	    TabCtrl_SetCurSel(bd->tab, count);
+	}
+    }
+}
+
+void
+packet_hex_print(win32_element_t *byteview, const guint8 *pd, frame_data *fd,
+	field_info *finfo, guint len) {
+    byteview_data_t *bd;
+    int              cur_sel, bstart, bend = -1, blen;
+    TCITEM           tci;
+    HWND             edit;
+
+    win32_element_assert(byteview);
+    bd = win32_element_get_data(byteview, ETHEREAL_BYTEVIEW_DATA);
+
+    cur_sel = TabCtrl_GetCurSel(bd->tab);
+    if (cur_sel < 0) return;
+
+    ZeroMemory(&tci, sizeof(tci));
+    tci.mask = TCIF_PARAM;
+    TabCtrl_GetItem(bd->tab, cur_sel, &tci);
+    edit = (HWND) tci.lParam;
+    if (edit == NULL) return;
+
+    if (finfo != NULL) {
+	bstart = finfo->start;
+	blen = finfo->length;
+    } else {
+	bstart = -1;
+	blen = -1;
+    }
+    if (bstart >= 0 && blen >= 0) {
+	bend = bstart + blen;
+    }
+
+    bd->in_hex_print = TRUE;
+    packet_hex_print_common(edit, pd, len, bstart, bend);
+    bd->in_hex_print = FALSE;
+}
+
+void
+ethereal_byteview_clear(win32_element_t *byteview) {
+    byteview_data_t *bd;
+
+    win32_element_assert(byteview);
+    bd = win32_element_get_data(byteview, ETHEREAL_BYTEVIEW_DATA);
+
+    ethereal_byteview_empty(byteview);
+
+    add_byte_tab(bd->tab, "", NULL, CHAR_ASCII, NULL);
+}
+
+
+
+/*
+ * Private routines
+ */
+
+static void
+add_byte_tab(HWND tab, const char *name, tvbuff_t *tvb,
+	int encoding, win32_element_t *treeview) {
+    byte_tab_data_t *btd;
+    int              count;
+    const guint8    *pd = NULL;
+    int              len = 0;
+    TCITEM           tci;
+    HWND             edit, hw_parent = GetParent(tab);
+
+    if (tvb) {
+	len = tvb_length(tvb);
+	pd = tvb_get_ptr(tvb, 0, -1);
+    }
+    count = TabCtrl_GetItemCount(tab);
+
+    btd = g_malloc(sizeof(byte_tab_data_t));
+    btd->tvb = tvb;
+    btd->treeview  = treeview;
+    btd->encoding  = encoding;
+
+    edit = CreateWindowEx(
+	WS_EX_CLIENTEDGE,
+	RICHEDIT_CLASS,
+	"",
+	WS_CHILD | WS_TABSTOP | WS_VISIBLE | WS_HSCROLL | WS_VSCROLL |
+	    ES_AUTOHSCROLL | ES_AUTOVSCROLL | ES_MULTILINE |
+	    ES_NOHIDESEL | ES_READONLY /* | ES_SUNKEN */,
+	0, 0, 0, 0,
+	hw_parent,
+	NULL,
+	(HINSTANCE) GetWindowLong(hw_parent, GWL_HINSTANCE),
+	NULL);
+    SendMessage(edit, WM_SETFONT, (WPARAM) g_fixed_font, FALSE);
+    SetWindowLong(edit, GWL_USERDATA, (LONG) btd);
+
+    ZeroMemory(&tci, sizeof(tci));
+    tci.mask = TCIF_TEXT | TCIF_PARAM;
+    tci.pszText = name;
+    tci.cchTextMax = lstrlen(name);
+    tci.lParam = (LPARAM) edit;
+
+    TabCtrl_InsertItem(tab, count, &tci);
+    ethereal_byteview_show_hide(tab);
+
+    if (pd) {
+	packet_hex_print_common(edit, pd, len, 0, 0);
+    }
+    ethereal_byteview_resize(GetParent(tab));
+}
+
+
+static void
+packet_hex_print_common(HWND edit, const guint8 *pd, int len, int bstart,
+	int bend) {
+    byte_tab_data_t *btd;
+    int              i = 0, j, k, cur;
+    unsigned int     use_digits;
+    TCHAR            line[MAX_LINE_LEN + 2];
+    gboolean         reverse, newreverse;
+    static           guchar hexchars[16] = {
+	'0', '1', '2', '3', '4', '5', '6', '7',
+	'8', '9', 'a', 'b', 'c', 'd', 'e', 'f' };
+    guchar           c = '\0';
+    CHARFORMAT2      normal_fmt, hilite_fmt;
+    COLORREF         fg, bg;
+
+    btd = (byte_tab_data_t *) GetWindowLong(edit, GWL_USERDATA);
+
+    /*
+     * How many of the leading digits of the offset will we supply?
+     * We always supply at least 4 digits, but if the maximum offset
+     * won't fit in 4 digits, we use as many digits as will be needed.
+     */
+    if (((len - 1) & 0xF0000000) != 0)
+	use_digits = 8;	/* need all 8 digits */
+    else if (((len - 1) & 0x0F000000) != 0)
+	use_digits = 7;	/* need 7 digits */
+    else if (((len - 1) & 0x00F00000) != 0)
+	use_digits = 6;	/* need 6 digits */
+    else if (((len - 1) & 0x000F0000) != 0)
+	use_digits = 5;	/* need 5 digits */
+    else
+	use_digits = 4;	/* we'll supply 4 digits */
+
+    SendMessage(edit, WM_SETTEXT, (WPARAM) 0, (LPARAM) "");
+    fg = GetSysColor(COLOR_WINDOWTEXT);
+    bg = GetSysColor(COLOR_WINDOW);
+
+    ZeroMemory(&normal_fmt, sizeof(normal_fmt));
+    normal_fmt.cbSize = sizeof(normal_fmt);
+    normal_fmt.dwMask = CFM_COLOR| CFM_BACKCOLOR;
+    normal_fmt.crTextColor = fg;
+    normal_fmt.crBackColor = bg;
+
+    /* XXX - Add "bold". */
+    ZeroMemory(&hilite_fmt, sizeof(hilite_fmt));
+    hilite_fmt.cbSize = sizeof(hilite_fmt);
+    hilite_fmt.dwMask = CFM_COLOR| CFM_BACKCOLOR;
+    hilite_fmt.crTextColor = bg;
+    hilite_fmt.crBackColor = fg;
+
+    SendMessage(edit, EM_SETEVENTMASK, (WPARAM) 0, (LPARAM) (DWORD) ENM_NONE);
+
+    while (i < len) {
+	/* Print the line number */
+	j = use_digits;
+	cur = 0;
+	do {
+	    j--;
+	    c = (i >> (j*4)) & 0xF;
+	    line[cur++] = hexchars[c];
+	} while (j != 0);
+	line[cur++] = ' ';
+	line[cur++] = ' ';
+	line[cur] = '\0';
+
+	SendMessage(edit, EM_SETCHARFORMAT, SCF_SELECTION, (LPARAM) &normal_fmt);
+	SendMessage(edit, EM_REPLACESEL, FALSE, (LPARAM)(LPCTSTR) line);
+
+	reverse = i >= bstart && i < bend;
+	j       = i;
+	k       = i + BYTE_VIEW_WIDTH;
+	cur     = 0;
+	/* Do we start in reverse? */
+	if (reverse)
+	    SendMessage(edit, EM_SETCHARFORMAT, SCF_SELECTION, (LPARAM) &hilite_fmt);
+	/* Print the hex bit */
+	while (i < k) {
+	    if (i < len) {
+		line[cur++] = hexchars[(pd[i] & 0xf0) >> 4];
+		line[cur++] = hexchars[pd[i] & 0x0f];
+	    } else {
+		line[cur++] = ' '; line[cur++] = ' ';
+	    }
+	    i++;
+	    newreverse = i >= bstart && i < bend;
+	    /* Have we gone from reverse to plain? */
+	    if (reverse && (reverse != newreverse)) {
+		line[cur] = '\0';
+		SendMessage(edit, EM_REPLACESEL, FALSE, (LPARAM)(LPCTSTR) line);
+		SendMessage(edit, EM_SETCHARFORMAT, SCF_SELECTION, (LPARAM) &normal_fmt);
+		cur = 0;
+	    }
+
+	    /* Inter byte space if not at end of line */
+	    if (i < k) {
+		line[cur++] = ' ';
+		/* insert a space every BYTE_VIEW_SEP bytes */
+		if( ( i % BYTE_VIEW_SEP ) == 0 ) {
+		    line[cur++] = ' ';
+		}
+	    }
+	    /* Have we gone from plain to reversed? */
+	    if (!reverse && (reverse != newreverse)) {
+		line[cur] = '\0';
+		SendMessage(edit, EM_REPLACESEL, FALSE, (LPARAM)(LPCTSTR) line);
+		SendMessage(edit, EM_SETCHARFORMAT, SCF_SELECTION, (LPARAM) &hilite_fmt);
+		cur = 0;
+	    }
+	    reverse = newreverse;
+	}
+	line[cur] = '\0';
+	SendMessage(edit, EM_REPLACESEL, FALSE, (LPARAM)(LPCTSTR) line);
+	SendMessage(edit, EM_SETCHARFORMAT, SCF_SELECTION, (LPARAM) &normal_fmt);
+	cur = 0;
+	line[cur++] = ' '; line[cur++] = ' '; line[cur++] = ' ';
+	line[cur] = '\0';
+	SendMessage(edit, EM_REPLACESEL, FALSE, (LPARAM)(LPCTSTR) line);
+	cur = 0;
+
+	/* Print the ASCII bit */
+	i = j;
+	/* Do we start in reverse? */
+	reverse = i >= bstart && i < bend;
+	if (reverse)
+	    SendMessage(edit, EM_SETCHARFORMAT, SCF_SELECTION, (LPARAM) &hilite_fmt);
+	while (i < k) {
+		if (i < len) {
+		    if (btd->encoding == CHAR_ASCII) {
+		    c = pd[i];
+		} else if (btd->encoding == CHAR_EBCDIC) {
+		    c = EBCDIC_to_ASCII1(pd[i]);
+		} else {
+		    g_assert_not_reached();
+		}
+		line[cur++] = isprint(c) ? c : '.';
+	    } else {
+		line[cur++] = ' ';
+	    }
+	    i++;
+
+	    newreverse = i >= bstart && i < bend;
+	    /* Have we gone from reverse to plain? */
+	    if (reverse && (reverse != newreverse)) {
+		line[cur] = '\0';
+		SendMessage(edit, EM_REPLACESEL, FALSE, (LPARAM)(LPCTSTR) line);
+		SendMessage(edit, EM_SETCHARFORMAT, SCF_SELECTION, (LPARAM) &normal_fmt);
+		cur = 0;
+	    }
+	    if (i < k) {
+		/* insert a space every BYTE_VIEW_SEP bytes */
+		if( ( i % BYTE_VIEW_SEP ) == 0 ) {
+		    line[cur++] = ' ';
+		}
+	    }
+	    /* Have we gone from plain to reversed? */
+	    if (!reverse && (reverse != newreverse)) {
+		line[cur] = '\0';
+		SendMessage(edit, EM_REPLACESEL, FALSE, (LPARAM)(LPCTSTR) line);
+		SendMessage(edit, EM_SETCHARFORMAT, SCF_SELECTION, (LPARAM) &hilite_fmt);
+		cur = 0;
+	    }
+	    reverse = newreverse;
+	}
+	line[cur++] = '\r';
+	line[cur++] = '\n';
+	line[cur]   = '\0';
+	SendMessage(edit, EM_REPLACESEL, FALSE, (LPARAM)(LPCTSTR) line);
+    }
+
+    /* Lop off the last CR/LF */
+    i = GetWindowTextLength (edit);
+    SendMessage(edit, EM_SETCHARFORMAT, SCF_SELECTION, (LPARAM) &normal_fmt);
+    SendMessage(edit, EM_SETEVENTMASK, (WPARAM) 0, (LPARAM) (DWORD) ENM_SELCHANGE);
+    SendMessage(edit, EM_SETSEL, (WPARAM) i - 5, (LPARAM) i);
+    SendMessage(edit, EM_REPLACESEL, FALSE, (LPARAM)(LPCTSTR) "");
+    SendMessage(edit, EM_SETSEL, (WPARAM) 0, (LPARAM) 0);
+
+}
+
+/* Which byte the offset is referring to. Associates
+ * whitespace with the preceding digits. */
+static int
+byte_num(int offset, int start_point)
+{
+    return (offset - start_point) / 3;
+}
+
+static void
+byteview_select(win32_element_t *byteview, HWND edit, LONG selpt) {
+    byte_tab_data_t *btd;
+    byteview_data_t *bd;
+    int              line_len = (int) SendMessage(edit, EM_LINELENGTH, 0, 0) + 1;
+    int              row = (int) SendMessage(edit, EM_EXLINEFROMCHAR, 0, (LPARAM) (DWORD) selpt);
+    int              column = selpt % line_len;
+    int              ndigits, byte = 0;
+    int              digits_start_1, digits_end_1, digits_start_2, digits_end_2;
+    int              text_start_1, text_end_1, text_start_2, text_end_2;
+    field_info      *finfo;
+    HTREEITEM        hti;
+
+    win32_element_assert(byteview);
+    bd = win32_element_get_data(byteview, ETHEREAL_BYTEVIEW_DATA);
+
+    if (bd->tree == NULL) return;
+    if (bd->in_hex_print) return;
+
+    btd = (byte_tab_data_t *) GetWindowLong(edit, GWL_USERDATA);
+
+    /*
+     * Get the number of digits of offset being displayed, and
+     * compute the columns of various parts of the display.
+     */
+    ndigits = MAX_LINE_LEN - line_len + 2;
+
+    /*
+     * The column of the first hex digit in the first half.
+     * That starts after "ndigits" digits of offset and two
+     * separating blanks.
+     */
+    digits_start_1 = ndigits + 2;
+
+    /*
+     * The column of the last hex digit in the first half.
+     * There are BYTES_PER_LINE/2 bytes displayed in the first
+     * half; there are 2 characters per byte, plus a separating
+     * blank after all but the last byte's characters.
+     *
+     * Then subtract 1 to get the last column of the first half
+     * rather than the first column after the first half.
+     */
+    digits_end_1 = digits_start_1 + (BYTES_PER_LINE/2)*2 +
+	(BYTES_PER_LINE/2 - 1) - 1;
+
+    /*
+     * The column of the first hex digit in the second half.
+     * Add back the 1 to get the first column after the first
+     * half, and then add 2 for the 2 separating blanks between
+     * the halves.
+     */
+    digits_start_2 = digits_end_1 + 3;
+
+    /*
+     * The column of the last hex digit in the second half.
+     * Add the same value we used to get "digits_end_1" from
+     * "digits_start_1".
+     */
+    digits_end_2 = digits_start_2 + (BYTES_PER_LINE/2)*2 +
+        (BYTES_PER_LINE/2 - 1) - 1;
+
+    /*
+     * The column of the first "text dump" character in the first half.
+     * Add back the 1 to get the first column after the second
+     * half's hex dump, and then add 3 for the 3 separating blanks
+     * between the hex and text dummp.
+     */
+    text_start_1 = digits_end_2 + 4;
+
+    /*
+     * The column of the last "text dump" character in the first half.
+     * There are BYTES_PER_LINE/2 bytes displayed in the first
+     * half; there is 1 character per byte.
+     *
+     * Then subtract 1 to get the last column of the first half
+     * rather than the first column after the first half.
+     */
+    text_end_1 = text_start_1 + BYTES_PER_LINE/2 - 1;
+
+    /*
+     * The column of the first "text dump" character in the second half.
+     * Add back the 1 to get the first column after the first half,
+     * and then add 1 for the separating blank between the halves.
+     */
+    text_start_2 = text_end_1 + 2;
+
+    /*
+     * The column of the last "text dump" character in second half.
+     * Add the same value we used to get "text_end_1" from
+     * "text_start_1".
+     */
+    text_end_2 = text_start_2 + BYTES_PER_LINE/2 - 1;
+
+    /* Given the column and row, determine which byte offset
+     * the user clicked on. */
+    if (column >= digits_start_1 && column <= digits_end_1) {
+	byte = byte_num(column, digits_start_1);
+	if (byte == -1) {
+	    return;
+	}
+    }
+    else if (column >= digits_start_2 && column <= digits_end_2) {
+	byte = byte_num(column, digits_start_2);
+	if (byte == -1) {
+	    return;
+	}
+	byte += 8;
+    }
+    else if (column >= text_start_1 && column <= text_end_1) {
+	byte = column - text_start_1;
+    }
+    else if (column >= text_start_2 && column <= text_end_2) {
+	byte = 8 + column - text_start_2;
+    }
+    else {
+	/* The user didn't select a hex digit or
+	 * text-dump character. */
+	return;
+    }
+
+    /* Add the number of bytes from the previous rows. */
+    byte += row * 16;
+
+    finfo = proto_find_field_from_offset(bd->tree, byte, btd->tvb);
+
+    if (finfo == NULL) return;
+
+    hti = ethereal_treeview_find_finfo(btd->treeview, finfo);
+
+    ethereal_treeview_select(btd->treeview, hti);
+}
diff -x entries -urN ethereal/xulender/win32-c-sdk/localelements/ethereal-byteview.h ethereal-win32/xulender/win32-c-sdk/localelements/ethereal-byteview.h
--- ethereal/xulender/win32-c-sdk/localelements/ethereal-byteview.h	1969-12-31 18:00:00.000000000 -0600
+++ ethereal-win32/xulender/win32-c-sdk/localelements/ethereal-byteview.h	2004-07-09 09:20:46.000000000 -0500
@@ -0,0 +1,14 @@
+
+#ifndef __ETHEREAL_BYTEVIEW_H__
+#define __ETHEREAL_BYTEVIEW_H__
+
+#define ID_BYTE_VIEW 5002
+
+win32_element_t * ethereal_byteview_new(HWND hw_parent);
+void ethereal_byteview_add(epan_dissect_t *edt, win32_element_t *byteview, win32_element_t *treeview);
+void ethereal_byteview_clear(win32_element_t *byteview);
+const guint8 * get_byteview_data_and_length(win32_element_t *byteview, guint *data_len);
+void set_notebook_page(win32_element_t *byteview, tvbuff_t *tvb);
+void packet_hex_print(win32_element_t *byteview, const guint8 *pd, frame_data *fd, field_info *finfo, guint len);
+
+#endif /* ethereal-byteview.h */
diff -x entries -urN ethereal/xulender/win32-c-sdk/localelements/ethereal-combobox.c ethereal-win32/xulender/win32-c-sdk/localelements/ethereal-combobox.c
--- ethereal/xulender/win32-c-sdk/localelements/ethereal-combobox.c	1969-12-31 18:00:00.000000000 -0600
+++ ethereal-win32/xulender/win32-c-sdk/localelements/ethereal-combobox.c	2004-06-17 13:49:46.000000000 -0500
@@ -0,0 +1,69 @@
+/*
+ * Combobox widget/control.
+ */
+
+#ifdef HAVE_CONFIG_H
+# include "config.h"
+#endif
+
+#ifdef HAVE_LIBPCAP
+#include <pcap.h>
+#endif
+
+#include "globals.h"
+#include "glib.h"
+#include <windows.h>
+#include <windowsx.h>
+
+#include "win32-c-sdk.h"
+
+#include "win32-globals.h"
+#include "win32-util.h"
+
+#include "ethereal-combobox.h"
+
+/* XXX - We need to subclass our own window proc so that we can catch
+ * the "return" key.
+ * Or maybe we'll just catch it in win32_box_wnd_proc() like everything
+ * else.
+ */
+
+/*
+ * Create a ComboBox control.
+ */
+
+win32_element_t *
+ethereal_combobox_new(HWND hw_parent) {
+    win32_element_t *combobox;
+    RECT wr;
+
+    g_assert(hw_parent != NULL);
+
+    combobox = win32_element_new(NULL);
+
+    combobox->h_wnd = CreateWindow(
+	"COMBOBOX",
+	"ComboBox",
+	WS_CHILD | WS_VISIBLE | WS_TABSTOP | CBS_DROPDOWN |
+	    CBS_AUTOHSCROLL,
+	0, 0, 50, 50,
+	hw_parent,
+	(HMENU) ID_COMBOBOX,
+	(HINSTANCE) GetWindowLong(hw_parent, GWL_HINSTANCE),
+	(LPSTR) NULL);
+
+    SendMessage(combobox->h_wnd, WM_SETFONT,
+	(WPARAM) GetStockObject(DEFAULT_GUI_FONT), TRUE);
+
+    GetWindowRect(combobox->h_wnd, &wr);
+    combobox->minwidth = wr.right - wr.left;
+    combobox->minheight = wr.bottom - wr.top;
+
+    ShowWindow(combobox->h_wnd, SW_SHOW);
+    UpdateWindow(combobox->h_wnd);
+
+    /* Attach the combobox address to our HWND. */
+    SetWindowLong(combobox->h_wnd, GWL_USERDATA, (LONG) combobox);
+
+    return combobox;
+}
diff -x entries -urN ethereal/xulender/win32-c-sdk/localelements/ethereal-combobox.h ethereal-win32/xulender/win32-c-sdk/localelements/ethereal-combobox.h
--- ethereal/xulender/win32-c-sdk/localelements/ethereal-combobox.h	1969-12-31 18:00:00.000000000 -0600
+++ ethereal-win32/xulender/win32-c-sdk/localelements/ethereal-combobox.h	2004-05-03 14:59:31.000000000 -0500
@@ -0,0 +1,8 @@
+#ifndef __ETHEREAL_COMBOBOX_H__
+#define __ETHEREAL_COMBOBOX_H__
+
+
+win32_element_t * ethereal_combobox_new(HWND hw_parent);
+#define ID_COMBOBOX 5003
+
+#endif /* ethereal-combobox.h */
diff -x entries -urN ethereal/xulender/win32-c-sdk/localelements/ethereal-elements.h ethereal-win32/xulender/win32-c-sdk/localelements/ethereal-elements.h
--- ethereal/xulender/win32-c-sdk/localelements/ethereal-elements.h	1969-12-31 18:00:00.000000000 -0600
+++ ethereal-win32/xulender/win32-c-sdk/localelements/ethereal-elements.h	2004-04-28 13:52:01.000000000 -0500
@@ -0,0 +1,12 @@
+#ifndef __ETHEREAL_WIN32_H__
+#define __ETHEREAL_WIN32_H__
+
+#include "ethereal-byteview.h"
+#include "ethereal-combobox.h"
+#include "ethereal-packetlist.h"
+#include "ethereal-spinner.h"
+#include "ethereal-treeview.h"
+
+#include "win32-main.h"
+
+#endif /* ethereal-win32.h */
diff -x entries -urN ethereal/xulender/win32-c-sdk/localelements/ethereal-packetlist.c ethereal-win32/xulender/win32-c-sdk/localelements/ethereal-packetlist.c
--- ethereal/xulender/win32-c-sdk/localelements/ethereal-packetlist.c	1969-12-31 18:00:00.000000000 -0600
+++ ethereal-win32/xulender/win32-c-sdk/localelements/ethereal-packetlist.c	2004-07-01 09:45:40.000000000 -0500
@@ -0,0 +1,421 @@
+/*
+ * Packet list control (widget) MUST:
+ * - Have unlimited length
+ * - Tie into packet list glist?
+ * - Set fg & bg colors
+ * - Allow column resizing
+ *
+ * It SHOULD
+ * - Allow column names and data types to be changed on the fly
+ * - Allow multiple selects?
+ * - Allow columns to be moved around
+ */
+
+/*
+ * Some of the stuff used here, e.g. LVS_EX_FULLROWSELECT requires commctrl.dll
+ * version 4.70, which ships with IE 3.x according to
+ * http://msdn.microsoft.com/library/default.asp?url=/library/en-us/shellcc/platform/shell/programmersguide/versions.asp
+ * Therefore, we require IE 3.x or greater.  This is probably a safe
+ * requirement.  :)
+ */
+
+#ifdef HAVE_CONFIG_H
+# include "config.h"
+#endif
+
+#ifdef HAVE_LIBPCAP
+#include <pcap.h>
+#endif
+
+#include "globals.h"
+#include "glib.h"
+#include <windows.h>
+#include <windowsx.h>
+#include <commctrl.h>
+
+#include "win32-c-sdk.h"
+
+#include "win32-globals.h"
+
+#include "ethereal-packetlist.h"
+
+#include <epan/epan.h>
+#include <epan/filesystem.h>
+#include <epan/epan_dissect.h>
+#include <epan/column-utils.h>
+#include "prefs.h"
+#include "column.h"
+
+typedef struct _packet_list_item {
+    gchar   **text;
+    gpointer  data;
+    color_t  *fg;
+    color_t  *bg;
+} packet_list_item;
+
+/* Globals */
+GList *packet_list, *first, *last = NULL;
+gint rows;
+HWND g_hw_packetlist = NULL, g_hw_packetlist_pane;
+
+static LRESULT CALLBACK ethereal_packetlist_wnd_proc(HWND, UINT, WPARAM, LPARAM);
+static LRESULT ethereal_packetlist_notify(HWND, LPARAM, capture_file *);
+
+#define EWC_LIST_PANE "PacketListPane"
+
+
+/*
+ * Creates a ListView control using the LVS_OWNERDATA flag
+ */
+
+win32_element_t *
+ethereal_packetlist_new(HWND hw_parent) {
+    HINSTANCE        h_instance = (HINSTANCE) GetWindowLong(hw_parent, GWL_HINSTANCE);
+    win32_element_t *packetlist;
+    WNDCLASS         wc;
+
+    /* XXX - Is this really needed?  We're just using the enclosing pane
+     * to draw an inset. */
+    wc.lpszClassName = EWC_LIST_PANE;
+    wc.lpfnWndProc = ethereal_packetlist_wnd_proc;
+    wc.style = CS_HREDRAW | CS_VREDRAW | CS_OWNDC;
+    wc.cbClsExtra = 0;
+    wc.cbWndExtra = 0;
+    wc.hInstance = h_instance;
+    wc.hIcon = NULL;
+    wc.hCursor = LoadCursor(NULL, IDC_ARROW);
+    wc.hbrBackground = (HBRUSH) (COLOR_WINDOWFRAME+1);
+    wc.lpszMenuName = NULL;
+
+    RegisterClass(&wc);
+
+    g_assert(hw_parent != NULL);
+
+    packetlist = win32_element_new(NULL);
+
+    packetlist->h_wnd = CreateWindow(
+	EWC_LIST_PANE,
+	EWC_LIST_PANE,
+	WS_CHILD | WS_VISIBLE,
+	0, 0, 0, 0,
+	hw_parent,
+	NULL,
+	h_instance,
+	(LPSTR) NULL);
+
+    ShowWindow(packetlist->h_wnd, SW_SHOW);
+    UpdateWindow(packetlist->h_wnd);
+
+    ethereal_packetlist_resize(packetlist->h_wnd, hw_parent);
+
+    /* Attach the packetlist address to our HWND. */
+    SetWindowLong(packetlist->h_wnd, GWL_USERDATA, (LONG) packetlist);
+
+    g_hw_packetlist_pane = packetlist->h_wnd;
+    return packetlist;
+}
+
+/* XXX Add a "destroy" routine */
+
+static LRESULT CALLBACK
+ethereal_packetlist_wnd_proc(HWND hw_packetlist_pane, UINT msg,
+	WPARAM w_param, LPARAM l_param) {
+    LV_COLUMN col;
+    int i;
+
+    switch (msg) {
+	case WM_CREATE:
+	    /* Build the column format array */
+	    /* XXX - this is duplicated in gtk/main.c _and_ tethereal.c */
+	    col_setup(&cfile.cinfo, prefs.num_cols);
+	    for (i = 0; i < cfile.cinfo.num_cols; i++) {
+		cfile.cinfo.col_fmt[i] = get_column_format(i);
+		cfile.cinfo.col_title[i] = g_strdup(get_column_title(i));
+		cfile.cinfo.fmt_matx[i] = (gboolean *) g_malloc0(sizeof(gboolean) *
+		    NUM_COL_FMTS);
+		get_column_format_matches(cfile.cinfo.fmt_matx[i], cfile.cinfo.col_fmt[i]);
+		cfile.cinfo.col_data[i] = NULL;
+		if (cfile.cinfo.col_fmt[i] == COL_INFO)
+		    cfile.cinfo.col_buf[i] = (gchar *) g_malloc(sizeof(gchar) * COL_MAX_INFO_LEN);
+		else
+		    cfile.cinfo.col_buf[i] = (gchar *) g_malloc(sizeof(gchar) * COL_MAX_LEN);
+		cfile.cinfo.col_fence[i] = 0;
+		cfile.cinfo.col_expr[i] = (gchar *) g_malloc(sizeof(gchar) * COL_MAX_LEN);
+		cfile.cinfo.col_expr_val[i] = (gchar *) g_malloc(sizeof(gchar) * COL_MAX_LEN);
+	    }
+	    for (i = 0; i < cfile.cinfo.num_cols; i++) {
+		int j;
+
+		for (j = 0; j < NUM_COL_FMTS; j++) {
+		    if (!cfile.cinfo.fmt_matx[i][j])
+			continue;
+
+		    if (cfile.cinfo.col_first[j] == -1)
+			cfile.cinfo.col_first[j] = i;
+		    cfile.cinfo.col_last[j] = i;
+		}
+	    }
+
+	    g_hw_packetlist = CreateWindowEx(
+		WS_EX_CLIENTEDGE,
+		WC_LISTVIEW,
+		"",
+		WS_CHILD | WS_TABSTOP | WS_VISIBLE | LVS_OWNERDATA | LVS_REPORT |
+		    LVS_SHOWSELALWAYS | LVS_SINGLESEL,
+		0, 0, 0, 0,
+		hw_packetlist_pane,
+		(HMENU) ID_PACKET_LIST,
+		(HINSTANCE) GetWindowLong(hw_packetlist_pane, GWL_HINSTANCE),
+		NULL);
+
+	    /* XXX set extra styles, e.g. LVS_EX_HEADERDRAGDROP? */
+	    ListView_SetExtendedListViewStyle(g_hw_packetlist, LVS_EX_FULLROWSELECT);
+
+	    /* XXX - Set width and justification */
+	    col.mask = LVCF_FMT | LVCF_SUBITEM | LVCF_TEXT | LVCF_WIDTH;
+	    col.fmt = LVCFMT_LEFT;
+	    col.cx = 120;
+	    for (i = 0; i < cfile.cinfo.num_cols; i++) {
+		col.pszText = cfile.cinfo.col_title[i];
+		ListView_InsertColumn(g_hw_packetlist, i, &col);
+	    }
+
+	    packet_list = first = last = NULL;
+	    rows = -1;
+	    break;
+	case WM_SIZE:
+	    ethereal_packetlist_resize (g_hw_packetlist, g_hw_packetlist_pane);
+	    break;
+	case WM_NOTIFY:
+	    return ethereal_packetlist_notify(g_hw_packetlist, l_param, &cfile);
+	    break;
+	default:
+	    return(DefWindowProc(hw_packetlist_pane, msg, w_param, l_param));
+    }
+    return(DefWindowProc(hw_packetlist_pane, msg, w_param, l_param));
+}
+
+void
+ethereal_packetlist_resize(HWND hw_packetlist, HWND hw_parent) {
+    RECT pr;
+
+    GetClientRect(hw_parent, &pr);
+    MoveWindow(g_hw_packetlist, pr.left, pr.top, pr.right - pr.left,
+	pr.bottom - pr.top, TRUE);
+}
+
+void
+ethereal_packetlist_clear(HWND hw_packetlist) {
+    packet_list_item *pli;
+    int i;
+
+    ListView_DeleteAllItems(g_hw_packetlist);
+    packet_list = first;
+    while (packet_list) {
+	pli = (packet_list_item *) packet_list->data;
+	for (i = 0; i < prefs.num_cols; i++) {
+	    g_free(pli->text[i]);
+	    pli->text[i] = NULL;
+	}
+	g_free(pli->text);
+	pli->text = NULL;
+	if (pli->fg)
+	    g_free(pli->fg);
+	if (pli->bg)
+	    g_free(pli->bg);
+	pli->fg = NULL;
+	pli->bg = NULL;
+	g_free(pli);
+	pli = NULL;
+	packet_list = g_list_next(packet_list);
+    }
+    packet_list = first;
+    g_list_free(packet_list);
+    packet_list = first = last = NULL;
+    rows = -1;
+}
+
+void
+ethereal_packetlist_init(capture_file *cfile) {
+    ListView_SetItemCount(g_hw_packetlist, rows + 1);
+}
+
+static LRESULT
+ethereal_packetlist_notify(HWND hw_packetlist, LPARAM l_param, capture_file *cfile) {
+    LPNMHDR lpnmh = (LPNMHDR) l_param;
+    NMLVCUSTOMDRAW *lvcdparam;
+    LV_DISPINFO *lpdi;
+    packet_list_item *pli;
+    int col_num = 0, sel_item;
+
+    switch(lpnmh->code) {
+	case LVN_GETDISPINFO:
+	    lpdi = (LV_DISPINFO *)l_param;
+
+	    if (lpdi->item.iSubItem) {	/* Our column number isn't zero. */
+		/* This probably isn't needed, but we may want
+		 * to add icons at a later date.
+		 */
+		if (lpdi->item.mask & LVIF_TEXT) {
+		    col_num = lpdi->item.iSubItem;
+		}
+	    }
+	    g_assert (packet_list != NULL && cfile->count != 0);
+	    pli = g_list_nth_data(first, lpdi->item.iItem);
+	    lstrcpyn(lpdi->item.pszText, pli->text[col_num], lpdi->item.cchTextMax);
+	    return 0;
+	    break;
+	case LVN_ITEMCHANGED:
+	    sel_item = ListView_GetNextItem(hw_packetlist, -1, LVNI_SELECTED);
+	    if (sel_item >= 0) {
+		select_packet(cfile, sel_item);
+	    }
+	    return 0;
+	    break;
+	case LVN_DELETEALLITEMS:
+	    /*
+	     * XXX - Should we move packet list deletion here?  Calling
+	     * ListView_DeleteAllItems() (in ethereal_packetlist_clear())
+	     * triggers this message.
+	     */
+	    return TRUE;
+	    break;
+	case NM_CUSTOMDRAW: /* Apply colors to each item */
+	    lvcdparam = (NMLVCUSTOMDRAW *) l_param;
+	    switch (lvcdparam->nmcd.dwDrawStage) {
+		case CDDS_PREPAINT:
+		    return CDRF_NOTIFYITEMDRAW;
+		    break;
+		case CDDS_ITEMPREPAINT:
+		    pli = g_list_nth_data(first, lvcdparam->nmcd.dwItemSpec);
+		    if (pli != NULL && pli->fg != NULL && pli->bg != NULL) {
+			lvcdparam->clrText = COLOR_T2COLORREF(pli->fg);
+			lvcdparam->clrTextBk = COLOR_T2COLORREF(pli->bg);
+			return CDRF_NEWFONT;
+		    }
+		    return CDRF_DODEFAULT;
+		    break;
+	    }
+	    break;
+    }
+    return 0;
+}
+
+/* These are defined in ui_util.h */
+
+void
+packet_list_clear(void) {
+    ethereal_packetlist_clear(g_hw_packetlist);
+}
+
+void
+packet_list_freeze(void) {
+//    ListView_SetItemCount(g_hw_packetlist, 0);
+}
+
+void
+packet_list_thaw(void) {
+    ListView_SetItemCount(g_hw_packetlist, rows + 1);
+}
+
+void packet_list_select_row(gint row) {
+}
+
+void packet_list_set_column_auto_resize(gint column, gboolean auto_resize) {
+}
+
+void packet_list_set_column_resizeable(gint column, gboolean resizeable) {
+}
+
+void packet_list_set_column_width(gint column, gint width) {
+}
+
+void packet_list_moveto_end(void) {
+}
+
+gint
+packet_list_append(gchar *text[], gpointer data) {
+    packet_list_item *pli;
+    int i;
+
+    pli = g_malloc(sizeof(packet_list_item));
+    pli->text = g_malloc(sizeof(gchar *) * prefs.num_cols);
+    for (i = 0; i < prefs.num_cols; i++) {
+	pli->text[i] = g_strdup(text[i]);
+    }
+    pli->data = data;
+    pli->fg = NULL;
+    pli->bg = NULL;
+
+    packet_list = g_list_append(last, pli);
+    last = g_list_last(packet_list);
+    if (first == NULL)
+	first = g_list_first(packet_list);
+    rows++;
+
+    /* XXX - ...and so is this. */
+    return rows;
+}
+
+void
+packet_list_set_colors(gint row, color_t *fg, color_t *bg) {
+    packet_list_item *pli;
+
+    pli = g_list_nth_data(first, row);
+    if (pli != NULL) {
+	if (pli->fg == NULL)
+	    pli->fg = g_malloc(sizeof(color_t));
+	if (pli->bg == NULL)
+	    pli->bg = g_malloc(sizeof(color_t));
+	pli->fg->pixel = fg->pixel;
+	pli->fg->red   = fg->red;
+	pli->fg->green = fg->green;
+	pli->fg->blue  = fg->blue;
+	pli->bg->pixel = bg->pixel;
+	pli->bg->red   = bg->red;
+	pli->bg->green = bg->green;
+	pli->bg->blue  = bg->blue;
+    }
+}
+
+gint
+packet_list_find_row_from_data_compare_func(gconstpointer list_data, gconstpointer compare_data) {
+    if (((packet_list_item *) list_data)->data == compare_data)
+	return 0;
+    return 1;
+}
+
+gint packet_list_find_row_from_data(gpointer data) {
+    GList *entry;
+    entry = g_list_find_custom(first, data, packet_list_find_row_from_data_compare_func);
+    if (entry)
+	return g_list_position(first, entry);
+    return 0;
+}
+
+void
+packet_list_set_text(gint row, gint column, const gchar *text) {
+    packet_list_item *pli;
+
+    pli = g_list_nth_data(first, row);
+    if (pli->text[column])
+	g_free(pli->text[column]);
+    pli->text[column] = g_strdup(text);
+}
+
+void
+packet_list_set_cls_time_width(gint column) {
+}
+
+gpointer
+packet_list_get_row_data(gint row) {
+    gpointer pdata;
+    pdata = g_list_nth_data(first, row);
+    return ((packet_list_item *) pdata)->data;
+}
+
+void
+packet_list_set_selected_row(gint row) {
+}
+
+
diff -x entries -urN ethereal/xulender/win32-c-sdk/localelements/ethereal-packetlist.h ethereal-win32/xulender/win32-c-sdk/localelements/ethereal-packetlist.h
--- ethereal/xulender/win32-c-sdk/localelements/ethereal-packetlist.h	1969-12-31 18:00:00.000000000 -0600
+++ ethereal-win32/xulender/win32-c-sdk/localelements/ethereal-packetlist.h	2004-06-14 15:11:40.000000000 -0500
@@ -0,0 +1,12 @@
+#ifndef __ETHEREAL_PACKETLIST_H__
+#define __ETHEREAL_PACKETLIST_H__
+
+
+#define ID_PACKET_LIST 5000
+
+win32_element_t * ethereal_packetlist_new(HWND hw_parent);
+void ethereal_packetlist_resize(HWND hw_packetlist, HWND hw_parent);
+void ethereal_packetlist_delete(HWND hw_packetlist);
+void ethereal_packetlist_init(capture_file *cfile);
+
+#endif /* ethereal-packetlist.h */
diff -x entries -urN ethereal/xulender/win32-c-sdk/localelements/ethereal-spinner.c ethereal-win32/xulender/win32-c-sdk/localelements/ethereal-spinner.c
--- ethereal/xulender/win32-c-sdk/localelements/ethereal-spinner.c	1969-12-31 18:00:00.000000000 -0600
+++ ethereal-win32/xulender/win32-c-sdk/localelements/ethereal-spinner.c	2004-06-17 14:07:52.000000000 -0500
@@ -0,0 +1,214 @@
+/*
+ * Spinner widget/control.
+ */
+
+#ifdef HAVE_CONFIG_H
+# include "config.h"
+#endif
+
+#include "globals.h"
+#include "glib.h"
+#include <windows.h>
+#include <windowsx.h>
+#include <commctrl.h>
+
+#include "win32-c-sdk.h"
+
+#include "win32-globals.h"
+#include "win32-util.h"
+
+#include "ethereal-spinner.h"
+
+static void ethereal_spinner_destroy(win32_element_t *spinner, gboolean destroy_window);
+static LRESULT CALLBACK ethereal_spinner_wnd_proc(HWND, UINT, WPARAM, LPARAM);
+
+typedef struct _spinner_data_t {
+    HWND edit;
+    HWND updown;
+} spinner_data_t;
+
+#define EWC_SPINNER_PANE "SpinnerPane"
+#define ETHEREAL_SPINNER_DATA "_ethereal_spinner_data"
+
+#define DEF_UPDOWN_WIDTH 15
+
+/*
+ * Create a spinner (a.k.a. spinbutton, a.k.a. up-down) control.  We create
+ * a wrapper window to handle sizing and any events we may need to catch.
+ */
+
+win32_element_t *
+ethereal_spinner_new(HWND hw_parent) {
+    HINSTANCE        h_instance = (HINSTANCE) GetWindowLong(hw_parent, GWL_HINSTANCE);
+    win32_element_t *spinner;
+    spinner_data_t  *sd;
+    WNDCLASS         wc;
+    SIZE             sz;
+
+    g_assert(hw_parent != NULL);
+
+    spinner = win32_element_new(NULL);
+
+    if (! GetClassInfo(h_instance, EWC_SPINNER_PANE, &wc)) {
+	wc.lpszClassName = EWC_SPINNER_PANE;
+	wc.lpfnWndProc = ethereal_spinner_wnd_proc;
+	wc.style = CS_HREDRAW | CS_VREDRAW | CS_OWNDC;
+	wc.cbClsExtra = 0;
+	wc.cbWndExtra = 0;
+	wc.hInstance = h_instance;
+	wc.hIcon = NULL;
+	wc.hCursor = LoadCursor(NULL, IDC_ARROW);
+	wc.hbrBackground = (HBRUSH) (COLOR_3DFACE+1);
+	wc.lpszMenuName = NULL;
+
+	RegisterClass(&wc);
+    }
+
+    spinner->h_wnd = CreateWindow(
+	EWC_SPINNER_PANE,
+	EWC_SPINNER_PANE,
+	WS_CHILD | WS_VISIBLE | WS_TABSTOP,
+	0, 0, 50, 25,
+	hw_parent,
+	(HMENU) ID_SPINNER,
+	(HINSTANCE) GetWindowLong(hw_parent, GWL_HINSTANCE),
+	(LPSTR) NULL);
+
+    SendMessage(spinner->h_wnd, WM_SETFONT,
+	(WPARAM) GetStockObject(DEFAULT_GUI_FONT), TRUE);
+
+    win32_get_text_size(spinner->h_wnd, "12345678", &sz);
+    sz.cx += 4;
+    sz.cy += 4;
+    MoveWindow(spinner->h_wnd, 0, 0, sz.cx, sz.cy, TRUE);
+
+    spinner->minwidth = sz.cx;
+    spinner->minheight = sz.cy;
+    spinner->destroy = ethereal_spinner_destroy;
+
+    sd = g_malloc(sizeof(spinner_data_t));
+
+    ShowWindow(spinner->h_wnd, SW_SHOW);
+    UpdateWindow(spinner->h_wnd);
+
+    /* Attach the spinner address to our HWND. */
+    SetWindowLong(spinner->h_wnd, GWL_USERDATA, (LONG) spinner);
+    win32_element_set_data(spinner, ETHEREAL_SPINNER_DATA, sd);
+
+    /* Create our text entry and up-down controls */
+    sd->edit = CreateWindowEx(
+	WS_EX_CLIENTEDGE,
+	"EDIT",
+	"",
+	WS_CHILD | WS_VISIBLE | ES_NUMBER,
+	0, 0, sz.cx, sz.cy,
+	spinner->h_wnd,
+	(HMENU) 0,
+	(HINSTANCE) GetWindowLong(hw_parent, GWL_HINSTANCE),
+	(LPSTR) NULL);
+    sd->updown = CreateUpDownControl(
+	WS_VISIBLE | WS_CHILD |
+	    UDS_ARROWKEYS | UDS_SETBUDDYINT | UDS_ALIGNRIGHT,
+	0, 0, DIALOG2PIXELX(DEF_UPDOWN_WIDTH), sz.cy,
+	spinner->h_wnd,
+	0,
+	(HINSTANCE) GetWindowLong(hw_parent, GWL_HINSTANCE),
+	sd->edit,
+	100, 0, 0);
+
+    SendMessage(sd->edit, WM_SETFONT,
+	(WPARAM) GetStockObject(DEFAULT_GUI_FONT), TRUE);
+    ShowWindow(sd->edit, SW_SHOW);
+    UpdateWindow(sd->edit);
+
+    SendMessage(sd->updown, WM_SETFONT,
+	(WPARAM) GetStockObject(DEFAULT_GUI_FONT), TRUE);
+    ShowWindow(sd->updown, SW_SHOW);
+    UpdateWindow(sd->updown);
+
+    return spinner;
+}
+
+/*
+ * Public routines
+ */
+
+void
+ethereal_spinner_set_range(win32_element_t *spinner, int low, int high) {
+    spinner_data_t *sd;
+
+    win32_element_assert(spinner);
+    sd = (spinner_data_t *) win32_element_get_data(spinner, ETHEREAL_SPINNER_DATA);
+
+    SendMessage(sd->updown, UDM_SETRANGE32, (WPARAM) low, (LPARAM) high);
+}
+
+void
+ethereal_spinner_set_pos(win32_element_t *spinner, int pos) {
+    spinner_data_t *sd;
+
+    win32_element_assert(spinner);
+    sd = (spinner_data_t *) win32_element_get_data(spinner, ETHEREAL_SPINNER_DATA);
+
+    SendMessage(sd->updown, UDM_SETPOS, (WPARAM) 0, (LPARAM) pos);
+}
+
+int
+ethereal_spinner_get_pos(win32_element_t *spinner) {
+    spinner_data_t *sd;
+
+    win32_element_assert(spinner);
+    sd = (spinner_data_t *) win32_element_get_data(spinner, ETHEREAL_SPINNER_DATA);
+
+    return (int) SendMessage(sd->updown, UDM_GETPOS, (WPARAM) 0, (LPARAM) 0);
+}
+
+
+/*
+ * Private routines
+ */
+
+static void
+ethereal_spinner_destroy(win32_element_t *spinner, gboolean destroy_window) {
+    spinner_data_t *sd;
+
+    win32_element_assert(spinner);
+
+    sd = (spinner_data_t *) win32_element_get_data(spinner, ETHEREAL_SPINNER_DATA);
+    g_free(sd);
+}
+
+static LRESULT CALLBACK
+ethereal_spinner_wnd_proc(HWND hw_spinner, UINT msg, WPARAM w_param, LPARAM l_param) {
+    win32_element_t *el;
+    spinner_data_t *sd;
+//    RECT dcrect;
+
+    switch (msg) {
+//	case WM_COMMAND:
+//	    /* onCommand commands */
+//	    if (HIWORD(w_param) == BN_CLICKED && l_param != NULL) {
+//		el = (win32_element_t *) GetWindowLong((HWND) l_param, GWL_USERDATA);
+//		if (el->oncommand != NULL) el->oncommand(el);
+//	    /* Resize our combobox dropdown boxes */
+//	    /* XXX - Get the number of items in the list and size accordingly */
+//	    } else if (HIWORD(w_param) == CBN_DROPDOWN && (int) LOWORD(w_param) == ID_COMBOBOX) {
+//		GetWindowRect((HWND) l_param,  &dcrect);
+//		SetWindowPos((HWND) l_param, HWND_TOP, 0, 0, dcrect.right - dcrect.left, 150,
+//		    SWP_NOACTIVATE | SWP_NOZORDER | SWP_NOMOVE);
+//	    }
+//	    break;
+
+	case WM_ENABLE:
+	    el = (win32_element_t *) GetWindowLong(hw_spinner, GWL_USERDATA);
+	    win32_element_assert(el);
+	    sd = (spinner_data_t *) win32_element_get_data(el, ETHEREAL_SPINNER_DATA);
+	    EnableWindow(sd->edit, (BOOL) w_param);
+	    EnableWindow(sd->updown, (BOOL) w_param);
+	    break;
+
+	default:
+	    return(DefWindowProc(hw_spinner, msg, w_param, l_param));
+    }
+    return 0;
+}
diff -x entries -urN ethereal/xulender/win32-c-sdk/localelements/ethereal-spinner.h ethereal-win32/xulender/win32-c-sdk/localelements/ethereal-spinner.h
--- ethereal/xulender/win32-c-sdk/localelements/ethereal-spinner.h	1969-12-31 18:00:00.000000000 -0600
+++ ethereal-win32/xulender/win32-c-sdk/localelements/ethereal-spinner.h	2004-04-30 19:18:20.000000000 -0500
@@ -0,0 +1,12 @@
+#ifndef __ETHEREAL_SPINNER_H__
+#define __ETHEREAL_SPINNER_H__
+
+
+win32_element_t *ethereal_spinner_new(HWND hw_parent);
+void ethereal_spinner_set_range(win32_element_t *spinner, int low, int high);
+void ethereal_spinner_set_pos(win32_element_t *spinner, int pos);
+int ethereal_spinner_get_pos(win32_element_t *spinner);
+
+#define ID_SPINNER 5004
+
+#endif /* ethereal-spinner.h */
diff -x entries -urN ethereal/xulender/win32-c-sdk/localelements/ethereal-treeview.c ethereal-win32/xulender/win32-c-sdk/localelements/ethereal-treeview.c
--- ethereal/xulender/win32-c-sdk/localelements/ethereal-treeview.c	1969-12-31 18:00:00.000000000 -0600
+++ ethereal-win32/xulender/win32-c-sdk/localelements/ethereal-treeview.c	2004-07-09 09:23:04.000000000 -0500
@@ -0,0 +1,365 @@
+
+
+#ifdef HAVE_CONFIG_H
+# include "config.h"
+#endif
+
+#ifdef HAVE_LIBPCAP
+#include <pcap.h>
+#endif
+
+#include "globals.h"
+#include "glib.h"
+#include <windows.h>
+#include <windowsx.h>
+#include <commctrl.h>
+
+#include "win32-c-sdk.h"
+
+#include "win32-globals.h"
+
+#include "ethereal-treeview.h"
+#include "ethereal-byteview.h"
+
+#include <epan/epan.h>
+#include <epan/filesystem.h>
+#include <epan/epan_dissect.h>
+
+/* Structures */
+
+typedef struct _treeview_data_t {
+    HWND             tv_ctrl;
+    win32_element_t *byteview;
+} treeview_data_t;
+
+typedef struct _add_node_t {
+    HWND      tv_ctrl;
+    HTREEITEM node;
+} add_node_t;
+
+static void ethereal_treeview_resize(HWND hw_treeview);
+static LRESULT CALLBACK ethereal_treeview_wnd_proc(HWND, UINT, WPARAM, LPARAM);
+static LRESULT ethereal_treeview_notify(HWND, LPARAM, capture_file *);
+static HTREEITEM ethereal_treeview_find_lparam(HWND tv_ctrl, HTREEITEM last_ti, LPARAM lp_data);
+
+#define EWC_TREE_PANE          "TreeViewPane"
+#define ETHEREAL_TREEVIEW_DATA "_ethereal_treeview_data"
+
+/*
+ * Creates a TreeView control
+ */
+
+win32_element_t *
+ethereal_treeview_new(HWND hw_parent) {
+    win32_element_t *treeview;
+    HINSTANCE        h_instance = (HINSTANCE) GetWindowLong(hw_parent, GWL_HINSTANCE);
+    WNDCLASS         wc;
+
+    wc.lpszClassName = EWC_TREE_PANE;
+    wc.lpfnWndProc = ethereal_treeview_wnd_proc;
+    wc.style = CS_HREDRAW | CS_VREDRAW | CS_OWNDC;
+    wc.cbClsExtra = 0;
+    wc.cbWndExtra = 0;
+    wc.hInstance = h_instance;
+    wc.hIcon = NULL;
+    wc.hCursor = LoadCursor(NULL, IDC_ARROW);
+    wc.hbrBackground = (HBRUSH) (COLOR_WINDOWFRAME+1);
+    wc.lpszMenuName = NULL;
+
+    RegisterClass(&wc);
+
+    g_assert(hw_parent != NULL);
+
+    treeview = win32_element_new(NULL);
+
+    treeview->h_wnd = CreateWindow(
+	EWC_TREE_PANE,
+	EWC_TREE_PANE,
+	WS_CHILD | WS_VISIBLE,
+	0, 0, 0, 0,
+	hw_parent,
+	NULL,
+	h_instance,
+	treeview);
+
+    ShowWindow(treeview->h_wnd, SW_SHOW);
+    UpdateWindow(treeview->h_wnd);
+
+    ethereal_treeview_resize(treeview->h_wnd);
+
+    return treeview;
+}
+
+void
+ethereal_treeview_clear(win32_element_t *treeview) {
+    treeview_data_t *td;
+
+    win32_element_assert(treeview);
+    td = (treeview_data_t *) win32_element_get_data(treeview, ETHEREAL_TREEVIEW_DATA);
+
+    SendMessage(td->tv_ctrl, WM_SETREDRAW, FALSE, 0);
+    TreeView_DeleteAllItems(td->tv_ctrl);
+    SendMessage(td->tv_ctrl, WM_SETREDRAW, TRUE, 0);
+}
+
+static void
+ethereal_treeview_add_node(proto_node *node, gpointer data)
+{
+    add_node_t      info;
+    add_node_t     *parent_info = (add_node_t *) data;
+    HTREEITEM       parent;
+    field_info     *fi = PITEM_FINFO(node);
+    TVITEM          tv_node;
+    TVINSERTSTRUCT  tv_is;
+    gchar           label_str[ITEM_LABEL_LENGTH];
+    gchar          *label_ptr;
+    gboolean        is_leaf, is_expanded;
+
+    if (PROTO_ITEM_IS_HIDDEN(node))
+	return;
+
+    /* was a free format label produced? */
+    if (fi->rep) {
+	label_ptr = fi->rep->representation;
+    } else { /* no, make a generic label */
+	label_ptr = label_str;
+	proto_item_fill_label(fi, label_str);
+    }
+
+    if (node->first_child != NULL) {
+	is_leaf = FALSE;
+	g_assert(fi->tree_type >= 0 && fi->tree_type < num_tree_types);
+	if (tree_is_expanded[fi->tree_type]) {
+	    is_expanded = TRUE;
+	} else {
+	    is_expanded = FALSE;
+	}
+    } else {
+	is_leaf = TRUE;
+	is_expanded = FALSE;
+    }
+
+    if(PROTO_ITEM_IS_GENERATED(node)) {
+	label_ptr = g_strdup_printf("[%s]", label_ptr);
+    }
+
+    info.tv_ctrl = parent_info->tv_ctrl;
+    ZeroMemory(&tv_node, sizeof(tv_node));
+    ZeroMemory(&tv_is, sizeof(tv_is));
+
+    /* Load our node data */
+    tv_node.mask = TVIF_TEXT | TVIF_PARAM;
+    tv_node.pszText = label_ptr;
+    tv_node.cchTextMax = lstrlen(label_ptr);
+    tv_node.lParam = (LPARAM) fi;
+
+    /* Prep the node for insertion */
+    tv_is.hParent = parent_info->node;
+    tv_is.hInsertAfter = TVI_LAST;
+    tv_is.item = tv_node;
+
+    /* Insert the node */
+    parent = TreeView_InsertItem(info.tv_ctrl, &tv_is);
+
+    if(PROTO_ITEM_IS_GENERATED(node)) {
+	g_free(label_ptr);
+    }
+
+    if (!is_leaf) { /* Our node contains more items to add. */
+	info.node = parent;
+	proto_tree_children_foreach(node, ethereal_treeview_add_node, &info);
+
+	if (is_expanded) {
+	    ZeroMemory(&tv_node, sizeof(tv_node));
+	    tv_node.mask = TVIF_STATE;
+	    tv_node.state = TVIS_EXPANDED;
+	    tv_node.stateMask = TVIS_EXPANDED;
+	    TreeView_SetItem(info.tv_ctrl, info.node);
+	}
+    }
+}
+
+void
+ethereal_treeview_draw(win32_element_t *treeview, proto_tree *tree, win32_element_t *byteview) {
+    treeview_data_t *td;
+    add_node_t       node_data;
+
+    win32_element_assert(treeview);
+    td = (treeview_data_t *) win32_element_get_data(treeview, ETHEREAL_TREEVIEW_DATA);
+    td->byteview = byteview;
+
+    ethereal_treeview_clear(treeview);
+    node_data.tv_ctrl = td->tv_ctrl;
+    node_data.node = NULL;
+
+    proto_tree_children_foreach(tree, ethereal_treeview_add_node, &node_data);
+}
+
+HTREEITEM
+ethereal_treeview_find_finfo(win32_element_t *treeview, field_info *fi) {
+    treeview_data_t *td;
+
+    win32_element_assert(treeview);
+    td = (treeview_data_t *) win32_element_get_data(treeview, ETHEREAL_TREEVIEW_DATA);
+
+    return ethereal_treeview_find_lparam(td->tv_ctrl, NULL, (LPARAM) fi);
+}
+
+void
+ethereal_treeview_select(win32_element_t *treeview, HTREEITEM hti) {
+    treeview_data_t *td;
+
+    win32_element_assert(treeview);
+    td = (treeview_data_t *) win32_element_get_data(treeview, ETHEREAL_TREEVIEW_DATA);
+
+    TreeView_Select(td->tv_ctrl, hti, TVGN_FIRSTVISIBLE);
+    TreeView_Select(td->tv_ctrl, hti, TVGN_CARET);
+}
+
+/*
+ * Private routines
+ */
+static void
+ethereal_treeview_resize(HWND hw_treeview) {
+    win32_element_t *treeview = (win32_element_t *) GetWindowLong(hw_treeview, GWL_USERDATA);
+    treeview_data_t *td;
+    RECT             pr;
+
+    win32_element_assert(treeview);
+    td = (treeview_data_t *) win32_element_get_data(treeview, ETHEREAL_TREEVIEW_DATA);
+
+    GetClientRect(hw_treeview, &pr);
+    MoveWindow(td->tv_ctrl, pr.left, pr.top, pr.right - pr.left,
+	pr.bottom - pr.top, TRUE);
+}
+
+static LRESULT CALLBACK
+ethereal_treeview_wnd_proc(HWND hw_treeview, UINT msg,
+	WPARAM w_param, LPARAM l_param) {
+    win32_element_t *treeview;
+    treeview_data_t *td;
+    LPCREATESTRUCT   cs = (LPCREATESTRUCT) l_param;
+
+    switch (msg) {
+	case WM_CREATE:
+	    /* Attach the treeview address to our HWND. */
+	    treeview = (win32_element_t *) cs->lpCreateParams;
+	    g_assert(treeview != NULL);
+	    treeview->h_wnd = hw_treeview;
+	    SetWindowLong(hw_treeview, GWL_USERDATA, (LONG) treeview);
+
+	    td = g_malloc(sizeof(treeview_data_t));
+
+	    td->tv_ctrl = CreateWindowEx(
+		WS_EX_CLIENTEDGE,
+		WC_TREEVIEW,
+		"",
+		WS_CHILD | WS_TABSTOP | WS_VISIBLE |
+			TVS_DISABLEDRAGDROP | TVS_FULLROWSELECT | TVS_HASBUTTONS |
+			TVS_HASLINES | TVS_LINESATROOT | TVS_SHOWSELALWAYS,
+		0, 0, 0, 0,
+		hw_treeview,
+		(HMENU) ID_TREE_VIEW,
+		(HINSTANCE) GetWindowLong(hw_treeview, GWL_HINSTANCE),
+		NULL);
+	    td->byteview = NULL;
+	    win32_element_set_data(treeview, ETHEREAL_TREEVIEW_DATA, td);
+	    break;
+	case WM_SIZE:
+	    ethereal_treeview_resize (hw_treeview);
+	    break;
+	case WM_NOTIFY:
+	    return ethereal_treeview_notify(hw_treeview, l_param, &cfile);
+	    break;
+	default:
+	    return(DefWindowProc(hw_treeview, msg, w_param, l_param));
+    }
+    return 0;
+}
+
+static LRESULT
+ethereal_treeview_notify(HWND hw_treeview, LPARAM l_param, capture_file *cfile) {
+    win32_element_t *treeview = (win32_element_t *) GetWindowLong(hw_treeview, GWL_USERDATA);
+    treeview_data_t *td;
+    LPNMHDR          lpnmh = (LPNMHDR) l_param;
+    LPNMTREEVIEW     tv_sel;
+    field_info      *finfo;
+    const guint8    *byte_data;
+    guint            byte_len;
+
+    win32_element_assert(treeview);
+    td = (treeview_data_t *) win32_element_get_data(treeview, ETHEREAL_TREEVIEW_DATA);
+
+    switch(lpnmh->code) {
+	case TVN_SELCHANGED:
+	    /* Bah.  For some reason, we crash if we select a
+	     * packet, then click on a tree view label.  Forcing
+	     * the focus to the treeview window seems to fix this.
+	     */
+	    SetFocus(td->tv_ctrl);
+	    tv_sel = (LPNMTREEVIEW) l_param;
+	    finfo = (field_info *) tv_sel->itemNew.lParam;
+	    if (! finfo) return 0;
+
+	    set_notebook_page(td->byteview, finfo->ds_tvb);
+
+	    byte_data = get_byteview_data_and_length(td->byteview, &byte_len);
+	    g_assert(byte_data != NULL);
+
+	    cfile->finfo_selected = finfo;
+
+	    packet_hex_print(td->byteview, byte_data, cfile->current_frame,
+		    finfo, byte_len);
+
+	    // XXX - Set menus
+	    // XXX - Push data to the statusbar
+	    // XXX - Get our bv HWND and data ptr info
+
+	    break;
+	default:
+	    break;
+    }
+    return 0;
+}
+
+/* Find a TreeView item by its lParam value */
+/* XXX - We could eliminate this by adding a generic pointer to the
+ * proto_node or field_info structs, which we could use to store an
+ * HTREEITEM pointer.
+ */
+static HTREEITEM
+ethereal_treeview_find_lparam(HWND tv_ctrl, HTREEITEM last_ti, LPARAM lp_data) {
+    TVITEM    tvi;
+    HTREEITEM hti, ret;
+
+    if (last_ti == NULL) { /* Start at the root */
+	hti = TreeView_GetRoot(tv_ctrl);
+	if (hti == NULL) return NULL;
+	return ethereal_treeview_find_lparam(tv_ctrl, hti, lp_data);
+    }
+
+    ZeroMemory(&tvi, sizeof(tvi));
+    tvi.mask = TVIF_PARAM;
+    tvi.hItem = last_ti;
+
+    if (TreeView_GetItem(tv_ctrl, &tvi)) {
+	if (tvi.lParam == lp_data) {
+	    return tvi.hItem;
+	}
+    }
+
+    hti = TreeView_GetChild(tv_ctrl, last_ti);
+    if (hti != NULL) {
+	ret = ethereal_treeview_find_lparam(tv_ctrl, hti, lp_data);
+	if (ret != NULL) return ret;
+    }
+
+    hti = TreeView_GetNextSibling(tv_ctrl, last_ti);
+    if (hti != NULL) {
+	ret = ethereal_treeview_find_lparam(tv_ctrl, hti, lp_data);
+	if (ret != NULL) return ret;
+    }
+
+    return NULL;
+}
+
diff -x entries -urN ethereal/xulender/win32-c-sdk/localelements/ethereal-treeview.h ethereal-win32/xulender/win32-c-sdk/localelements/ethereal-treeview.h
--- ethereal/xulender/win32-c-sdk/localelements/ethereal-treeview.h	1969-12-31 18:00:00.000000000 -0600
+++ ethereal-win32/xulender/win32-c-sdk/localelements/ethereal-treeview.h	2004-07-09 08:18:55.000000000 -0500
@@ -0,0 +1,14 @@
+#ifndef __ETHEREAL_TREEVIEW_H__
+#define __ETHEREAL_TREEVIEW_H__
+
+#define ID_TREE_VIEW 5001
+
+win32_element_t * ethereal_treeview_new(HWND hw_parent);
+void ethereal_treeview_clear(win32_element_t* treeview);
+void ethereal_treeview_delete(HWND hw_treeview);
+HTREEITEM ethereal_treeview_find_finfo(win32_element_t *treeview, field_info *fi);
+void ethereal_treeview_select(win32_element_t *treeview, HTREEITEM hti);
+void ethereal_treeview_show_tree(capture_file *cfile);
+void ethereal_treeview_draw(win32_element_t *treeview, proto_tree *tree, win32_element_t *byteview);
+
+#endif /* ethereal-treeview.h */
diff -x entries -urN ethereal/xulender/win32-c-sdk/prefs-dlg.c ethereal-win32/xulender/win32-c-sdk/prefs-dlg.c
--- ethereal/xulender/win32-c-sdk/prefs-dlg.c	1969-12-31 18:00:00.000000000 -0600
+++ ethereal-win32/xulender/win32-c-sdk/prefs-dlg.c	2004-07-14 15:09:02.000000000 -0500
@@ -0,0 +1,1935 @@
+
+#ifdef HAVE_CONFIG_H
+# include "config.h"
+#endif
+
+#include "globals.h"
+#include "glib.h"
+#include <windows.h>
+#include <windowsx.h>
+#include <commctrl.h>
+
+#include <pcap.h>
+#include "pcap-util.h"
+
+#include <epan/filesystem.h>
+#include "prefs.h"
+#include "column.h"
+#include "print.h"
+#include "epan/resolv.h"
+#include "prefs-int.h"
+#include "capture-wpcap.h"
+#include "simple_dialog.h"
+
+#include "win32-c-sdk.h"
+#include "ethereal-win32.h"
+
+#include "win32-globals.h"
+#include "win32-util.h"
+
+#include "win32-color-filters.h"
+#include "capture_combo_utils.h"
+
+#include "preferences-dialog.h"
+
+/* XXX - We should split this file into column_prefs.c, stream_prefs.c, etc.
+ * like GTK version. */
+static void gui_prefs_init(win32_element_t *prefs_dlg);
+static void column_prefs_init(win32_element_t *prefs_dlg);
+static void font_prefs_init(win32_element_t *prefs_dlg);
+static void color_prefs_init(win32_element_t *prefs_dlg);
+static void capture_prefs_init(win32_element_t *prefs_dlg);
+static void printer_prefs_init(win32_element_t *prefs_dlg);
+static void nameres_prefs_init(win32_element_t *prefs_dlg);
+static void protocol_prefs_init(win32_element_t *prefs_dlg);
+static int CALLBACK font_style_enum_proc(ENUMLOGFONTEX *lpelfe, NEWTEXTMETRICEX *lpntme,
+    int font_type, LPARAM l_param);
+static int CALLBACK font_size_enum_proc(ENUMLOGFONTEX *lpelfe, NEWTEXTMETRICEX *lpntme,
+    int font_type, LPARAM l_param);
+static void show_font_selection();
+static void set_sample_colors();
+static void prefs_main_fetch_all(gboolean *must_redissect);
+static void prefs_main_apply_all();
+static void toggle_column_buttons(int cur_sel);
+static void module_prefs_revert(module_t *module, gpointer user_data);
+
+typedef struct _module_data_t {
+    win32_element_t *tree;
+    win32_element_t *deck;
+} module_data_t;
+
+typedef struct _menulist_val_map {
+    gchar *name;
+    gint  *val;
+} menulist_val_map;
+
+typedef struct _checkbox_val_map {
+    gchar    *name;
+    gboolean *val;
+} checkbox_val_map;
+
+typedef struct _radio_val_t {
+    gchar *name;
+    gint   val;
+} radio_val_t;
+
+typedef struct _textbox_val_map {
+    gchar  *name;
+    gchar **val;
+} textbox_val_map;
+
+typedef struct _spinner_val_map {
+    gchar    *name;
+    gint     *val;
+    gint      low;
+    gint      high;
+} spinner_val_map;
+
+/* From gtk/stream_prefs.c */
+#define SAMPLE_MARKED_TEXT "Sample marked packet text\n"
+#define SAMPLE_CLIENT_TEXT "Sample TCP stream client text\n"
+#define SAMPLE_SERVER_TEXT "Sample TCP stream server text\n"
+#define MFG_IDX 0
+#define MBG_IDX 1
+#define CFG_IDX 2
+#define CBG_IDX 3
+#define SFG_IDX 4
+#define SBG_IDX 5
+#define MAX_IDX 6 /* set this to the number of IDX values */
+
+#define NAMRES_MAX_CONCURRENCY 100000
+
+static color_t  tcolors[MAX_IDX];
+static COLORREF cust_colors[16];
+static HFONT    old_fixed_font = NULL;
+static gboolean font_changed;
+static e_prefs  saved_prefs, tmp_prefs;
+
+static menulist_val_map gui_ml_map[] = {
+    { "prefs.gui_plist_sel_browse",             &tmp_prefs.gui_plist_sel_browse },
+    { "prefs.gui_ptree_sel_browse",             &tmp_prefs.gui_ptree_sel_browse },
+    { "prefs.gui_hex_dump_highlight_style",     &tmp_prefs.gui_hex_dump_highlight_style },
+    { "prefs.gui_toolbar_main_style",           &tmp_prefs.gui_toolbar_main_style },
+    { "prefs.filter_toolbar_show_in_statusbar", &tmp_prefs.filter_toolbar_show_in_statusbar },
+    { "prefs.gui_console_open",                 &tmp_prefs.gui_console_open },
+    { NULL,                                     NULL }
+};
+
+static checkbox_val_map gui_cb_map[] = {
+    { "prefs.gui_geometry_save_position",  &tmp_prefs.gui_geometry_save_position },
+    { "prefs.gui_geometry_save_size",      &tmp_prefs.gui_geometry_save_size },
+    { "prefs.gui_geometry_save_maximized", &tmp_prefs.gui_geometry_save_maximized },
+    { NULL,                                NULL }
+};
+
+static radio_val_t gui_fs_radio_vals[] = {
+    { "prefs.gui_fo_style_last_opened", FO_STYLE_LAST_OPENED, },
+    { "prefs.gui_fo_style_specified",   FO_STYLE_SPECIFIED,   },
+    { NULL,                             0 }
+};
+
+static textbox_val_map gui_tb_map[] = {
+    { "prefs.gui_fileopen_dir", &tmp_prefs.gui_fileopen_dir },
+    { NULL,                     NULL }
+};
+
+static spinner_val_map gui_sp_map[] = {
+    { "prefs.gui_recent_files_count_max", &tmp_prefs.gui_recent_files_count_max, 0, 128 },
+    { NULL,                               NULL,                              0, 0}
+};
+
+static checkbox_val_map capture_cb_map[] = {
+    { "prefs.capture_prom_mode",   &tmp_prefs.capture_prom_mode },
+    { "prefs.capture_real_time",   &tmp_prefs.capture_real_time },
+    { "prefs.capture_auto_scroll", &tmp_prefs.capture_auto_scroll },
+    { "prefs.capture_show_info",   &tmp_prefs.capture_show_info },
+    { NULL,                        NULL }
+};
+
+static radio_val_t print_format_radio_vals[] = {
+    { "prefs.pr_format_plain", PR_FMT_TEXT, },
+    { "prefs.pr_format_ps",    PR_FMT_PS,   },
+    { NULL,                    0 }
+};
+
+static radio_val_t print_dest_radio_vals[] = {
+    { "prefs.pr_dest_printer", PR_DEST_CMD,  },
+    { "prefs.pr_dest_file",    PR_DEST_FILE, },
+    { NULL,                    0 }
+};
+
+
+/* Create the dialog (if needed), initialize its controls, and display it */
+void
+prefs_dialog_init(HWND parent) {
+    HWND             hw_prefs;
+    win32_element_t *prefs_dlg = win32_identifier_get_str("preferences-dialog");
+
+    if (! prefs_dlg) {
+	hw_prefs = preferences_dialog_dialog_create(parent);
+	prefs_dlg = (win32_element_t *) GetWindowLong(hw_prefs, GWL_USERDATA);
+
+	copy_prefs(&saved_prefs, &prefs);
+
+	/* XXX - We use tmp_prefs so that we can feed a const to the various
+	 * gui_*_map structs above.  Is there a way we can use "prefs" directly?
+	 */
+	copy_prefs(&tmp_prefs, &prefs);
+
+	/* Load our prefs */
+	gui_prefs_init(prefs_dlg);
+	column_prefs_init(prefs_dlg);
+	font_prefs_init(prefs_dlg);
+	color_prefs_init(prefs_dlg);
+	capture_prefs_init(prefs_dlg);
+	printer_prefs_init(prefs_dlg);
+	nameres_prefs_init(prefs_dlg);
+	protocol_prefs_init(prefs_dlg);
+    } else {
+	win32_element_assert(prefs_dlg);
+	hw_prefs = prefs_dlg->h_wnd;
+    }
+    win32_element_resize(prefs_dlg, -1, -1);
+    preferences_dialog_dialog_show(hw_prefs);
+}
+
+/* Command sent by element type <button>, id "prefs-dialog.ok" */
+void
+prefs_dialog_ok (win32_element_t *ok_el) {
+    win32_element_t *pd_el = win32_identifier_get_str("preferences-dialog");
+    gboolean must_redissect = FALSE;
+
+    prefs_main_fetch_all(&must_redissect);
+
+    prefs_main_apply_all();
+
+    win32_element_assert(pd_el);
+    win32_element_destroy(pd_el, TRUE);
+
+    if (must_redissect) {
+	redissect_packets(&cfile);
+    }
+}
+
+/* Command sent by element type <button>, id "prefs-dialog.apply" */
+void
+prefs_dialog_apply (win32_element_t *apply_el) {
+    gboolean must_redissect = FALSE;
+
+    prefs_main_fetch_all(&must_redissect);
+
+    prefs_main_apply_all();
+
+    if (must_redissect) {
+	/* Redissect all the packets, and re-evaluate the display filter. */
+	redissect_packets(&cfile);
+    }
+}
+
+/* Command sent by element type <button>, id "prefs-dialog.save" */
+void
+prefs_dialog_save (win32_element_t *save_el) {
+    gboolean must_redissect = FALSE;
+    int      err;
+    char    *pf_dir_path, *pf_path;
+
+    prefs_main_fetch_all(&must_redissect);
+
+    /* Create the directory that holds personal configuration files, if
+       necessary.  */
+    if (create_persconffile_dir(&pf_dir_path) == -1) {
+	simple_dialog(ESD_TYPE_ERROR, ESD_BTN_OK,
+		"Can't create directory\n\"%s\"\nfor preferences file: %s.", pf_dir_path,
+		strerror(errno));
+	g_free(pf_dir_path);
+    } else {
+	/* Write the preferencs out. */
+	err = write_prefs(&pf_path);
+	if (err != 0) {
+	    simple_dialog(ESD_TYPE_ERROR, ESD_BTN_OK,
+		    "Can't open preferences file\n\"%s\": %s.", pf_path,
+		    strerror(err));
+	    g_free(pf_path);
+	}
+    }
+
+    /* Now apply those preferences.
+       XXX - should we do this?  The user didn't click "OK" or "Apply".
+       However:
+
+          1) by saving the preferences they presumably indicate that they
+             like them;
+
+          2) the next time they fire Ethereal up, those preferences will
+             apply;
+
+          3) we'd have to buffer "must_redissect" so that if they do
+             "Apply" after this, we know we have to redissect;
+
+          4) we did apply the protocol preferences, at least, in the past. */
+    prefs_main_apply_all();
+
+    if (must_redissect) {
+	/* Redissect all the packets, and re-evaluate the display filter. */
+	redissect_packets(&cfile);
+    }
+}
+
+/* Command sent by element type <button>, id "prefs-dialog.cancel" */
+void
+prefs_dialog_cancel (win32_element_t *cancel_el) {
+    win32_element_t *pd_el = win32_identifier_get_str("preferences-dialog");
+    gboolean         must_redissect = FALSE;
+
+    win32_element_assert(pd_el);
+
+    /* Free up the current preferences and copy the saved preferences to the
+       current preferences. */
+    free_prefs(&prefs);
+    copy_prefs(&prefs, &saved_prefs);
+
+    /* Now revert the registered preferences. */
+    prefs_modules_foreach(module_prefs_revert, &must_redissect);
+
+    /* Now apply the reverted-to preferences. */
+    prefs_main_apply_all();
+
+    win32_element_destroy(pd_el, TRUE);
+
+    if (must_redissect) {
+	/* Redissect all the packets, and re-evaluate the display filter. */
+	redissect_packets(&cfile);
+    }
+}
+
+#define PREFS_DLG_ID_PREFIX "prefs-dialog."
+void
+prefs_tree_select (win32_element_t *tree_el, NMTREEVIEW *tv_sel) {
+    tree_row        *row;
+    gchar           *panel_id;
+    win32_element_t *deck, *panel;
+    gint             offset = strlen(PREFS_DLG_ID_PREFIX);
+
+    win32_element_assert(tree_el);
+
+    deck = win32_identifier_get_str("prefs-dialog.deck");
+    win32_element_assert(deck);
+
+    row = (tree_row *) tv_sel->itemNew.lParam;
+    g_assert(row != NULL);
+    g_assert(row->id != NULL);
+    panel_id = g_strdup(row->id);
+    g_assert(strlen(panel_id) > offset + strlen("tree."));
+
+    memcpy(panel_id + offset, "deck", 4);
+    panel = win32_identifier_get_str(panel_id);
+
+    if (panel != NULL) {
+	win32_deck_set_selectedpanel(deck, panel);
+    }
+    g_free(panel_id);
+}
+
+void
+prefs_col_list_select(win32_element_t *listbox, LPNMLISTVIEW nmlv) {
+    win32_element_t *col_tb, *col_ml;
+    int              sel_item;
+    fmt_data        *cfmt;
+    gboolean         enabled = FALSE;
+
+    col_tb = win32_identifier_get_str("prefs-dialog.cols.title");
+    win32_element_assert(col_tb);
+
+    col_ml = win32_identifier_get_str("prefs-dialog.cols.format");
+    win32_element_assert(col_ml);
+
+    sel_item = ListView_GetNextItem(nmlv->hdr.hwndFrom, -1, LVNI_SELECTED);
+    toggle_column_buttons(sel_item);
+
+    cfmt = (fmt_data *) win32_listbox_get_row_data(listbox, sel_item);
+    if (sel_item >= 0 && nmlv->uNewState & LVIS_SELECTED && cfmt != NULL) {
+	win32_textbox_set_text(col_tb, cfmt->title);
+	sel_item = get_column_format_from_str(cfmt->fmt);
+	win32_menulist_set_selection(col_ml, sel_item);
+	enabled = TRUE;
+    }
+}
+
+void
+prefs_font_name_list_select(win32_element_t *listbox, LPNMLISTVIEW nmlv) {
+    win32_element_t *name_tb, *style_lb, *size_lb;
+    int              sel_name, sel_style, sel_size, row = 0;
+    LVITEM           item;
+    gchar            font_name[LF_FULLFACESIZE];
+    LOGFONT          lfinfo;
+    HDC              hdc;
+    gpointer         row_data;
+
+    name_tb = win32_identifier_get_str("prefs-dialog.font.tb.name");
+    win32_element_assert(name_tb);
+
+    style_lb = win32_identifier_get_str("prefs-dialog.font.lb.style");
+    win32_element_assert(style_lb);
+
+    size_lb = win32_identifier_get_str("prefs-dialog.font.lb.size");
+    win32_element_assert(size_lb);
+
+    sel_name = ListView_GetNextItem(nmlv->hdr.hwndFrom, -1, LVNI_SELECTED);
+    sel_style = win32_listbox_get_selected(style_lb);
+    sel_size = win32_listbox_get_selected(size_lb);
+    if (sel_name >= 0 && nmlv->uNewState & LVIS_SELECTED) {
+	ZeroMemory(&item, sizeof(item));
+	item.mask = LVIF_TEXT;
+	item.iItem = sel_name;
+	item.iSubItem = 0;
+	item.pszText = font_name;
+	item.cchTextMax = LF_FULLFACESIZE;
+	ListView_GetItem(nmlv->hdr.hwndFrom, &item);
+	win32_textbox_set_text(name_tb, font_name);
+
+        ZeroMemory(&lfinfo, sizeof(lfinfo));
+	lfinfo.lfCharSet        = ANSI_CHARSET;  /* XXX - Do we need to be this restrictive? */
+	lstrcpyn(lfinfo.lfFaceName, font_name, LF_FACESIZE);
+	lfinfo.lfPitchAndFamily = FIXED_PITCH | FF_MODERN;
+
+	if (style_lb != NULL) {
+	    for (row = 0; row < win32_listbox_get_row_count(style_lb); row++) {
+		row_data = win32_listbox_get_row_data(style_lb, row);
+		if (row_data) {
+		    g_free(row_data);
+		}
+	    }
+	    win32_listbox_clear(style_lb);
+	}
+	if (size_lb != NULL) {
+	    win32_listbox_clear(size_lb);
+	}
+	hdc = GetDC(listbox->h_wnd);
+	EnumFontFamiliesEx(hdc, &lfinfo, (FONTENUMPROC) font_style_enum_proc,
+	    (LONG) style_lb, 0);
+	EnumFontFamiliesEx(hdc, &lfinfo, (FONTENUMPROC) font_size_enum_proc,
+	    (LONG) size_lb, 0);
+	ReleaseDC(listbox->h_wnd, hdc);
+    } else {
+	win32_textbox_set_text(name_tb, "");
+    }
+    win32_listbox_set_selected(style_lb, sel_style);
+    win32_listbox_set_selected(size_lb, sel_size);
+
+    show_font_selection();
+    font_changed = TRUE;
+}
+
+void
+prefs_font_style_list_select(win32_element_t *listbox, LPNMLISTVIEW nmlv) {
+    win32_element_t *style_tb = win32_identifier_get_str("prefs-dialog.font.tb.style");
+    int              sel_item;
+    LVITEM           item;
+    gchar            font_style[LF_FACESIZE];
+
+    win32_element_assert(style_tb);
+
+    sel_item = ListView_GetNextItem(nmlv->hdr.hwndFrom, -1, LVNI_SELECTED);
+    if (sel_item >= 0 && nmlv->uNewState & LVIS_SELECTED) {
+	ZeroMemory(&item, sizeof(item));
+	item.mask = LVIF_TEXT;
+	item.iItem = sel_item;
+	item.iSubItem = 0;
+	item.pszText = font_style;
+	item.cchTextMax = LF_FACESIZE;
+	ListView_GetItem(nmlv->hdr.hwndFrom, &item);
+	win32_textbox_set_text(style_tb, font_style);
+    } else {
+	win32_textbox_set_text(style_tb, "");
+    }
+
+    show_font_selection();
+    font_changed = TRUE;
+}
+
+void
+prefs_font_size_list_select(win32_element_t *listbox, LPNMLISTVIEW nmlv) {
+    win32_element_t *size_tb = win32_identifier_get_str("prefs-dialog.font.tb.size");
+    int              sel_item;
+    LVITEM           item;
+    gchar            font_size[LF_FACESIZE];
+
+    win32_element_assert(size_tb);
+
+    sel_item = ListView_GetNextItem(nmlv->hdr.hwndFrom, -1, LVNI_SELECTED);
+    if (sel_item >= 0 && nmlv->uNewState & LVIS_SELECTED) {
+	ZeroMemory(&item, sizeof(item));
+	item.mask = LVIF_TEXT;
+	item.iItem = sel_item;
+	item.iSubItem = 0;
+	item.pszText = font_size;
+	item.cchTextMax = LF_FACESIZE;
+	ListView_GetItem(nmlv->hdr.hwndFrom, &item);
+	win32_textbox_set_text(size_tb, font_size);
+    } else {
+	win32_textbox_set_text(size_tb, "");
+    }
+
+    show_font_selection();
+    font_changed = TRUE;
+}
+
+/* Command sent by element type <button>, id "prefs-dialog.color.set" */
+void
+prefs_dialog_set_color (win32_element_t *set_el) {
+    win32_element_t *color_ml;
+    CHOOSECOLOR      cc;
+    int              cur_sel;
+
+    color_ml = win32_identifier_get_str("prefs-dialog.color.select");
+    win32_element_assert(color_ml);
+
+    cur_sel = win32_menulist_get_selection(color_ml);
+    g_assert(cur_sel >= 0 && cur_sel < MAX_IDX);
+
+    ZeroMemory(&cc, sizeof(cc));
+    cc.lStructSize = sizeof(cc);
+    cc.Flags = CC_FULLOPEN | CC_RGBINIT;
+    cc.rgbResult = COLOR_T2COLORREF(&tcolors[cur_sel]);
+    cc.lpCustColors = cust_colors;
+    if (ChooseColor(&cc)) {
+	colorref2color_t(cc.rgbResult, &tcolors[cur_sel]);
+	set_sample_colors();
+    }
+}
+
+/* Command sent by element type <radio>, id "prefs.gui_fo_style_last_opened" */
+/* Command sent by element type <radio>, id "prefs.gui_fo_style_specified" */
+void
+prefs_fileopen_style (win32_element_t *rd_el) {
+    win32_element_t *cur_el, *text_el;
+
+    cur_el = win32_identifier_get_str("prefs.gui_fo_style_specified");
+    win32_element_assert(cur_el);
+
+    text_el = win32_identifier_get_str("prefs.gui_fileopen_dir");
+    win32_element_assert(text_el);
+
+    if (win32_radio_get_state(cur_el)) {
+	win32_element_set_enabled(text_el, TRUE);
+    } else {
+	win32_element_set_enabled(text_el, FALSE);
+    }
+}
+
+/* Command sent by element type <button>, id "prefs-dialog.cols.new" */
+void prefs_dialog_new_column (win32_element_t *button) {
+    win32_element_t  *listbox, *textbox, *menulist;
+    fmt_data         *cfmt;
+    gchar            *title = "New Column";
+    gint              row;
+
+    win32_element_assert(button);
+
+
+    listbox = win32_identifier_get_str("prefs-dialog.cols.list");
+    win32_element_assert(listbox);
+
+    textbox = win32_identifier_get_str("prefs-dialog.cols.title");
+    win32_element_assert(textbox);
+
+    menulist = win32_identifier_get_str("prefs-dialog.cols.format");
+    win32_element_assert(menulist);
+
+    cfmt = g_malloc(sizeof(fmt_data));
+    cfmt->title = g_strdup(title);
+    cfmt->fmt = g_strdup(col_format_to_string(0));
+    prefs.col_list = g_list_append(prefs.col_list, cfmt);
+
+    row = win32_listbox_add_item(listbox, -1, NULL, "");
+    win32_listbox_add_cell(listbox, NULL, "");
+    win32_listbox_set_row_data(listbox, row, cfmt);
+    win32_listbox_set_selected(listbox, row);
+
+    win32_textbox_set_text(textbox, cfmt->title);
+    win32_menulist_set_selection(menulist, 0);
+}
+
+/* Command sent by element type <button>, id "prefs-dialog.cols.delete" */
+void prefs_dialog_delete_column (win32_element_t *button) {
+    win32_element_t *listbox;
+    int              row;
+    fmt_data        *cfmt;
+
+    listbox = win32_identifier_get_str("prefs-dialog.cols.list");
+    win32_element_assert(listbox);
+
+    win32_element_assert(button);
+
+    row = win32_listbox_get_selected(listbox);
+    if (row < 0  || row >= win32_listbox_get_row_count(listbox)) {
+	return;
+    }
+    cfmt = (fmt_data *) win32_listbox_get_row_data(listbox, row);
+
+    prefs.col_list = g_list_remove(prefs.col_list, cfmt);
+    g_free(cfmt->title);
+    g_free(cfmt->fmt);
+    g_free(cfmt);
+    win32_listbox_delete_item(listbox, row);
+}
+
+/* Command sent by element type <button>, id "prefs-dialog.cols.up" */
+/* Command sent by element type <button>, id "prefs-dialog.cols.down" */
+void prefs_dialog_move_column (win32_element_t *button) {
+    win32_element_t *listbox, *textbox, *menulist;
+    int              row, inc = 1;
+    fmt_data        *cfmt;
+
+    listbox = win32_identifier_get_str("prefs-dialog.cols.list");
+    win32_element_assert(listbox);
+
+    textbox = win32_identifier_get_str("prefs-dialog.cols.title");
+    win32_element_assert(textbox);
+
+    menulist = win32_identifier_get_str("prefs-dialog.cols.format");
+    win32_element_assert(menulist);
+
+    win32_element_assert(button);
+    if (button->id && strcmp(button->id, "prefs-dialog.cols.up") == 0) {
+	inc = -1;
+    }
+
+    row = win32_listbox_get_selected(listbox);
+    if (row < 0 || row >= win32_listbox_get_row_count(listbox)) {
+	return;
+    }
+    if (row < 1 && inc == -1) {
+	return;
+    }
+    if (row >= win32_listbox_get_row_count(listbox) - 1 && inc == 1) {
+	return;
+    }
+    cfmt = (fmt_data *) win32_listbox_get_row_data(listbox, row);
+
+    prefs.col_list = g_list_remove(prefs.col_list, cfmt);
+    prefs.col_list = g_list_insert(prefs.col_list, cfmt, row + inc);
+    win32_listbox_delete_item(listbox, row);
+    row += inc;
+    win32_listbox_add_item(listbox, row, NULL, "");
+    win32_listbox_add_cell(listbox, NULL, "");
+    win32_listbox_set_row_data(listbox, row, cfmt);
+    win32_listbox_set_selected(listbox, row);
+
+    win32_textbox_set_text(textbox, cfmt->title);
+    win32_menulist_set_selection(menulist, 0);
+}
+
+/* Command sent by element type <textbox>, id "prefs-dialog.cols.title" */
+void
+prefs_dialog_set_column_title  (win32_element_t *textbox) {
+    win32_element_t *listbox;
+    gchar           *title;
+    int              row;
+    fmt_data        *cfmt;
+
+    listbox = win32_identifier_get_str("prefs-dialog.cols.list");
+    win32_element_assert(listbox);
+
+    win32_element_assert(textbox);
+
+    row = win32_listbox_get_selected(listbox);
+    if (row < 0 || row >= win32_listbox_get_row_count(listbox)) {
+	return;
+    }
+    cfmt = (fmt_data *) win32_listbox_get_row_data(listbox, row);
+    title = win32_textbox_get_text(textbox);
+
+    win32_listbox_set_text(listbox, row, 0, title);
+    g_free(cfmt->title);
+    cfmt->title = g_strdup(title);
+}
+
+/* Command sent by element type <menulist>, id "prefs-dialog.cols.format" */
+void prefs_dialog_set_column_format  (win32_element_t *menulist) {
+    win32_element_t *listbox;
+    gchar           *format;
+    int              row, sel;
+    fmt_data        *cfmt;
+
+
+    listbox = win32_identifier_get_str("prefs-dialog.cols.list");
+    win32_element_assert(listbox);
+
+    win32_element_assert(menulist);
+
+    row = win32_listbox_get_selected(listbox);
+    if (row < 0 || row >= win32_listbox_get_row_count(listbox)) {
+	return;
+    }
+    cfmt = (fmt_data *) win32_listbox_get_row_data(listbox, row);
+    sel = win32_menulist_get_selection(menulist);
+    g_free(cfmt->fmt);
+    cfmt->fmt = g_strdup(col_format_to_string(sel));
+    format = col_format_desc(sel);
+    win32_listbox_set_text(listbox, row, 1, format);
+}
+
+BOOL CALLBACK
+preferences_dialog_dlg_proc(HWND hw_prefs, UINT msg, WPARAM w_param, LPARAM l_param)
+{
+    win32_element_t *dlg_box;
+
+    switch( msg ) {
+	case WM_INITDIALOG:
+	    preferences_dialog_handle_wm_initdialog(hw_prefs);
+	    dlg_box = (win32_element_t *) GetWindowLong(hw_prefs, GWL_USERDATA);
+	    win32_element_assert (dlg_box);
+	    win32_element_resize(dlg_box, -1, -1);
+	    return 0;
+	    break;
+	case WM_COMMAND:
+	    g_warning("w_param: %04x", LOWORD(w_param));
+	    return 0;
+	    break;
+	case WM_CLOSE:
+	    prefs_dialog_cancel(NULL);
+	    return 1;
+	    break;
+	default:
+	    return 0;
+    }
+    return 0;
+}
+
+/*
+ * Private routines
+ */
+
+static void
+gui_prefs_fetch() {
+    win32_element_t  *cur_el;
+    int               i;
+
+    /* Fetch our menulist values */
+    i = 0;
+    while (gui_ml_map[i].name != NULL) {
+	cur_el = win32_identifier_get_str(gui_ml_map[i].name);
+	win32_element_assert(cur_el);
+	*gui_ml_map[i].val = win32_menulist_get_selection(cur_el);
+	i++;
+    }
+
+    /* Fetch our checkbox values */
+    i = 0;
+    while (gui_cb_map[i].name != NULL) {
+	cur_el = win32_identifier_get_str(gui_cb_map[i].name);
+	win32_element_assert(cur_el);
+	*gui_cb_map[i].val = win32_checkbox_get_state(cur_el);
+	i++;
+    }
+
+    /* Fetch our textbox values */
+    i = 0;
+    while (gui_tb_map[i].name != NULL) {
+	cur_el = win32_identifier_get_str(gui_tb_map[i].name);
+	win32_element_assert(cur_el);
+	if (*gui_tb_map[i].val != NULL) {
+	    g_free(*gui_tb_map[i].val);
+	}
+	*gui_tb_map[i].val = win32_textbox_get_text(cur_el);
+	i++;
+    }
+
+    /* Fetch our spinner values */
+    i = 0;
+    while (gui_sp_map[i].name != NULL) {
+	cur_el = win32_identifier_get_str(gui_sp_map[i].name);
+	win32_element_assert(cur_el);
+	*gui_sp_map[i].val = ethereal_spinner_get_pos(cur_el);
+	i++;
+    }
+
+    /* File open radio buttons / file open style */
+    i = 0;
+    while (gui_fs_radio_vals[i].name != NULL) {
+	cur_el = win32_identifier_get_str(gui_fs_radio_vals[i].name);
+	if (win32_radio_get_state(cur_el)) {
+	    prefs.gui_fileopen_style = gui_fs_radio_vals[i].val;
+	}
+	i++;
+    }
+}
+
+static void
+font_prefs_fetch() {
+    win32_element_t *style_lb, *size_lb;
+    LOGFONT         *lfinfo;
+    int              row, pointsz;
+    HDC              hdc;
+    gchar           *font_style;
+
+    style_lb = win32_identifier_get_str("prefs-dialog.font.lb.style");
+    win32_element_assert(style_lb);
+
+    size_lb = win32_identifier_get_str("prefs-dialog.font.lb.size");
+    win32_element_assert(size_lb);
+
+    row = win32_listbox_get_selected(style_lb);
+    if (row < 0 || row >= win32_listbox_get_row_count(style_lb)) {
+	return;
+    }
+    lfinfo = win32_listbox_get_row_data(style_lb, row);
+    font_style = win32_listbox_get_text(style_lb, row, 0);
+    if (font_style == NULL) {
+	return;
+    }
+
+    row = win32_listbox_get_selected(size_lb);
+    if (row < 0 || row >= win32_listbox_get_row_count(size_lb)) {
+	return;
+    }
+    pointsz = (int) win32_listbox_get_row_data(size_lb, row);
+
+    hdc = GetDC(size_lb->h_wnd);
+    lfinfo->lfHeight = - MulDiv(pointsz, GetDeviceCaps(hdc, LOGPIXELSY), 72);
+    ReleaseDC(size_lb->h_wnd, hdc);
+    old_fixed_font = g_fixed_font;
+    g_fixed_font = CreateFontIndirect(lfinfo);
+
+    g_free(prefs.gui_win32_font_name);
+    g_free(prefs.gui_win32_font_style);
+    prefs.gui_win32_font_name = g_strdup(lfinfo->lfFaceName);
+    prefs.gui_win32_font_style = g_strdup(font_style);
+    prefs.gui_win32_font_size = pointsz;
+}
+
+static void
+column_prefs_fetch() {
+    /* XXX - Column prefs are changed by the new/delete/up/down callbacks,
+     * just as they are in the GTK+ code.  Should they be changed here instead?
+     */
+}
+
+static void
+stream_prefs_fetch() {
+    CopyMemory(&prefs.gui_marked_fg, &tcolors[MFG_IDX], sizeof(color_t));
+    CopyMemory(&prefs.gui_marked_bg, &tcolors[MBG_IDX], sizeof(color_t));
+    CopyMemory(&prefs.st_client_fg,  &tcolors[CFG_IDX], sizeof(color_t));
+    CopyMemory(&prefs.st_client_bg,  &tcolors[CBG_IDX], sizeof(color_t));
+    CopyMemory(&prefs.st_server_fg,  &tcolors[SFG_IDX], sizeof(color_t));
+    CopyMemory(&prefs.st_server_bg,  &tcolors[SBG_IDX], sizeof(color_t));
+}
+
+static void
+capture_prefs_fetch() {
+    win32_element_t *iflist_ml, *cur_el;
+    gchar           *if_text;
+    int              sel_item, i;
+
+    iflist_ml = win32_identifier_get_str("prefs-dialog.capture.iflist");
+    win32_element_assert(iflist_ml);
+
+    /* Fetch the capture device */
+    if (prefs.capture_device != NULL) {
+	g_free(prefs.capture_device);
+	prefs.capture_device = NULL;
+    }
+
+    sel_item = win32_menulist_get_selection(iflist_ml);
+    if_text = win32_menulist_get_string(iflist_ml, sel_item);
+    if (if_text != NULL) {
+	prefs.capture_device = if_text;
+    }
+
+    /* Fetch in our checkbox values */
+    i = 0;
+    while (capture_cb_map[i].name != NULL) {
+	cur_el = win32_identifier_get_str(capture_cb_map[i].name);
+	win32_element_assert(cur_el);
+	*capture_cb_map[i].val = win32_checkbox_get_state(cur_el);
+	i++;
+    }
+    /* ...then invert show_info */
+    tmp_prefs.capture_show_info = ! tmp_prefs.capture_show_info;
+}
+
+static void
+printer_prefs_fetch () {
+    win32_element_t *cur_el;
+    int              i;
+
+    /* File open radio buttons / file open style */
+    i = 0;
+    while (gui_fs_radio_vals[i].name != NULL) {
+	cur_el = win32_identifier_get_str(gui_fs_radio_vals[i].name);
+	if (win32_radio_get_state(cur_el)) {
+	    prefs.gui_fileopen_style = gui_fs_radio_vals[i].val;
+	}
+	i++;
+    }
+
+
+    /* Print format radio buttons */
+    i = 0;
+    while (print_format_radio_vals[i].name != NULL) {
+	cur_el = win32_identifier_get_str(print_format_radio_vals[i].name);
+	if (win32_radio_get_state(cur_el)) {
+	    prefs.pr_format = print_format_radio_vals[i].val;
+	}
+	i++;
+    }
+
+    /* Print destination radio buttons */
+    i = 0;
+    while (print_dest_radio_vals[i].name != NULL) {
+	cur_el = win32_identifier_get_str(print_dest_radio_vals[i].name);
+	if (win32_radio_get_state(cur_el)) {
+	    prefs.pr_dest = print_dest_radio_vals[i].val;
+	}
+	i++;
+    }
+
+    cur_el = win32_identifier_get_str("prefs.pr_file");
+    win32_element_assert(cur_el);
+
+    if (prefs.pr_file != NULL) {
+	g_free(prefs.pr_file);
+	prefs.pr_file = NULL;
+    }
+    prefs.pr_file = g_strdup(win32_textbox_get_text(cur_el));
+}
+
+static void
+nameres_prefs_fetch() {
+    win32_element_t *cur_el;
+
+    prefs.name_resolve = RESOLV_NONE;
+    /* Fetch our checkbox values */
+    cur_el = win32_identifier_get_str("prefs.name_resolve_mac");
+    win32_element_assert(cur_el);
+    if (win32_checkbox_get_state(cur_el))
+	prefs.name_resolve |= RESOLV_MAC;
+
+    cur_el = win32_identifier_get_str("prefs.name_resolve_network");
+    win32_element_assert(cur_el);
+    if (win32_checkbox_get_state(cur_el))
+	prefs.name_resolve |= RESOLV_NETWORK;
+
+    cur_el = win32_identifier_get_str("prefs.name_resolve_transport");
+    win32_element_assert(cur_el);
+    if (win32_checkbox_get_state(cur_el))
+	prefs.name_resolve |= RESOLV_TRANSPORT;
+
+    cur_el = win32_identifier_get_str("prefs.name_resolve_concurrent");
+    win32_element_assert(cur_el);
+    if (win32_checkbox_get_state(cur_el))
+	prefs.name_resolve |= RESOLV_CONCURRENT;
+
+    /* Fetch the spinbutton value */
+    cur_el = win32_identifier_get_str("prefs.name_resolve_concurrency");
+    win32_element_assert(cur_el);
+    prefs.name_resolve_concurrency = ethereal_spinner_get_pos(cur_el);
+}
+
+gint
+fetch_preference_radio_buttons_val(GSList *rb_group, const enum_val_t *enumvals) {
+    win32_element_t  *radio;
+    const enum_val_t *enum_valp;
+    GSList           *rb_entry = rb_group;
+
+    for (enum_valp = enumvals; enum_valp->name != NULL; enum_valp++) {
+	radio = (win32_element_t *) rb_entry->data;
+	win32_element_assert(radio);
+	if (win32_radio_get_state(radio)) {
+	    break;
+	}
+	rb_entry = g_slist_next(rb_entry);
+    }
+
+    return enum_valp->value;
+}
+
+static guint
+pref_fetch(pref_t *pref, gpointer user_data)
+{
+    win32_element_t *cur_el = (win32_element_t *) pref->control;
+    gchar *str_val;
+    char *p;
+    guint uval;
+    gboolean bval;
+    gint enumval, i;
+    gboolean *pref_changed_p = user_data;
+
+    /* Fetch the value of the preference, and set the appropriate variable
+     to it. */
+    switch (pref->type) {
+
+	case PREF_UINT:
+	    win32_element_assert(cur_el);
+	    str_val = win32_textbox_get_text(cur_el);
+	    uval = strtoul(str_val, &p, pref->info.base);
+#if 0
+	    if (p == value || *p != '\0')
+		return PREFS_SET_SYNTAX_ERR;      /* number was bad */
+#endif
+	    if (*pref->varp.uint != uval) {
+	      *pref_changed_p = TRUE;
+	      *pref->varp.uint = uval;
+	    }
+	    g_free(str_val);
+	    break;
+
+	case PREF_BOOL:
+	    win32_element_assert(cur_el);
+	    bval = win32_checkbox_get_state(cur_el);
+	    if (*pref->varp.boolp != bval) {
+		*pref_changed_p = TRUE;
+		*pref->varp.boolp = bval;
+	    }
+	    break;
+
+	case PREF_ENUM:
+	    if (pref->info.enum_info.radio_buttons) {
+		enumval = fetch_preference_radio_buttons_val((GSList *) pref->control,
+		    pref->info.enum_info.enumvals);
+	    } else {
+		win32_element_assert(cur_el);
+		i = win32_menulist_get_selection(cur_el);
+		enumval = pref->info.enum_info.enumvals[i].value;
+	    }
+
+	    if (*pref->varp.enump != enumval) {
+		*pref_changed_p = TRUE;
+		*pref->varp.enump = enumval;
+	    }
+	    break;
+
+	case PREF_STRING:
+	    win32_element_assert(cur_el);
+	    str_val = win32_textbox_get_text(cur_el);
+	    if (strcmp(*pref->varp.string, str_val) != 0) {
+		*pref_changed_p = TRUE;
+		g_free(*pref->varp.string);
+		*pref->varp.string = str_val;
+	    }
+	    break;
+
+	case PREF_OBSOLETE:
+	    g_assert_not_reached();
+	    break;
+    }
+    return 0;
+}
+
+static void
+module_prefs_fetch(module_t *module, gpointer user_data) {
+    gboolean *must_redissect_p = user_data;
+
+    /* For all preferences in this module, fetch its value from this
+     module's notebook page.  Find out whether any of them changed. */
+    module->prefs_changed = FALSE;        /* assume none of them changed */
+    prefs_pref_foreach(module, pref_fetch, &module->prefs_changed);
+
+    /* If any of them changed, indicate that we must redissect and refilter
+     the current capture (if we have one), as the preference change
+     could cause packets to be dissected differently. */
+    if (module->prefs_changed)
+	*must_redissect_p = TRUE;
+}
+
+/* fetch all pref values from all pages */
+static void
+prefs_main_fetch_all(gboolean *must_redissect)
+{
+    /* Fetch the preferences (i.e., make sure all the values set in all of
+       the preferences panes have been copied to "prefs" and the registered
+       preferences). */
+    gui_prefs_fetch();
+//    layout_prefs_fetch();
+    column_prefs_fetch();
+    font_prefs_fetch();
+    stream_prefs_fetch();
+
+#ifdef HAVE_LIBPCAP
+    /* Is WPcap loaded? */
+    if (has_wpcap) {
+	capture_prefs_fetch();
+    }
+#endif /* HAVE_LIBPCAP */
+    printer_prefs_fetch();
+    nameres_prefs_fetch();
+
+    prefs_modules_foreach(module_prefs_fetch, must_redissect);
+
+    copy_prefs(&prefs, &tmp_prefs);
+}
+
+static void
+gui_prefs_apply() {
+
+    /* user immediately wants to see a console */
+    if (prefs.gui_console_open == console_open_always) {
+//        create_console();
+    }
+
+    if (font_changed) {
+	font_apply();
+    }
+
+//    redraw_hex_dump_all();
+
+    /* Redraw the help window(s). */
+//    supported_redraw();
+//    help_redraw();
+
+    /* XXX: redraw the toolbar only, if style changed */
+//    toolbar_redraw_all();
+
+//    set_scrollbar_placement_all();
+//    set_plist_sel_browse(prefs.gui_plist_sel_browse);
+//    set_ptree_sel_browse_all(prefs.gui_ptree_sel_browse);
+//    set_tree_styles_all();
+//    main_widgets_rearrange();
+
+}
+
+static void
+column_prefs_apply() {
+}
+
+void
+stream_prefs_apply()
+{
+//    follow_redraw_all();
+
+//    update_marked_frames();
+}
+
+static void
+capture_prefs_apply() {
+}
+
+static void
+printer_prefs_apply() {
+}
+
+static void
+nameres_prefs_apply()
+{
+    /*
+     * XXX - force a regeneration of the protocol list if this has
+     * changed?
+     */
+    g_resolv_flags = prefs.name_resolve;
+//    menu_name_resolution_changed();
+}
+
+/* apply all pref values to the real world */
+static void
+prefs_main_apply_all()
+{
+    /* Now apply those preferences. */
+    gui_prefs_apply();
+//  layout_prefs_apply();
+  column_prefs_apply();
+  stream_prefs_apply();
+
+#ifdef HAVE_LIBPCAP
+  /* Is WPcap loaded? */
+    if (has_wpcap) {
+	capture_prefs_apply();
+    }
+#endif /* HAVE_LIBPCAP */
+    printer_prefs_apply();
+    nameres_prefs_apply();
+
+    prefs_apply_all();
+}
+
+static void
+gui_prefs_init(win32_element_t *prefs_dlg) {
+    win32_element_t  *cur_el;
+    int               i;
+
+    /* Fill in our menulist values */
+    i = 0;
+    while (gui_ml_map[i].name != NULL) {
+	cur_el = win32_identifier_get_str(gui_ml_map[i].name);
+	win32_element_assert(cur_el);
+	win32_menulist_set_selection(cur_el, *gui_ml_map[i].val);
+	i++;
+    }
+
+    /* Fill in our checkbox values */
+    i = 0;
+    while (gui_cb_map[i].name != NULL) {
+	cur_el = win32_identifier_get_str(gui_cb_map[i].name);
+	win32_element_assert(cur_el);
+	win32_checkbox_set_state(cur_el, *gui_cb_map[i].val);
+	i++;
+    }
+
+    /* Fill in our textbox values */
+    i = 0;
+    while (gui_tb_map[i].name != NULL) {
+	cur_el = win32_identifier_get_str(gui_tb_map[i].name);
+	win32_element_assert(cur_el);
+	if (*gui_tb_map[i].val != NULL) {
+	    win32_textbox_set_text(cur_el, *gui_tb_map[i].val);
+	}
+	i++;
+    }
+
+    /* Fill in our spinner values */
+    i = 0;
+    while (gui_sp_map[i].name != NULL) {
+	cur_el = win32_identifier_get_str(gui_sp_map[i].name);
+	win32_element_assert(cur_el);
+	ethereal_spinner_set_range(cur_el, gui_sp_map[i].low, gui_sp_map[i].high);
+	ethereal_spinner_set_pos(cur_el, *gui_sp_map[i].val);
+	i++;
+    }
+
+    /* File open radio buttons */
+    i = 0;
+    while (gui_fs_radio_vals[i].name != NULL) {
+	cur_el = win32_identifier_get_str(gui_fs_radio_vals[i].name);
+	if (gui_fs_radio_vals[i].val == prefs.gui_fileopen_style) {
+	    win32_radio_set_state(cur_el, TRUE);
+	    prefs_fileopen_style(cur_el);
+	} else {
+	    win32_radio_set_state(cur_el, FALSE);
+	}
+	i++;
+    }
+}
+
+static void
+column_prefs_init(win32_element_t *prefs_dlg) {
+    win32_element_t  *col_lb, *col_ml;
+    GList            *clp = NULL;
+    fmt_data         *cfmt;
+    gint             row, i;
+    gchar            *title, *descr;
+
+    col_lb = win32_identifier_get_str("prefs-dialog.cols.list");
+    win32_element_assert(col_lb);
+
+    clp = g_list_first(prefs.col_list);
+    while (clp) {
+	cfmt = (fmt_data *) clp->data;
+	title = cfmt->title;
+	descr = col_format_desc(get_column_format_from_str(cfmt->fmt));
+	row = win32_listbox_add_item(col_lb, -1, NULL, title);
+	win32_listbox_add_cell(col_lb, NULL, descr);
+	win32_listbox_set_row_data(col_lb, row, cfmt);
+
+	clp = clp->next;
+    }
+
+    col_ml = win32_identifier_get_str("prefs-dialog.cols.format");
+    win32_element_assert(col_ml);
+
+    for (i = 0; i < NUM_COL_FMTS; i++) {
+	win32_menulist_add(col_ml, col_format_desc(i), FALSE);
+    }
+}
+
+static int CALLBACK
+font_name_enum_proc(ENUMLOGFONTEX *lpelfe, NEWTEXTMETRICEX *lpntme,
+    int font_type, LPARAM l_param) {
+    win32_element_t *name_lb = (win32_element_t *) l_param;
+
+    if (name_lb == NULL) {
+	return 1;
+    }
+    /*
+     * Under Windows XP (and possibly other versions of Windows), Unicode
+     * fonts appear twice -- once with '@' at the beginning of lfFaceName
+     * and once with the bare name.
+     */
+    if (!isalnum(lpelfe->elfLogFont.lfFaceName[0])) {
+	return 1;
+    }
+
+    /* Filter out duplicates */
+    if (win32_listbox_find_text(name_lb, 0, lpelfe->elfLogFont.lfFaceName) >= 0) {
+	return 1;
+    }
+
+    /* Fixed pitched only.  XXX - Is this too restrictive? */
+    if (lpelfe->elfLogFont.lfPitchAndFamily & FIXED_PITCH) {
+	win32_listbox_add_item(name_lb, -1, NULL, lpelfe->elfFullName);
+    }
+
+    return 1;
+}
+
+static int CALLBACK
+font_style_enum_proc(ENUMLOGFONTEX *lpelfe, NEWTEXTMETRICEX *lpntme,
+	int font_type, LPARAM l_param) {
+    win32_element_t *style_lb = (win32_element_t *) l_param;
+    LOGFONT         *lfdata;
+    int              row;
+
+    if (font_type & TRUETYPE_FONTTYPE) {
+	row = win32_listbox_add_item(style_lb, -1, NULL, lpelfe->elfStyle);
+	lfdata = g_memdup(&(lpelfe->elfLogFont), sizeof(LOGFONT));
+	win32_listbox_set_row_data(style_lb, row, lfdata);
+    } else if (win32_listbox_get_row_count(style_lb) == 0) {
+	row = win32_listbox_add_item(style_lb, -1, NULL, "Regular");
+	lfdata = g_memdup(&(lpelfe->elfLogFont), sizeof(LOGFONT));
+	lfdata->lfWeight = FW_REGULAR;
+	lfdata->lfItalic = FALSE;
+	win32_listbox_set_row_data(style_lb, row, lfdata);
+
+	row = win32_listbox_add_item(style_lb, -1, NULL, "Bold");
+	lfdata = g_memdup(&(lpelfe->elfLogFont), sizeof(LOGFONT));
+	lfdata->lfWeight = FW_BOLD;
+	lfdata->lfItalic = FALSE;
+	win32_listbox_set_row_data(style_lb, row, lfdata);
+
+	row = win32_listbox_add_item(style_lb, -1, NULL, "Bold Italic");
+	lfdata = g_memdup(&(lpelfe->elfLogFont), sizeof(LOGFONT));
+	lfdata->lfWeight = FW_BOLD;
+	lfdata->lfItalic = TRUE;
+	win32_listbox_set_row_data(style_lb, row, lfdata);
+
+	row = win32_listbox_add_item(style_lb, -1, NULL, "Italic");
+	lfdata = g_memdup(&(lpelfe->elfLogFont), sizeof(LOGFONT));
+	lfdata->lfWeight = FW_REGULAR;
+	lfdata->lfItalic = TRUE;
+	win32_listbox_set_row_data(style_lb, row, lfdata);
+    }
+
+    return 1;
+}
+
+static int CALLBACK
+font_size_enum_proc(ENUMLOGFONTEX *lpelfe, NEWTEXTMETRICEX *lpntme,
+	int font_type, LPARAM l_param) {
+    win32_element_t *size_lb = (win32_element_t *) l_param;
+    TEXTMETRIC      *lptm = (TEXTMETRIC *) lpntme;
+    int              i, row, rawsz, pointsz;
+    HDC              hdc;
+
+    static int       tt_size[] = { 8, 9, 10, 11, 12, 14, 16, 18, 20,
+	22, 24, 26, 28, 36 };
+    gchar size_str[LF_FACESIZE];
+
+    if (font_type & TRUETYPE_FONTTYPE) {
+	if (win32_listbox_get_row_count(size_lb) == 0) {
+	    for (i = 0; i < sizeof(tt_size) / sizeof(int); i++) {
+		g_snprintf(size_str, LF_FACESIZE, "%d", tt_size[i]);
+		row = win32_listbox_add_item(size_lb, -1, NULL, size_str);
+		win32_listbox_set_row_data(size_lb, row, (gpointer) tt_size[i]);
+	    }
+	}
+    } else {
+	hdc = GetDC(size_lb->h_wnd);
+	rawsz = lptm->tmHeight - lptm->tmInternalLeading;
+	pointsz = MulDiv(rawsz, 72, GetDeviceCaps(hdc, LOGPIXELSY));
+	ReleaseDC(size_lb->h_wnd, hdc);
+	g_snprintf(size_str, LF_FACESIZE, "%d", pointsz);
+	row = win32_listbox_add_item(size_lb, -1, NULL, size_str);
+	win32_listbox_set_row_data(size_lb, row, (gpointer) pointsz);
+    }
+
+    return 1;
+}
+
+static void
+font_prefs_init(win32_element_t *prefs_dlg) {
+    win32_element_t *name_lb, *style_lb, *size_lb;
+    LOGFONT          lfinfo;
+    HDC              hdc;
+    gchar            font_size[LF_FACESIZE];
+
+    name_lb = win32_identifier_get_str("prefs-dialog.font.lb.name");
+    win32_element_assert(name_lb);
+
+    style_lb = win32_identifier_get_str("prefs-dialog.font.lb.style");
+    win32_element_assert(style_lb);
+
+    size_lb = win32_identifier_get_str("prefs-dialog.font.lb.size");
+    win32_element_assert(size_lb);
+
+    ZeroMemory(&lfinfo, sizeof(lfinfo));
+    lfinfo.lfCharSet        = ANSI_CHARSET;  /* XXX - Do we need to be this restrictive? */
+    lfinfo.lfFaceName[0]    = '\0';
+    lfinfo.lfPitchAndFamily = FIXED_PITCH | FF_DONTCARE;
+
+    hdc = GetDC(prefs_dlg->h_wnd);
+    EnumFontFamiliesEx(hdc, &lfinfo, (FONTENUMPROC) font_name_enum_proc,
+	(LONG) name_lb, 0);
+    ReleaseDC(prefs_dlg->h_wnd, hdc);
+
+    g_snprintf(font_size, LF_FACESIZE, "%d", prefs.gui_win32_font_size);
+    win32_listbox_set_selected(name_lb, win32_listbox_find_text(name_lb, 0, prefs.gui_win32_font_name));
+    win32_listbox_set_selected(style_lb, win32_listbox_find_text(style_lb, 0, prefs.gui_win32_font_style));
+    win32_listbox_set_selected(size_lb, win32_listbox_find_text(size_lb, 0, font_size));
+
+    font_changed = FALSE;
+}
+
+static void
+show_font_selection() {
+    win32_element_t *style_lb, *size_lb, *sample_tb;
+    LOGFONT         *lfinfo;
+    int              row, pointsz;
+    HDC              hdc;
+    HFONT            hfont, old_font;
+
+    style_lb = win32_identifier_get_str("prefs-dialog.font.lb.style");
+    win32_element_assert(style_lb);
+
+    size_lb = win32_identifier_get_str("prefs-dialog.font.lb.size");
+    win32_element_assert(size_lb);
+
+    sample_tb = win32_identifier_get_str("prefs-dialog.font.tb.sample");
+    win32_element_assert(sample_tb);
+
+    row = win32_listbox_get_selected(style_lb);
+    if (row < 0 || row >= win32_listbox_get_row_count(style_lb)) {
+	return;
+    }
+
+    lfinfo = win32_listbox_get_row_data(style_lb, row);
+
+    row = win32_listbox_get_selected(size_lb);
+    if (row < 0 || row >= win32_listbox_get_row_count(size_lb)) {
+	return;
+    }
+
+    pointsz = (int) win32_listbox_get_row_data(size_lb, row);
+
+    old_font = (HFONT) SendMessage(sample_tb->h_wnd, WM_GETFONT, 0, 0);
+    hdc = GetDC(size_lb->h_wnd);
+    lfinfo->lfHeight = - MulDiv(pointsz, GetDeviceCaps(hdc, LOGPIXELSY), 72);
+    hfont = CreateFontIndirect(lfinfo);
+    SelectObject(hdc, hfont);
+    ReleaseDC(size_lb->h_wnd, hdc);
+
+    SendMessage(sample_tb->h_wnd, WM_SETFONT, (WPARAM) hfont, (LPARAM) TRUE);
+    DeleteObject(old_font);
+}
+
+static void
+set_sample_colors() {
+    win32_element_t *sample_tb;
+    CHARFORMAT2      char_fmt;
+
+    sample_tb = win32_identifier_get_str("prefs-dialog.color.sample");
+    win32_element_assert(sample_tb);
+
+    ZeroMemory(&char_fmt, sizeof(char_fmt));
+    char_fmt.cbSize = sizeof(char_fmt);
+    char_fmt.dwMask = CFM_COLOR | CFM_BACKCOLOR;
+
+    win32_textbox_set_text(sample_tb, "");
+
+    char_fmt.crTextColor = COLOR_T2COLORREF(&tcolors[MFG_IDX]);
+    char_fmt.crBackColor = COLOR_T2COLORREF(&tcolors[MBG_IDX]);
+    win32_textbox_insert(sample_tb, SAMPLE_MARKED_TEXT, -1,
+	(CHARFORMAT *) &char_fmt);
+
+    char_fmt.crTextColor = COLOR_T2COLORREF(&tcolors[CFG_IDX]);
+    char_fmt.crBackColor = COLOR_T2COLORREF(&tcolors[CBG_IDX]);
+    win32_textbox_insert(sample_tb, SAMPLE_CLIENT_TEXT, -1,
+	(CHARFORMAT *) &char_fmt);
+
+    char_fmt.crTextColor = COLOR_T2COLORREF(&tcolors[SFG_IDX]);
+    char_fmt.crBackColor = COLOR_T2COLORREF(&tcolors[SBG_IDX]);
+    win32_textbox_insert(sample_tb, SAMPLE_SERVER_TEXT, -1,
+	(CHARFORMAT *) &char_fmt);
+}
+
+static void
+color_prefs_init(win32_element_t *prefs_dlg) {
+    win32_element_t *color_ml;
+
+    color_ml = win32_identifier_get_str("prefs-dialog.color.select");
+    win32_element_assert(color_ml);
+
+    win32_menulist_set_selection(color_ml, 0);
+
+    CopyMemory(&tcolors[MFG_IDX], &prefs.gui_marked_fg, sizeof(color_t));
+    CopyMemory(&tcolors[MBG_IDX], &prefs.gui_marked_bg, sizeof(color_t));
+    CopyMemory(&tcolors[CFG_IDX], &prefs.st_client_fg,  sizeof(color_t));
+    CopyMemory(&tcolors[CBG_IDX], &prefs.st_client_bg,  sizeof(color_t));
+    CopyMemory(&tcolors[SFG_IDX], &prefs.st_server_fg,  sizeof(color_t));
+    CopyMemory(&tcolors[SBG_IDX], &prefs.st_server_bg,  sizeof(color_t));
+
+    set_sample_colors();
+}
+
+static void
+capture_prefs_init(win32_element_t *prefs_dlg) {
+    win32_element_t *iflist_ml, *cur_el;
+    GList           *if_list, *combo_list, *cl_item;
+    int              err, idx = 0, i;
+    char             err_str[PCAP_ERRBUF_SIZE];
+
+    iflist_ml = win32_identifier_get_str("prefs-dialog.capture.iflist");
+    win32_element_assert(iflist_ml);
+
+    if_list = get_interface_list(&err, err_str);
+    combo_list = build_capture_combo_list(if_list, FALSE);
+    free_interface_list(if_list);
+
+    cl_item = g_list_first(combo_list);
+    while(cl_item != NULL) {
+	win32_menulist_add(iflist_ml, cl_item->data, FALSE);
+	cl_item = g_list_next(cl_item);
+    }
+    if (combo_list != NULL) {
+	free_capture_combo_list(combo_list);
+    }
+    if (prefs.capture_device != NULL) {
+	idx = win32_menulist_find_string(iflist_ml, prefs.capture_device);
+	if (idx < 0) {
+	    idx = 0;
+	}
+    }
+    win32_menulist_set_selection(iflist_ml, idx);
+    /* XXX - This is a hack to get around the super-long interface names */
+    iflist_ml->minwidth = 50;
+
+    /* Fill in our checkbox values */
+    i = 0;
+    /* First, invert show_info */
+    tmp_prefs.capture_show_info = ! tmp_prefs.capture_show_info;
+    while (capture_cb_map[i].name != NULL) {
+	cur_el = win32_identifier_get_str(capture_cb_map[i].name);
+	win32_element_assert(cur_el);
+	win32_checkbox_set_state(cur_el, *capture_cb_map[i].val);
+	i++;
+    }
+}
+
+static void
+printer_prefs_init(win32_element_t *prefs_dlg) {
+    win32_element_t *cur_el;
+    int              i;
+
+    /* Print format radio buttons */
+    i = 0;
+    while (print_format_radio_vals[i].name != NULL) {
+	cur_el = win32_identifier_get_str(print_format_radio_vals[i].name);
+	if (print_format_radio_vals[i].val == prefs.pr_format) {
+	    win32_radio_set_state(cur_el, TRUE);
+	} else {
+	    win32_radio_set_state(cur_el, FALSE);
+	}
+	i++;
+    }
+
+    /* Print destination radio buttons */
+    i = 0;
+    while (print_dest_radio_vals[i].name != NULL) {
+	cur_el = win32_identifier_get_str(print_dest_radio_vals[i].name);
+	if (print_dest_radio_vals[i].val == prefs.pr_dest) {
+	    win32_radio_set_state(cur_el, TRUE);
+	} else {
+	    win32_radio_set_state(cur_el, FALSE);
+	}
+	i++;
+    }
+
+    cur_el = win32_identifier_get_str("prefs.pr_file");
+    win32_element_assert(cur_el);
+
+    if (prefs.pr_file != NULL) {
+	win32_textbox_set_text(cur_el, prefs.pr_file);
+    }
+}
+
+static void
+nameres_prefs_init(win32_element_t *prefs_dlg) {
+    win32_element_t *cur_el;
+
+    /* Fill in our checkbox values */
+    cur_el = win32_identifier_get_str("prefs.name_resolve_mac");
+    win32_element_assert(cur_el);
+    win32_checkbox_set_state(cur_el, prefs.name_resolve & RESOLV_MAC);
+
+    cur_el = win32_identifier_get_str("prefs.name_resolve_network");
+    win32_element_assert(cur_el);
+    win32_checkbox_set_state(cur_el, prefs.name_resolve & RESOLV_NETWORK);
+
+    cur_el = win32_identifier_get_str("prefs.name_resolve_transport");
+    win32_element_assert(cur_el);
+    win32_checkbox_set_state(cur_el, prefs.name_resolve & RESOLV_TRANSPORT);
+
+    cur_el = win32_identifier_get_str("prefs.name_resolve_concurrent");
+    win32_element_assert(cur_el);
+    win32_checkbox_set_state(cur_el, prefs.name_resolve & RESOLV_CONCURRENT);
+
+    cur_el = win32_identifier_get_str("prefs.name_resolve_concurrency");
+    win32_element_assert(cur_el);
+    ethereal_spinner_set_range(cur_el, 0, NAMRES_MAX_CONCURRENCY);
+    ethereal_spinner_set_pos(cur_el, prefs.name_resolve_concurrency);
+}
+
+/* XXX - Most of the protocol (module) prefs code was taken from
+ * gtk/prefs_dlg.c
+ */
+
+win32_element_t *
+create_preference_entry(win32_element_t *grid, const gchar *label_text,
+	const gchar *tooltip_text, char *value) {
+    win32_element_t *label, *entry;
+
+    win32_element_assert(grid);
+
+    win32_grid_add_row(grid, 0.0, 0);
+
+    label = win32_description_new(grid->h_wnd, label_text);
+    label->text_align = CSS_TEXT_ALIGN_RIGHT;
+    win32_description_apply_styles(label);
+    win32_box_add(grid, label, -1);
+
+    entry = win32_textbox_new(grid->h_wnd, FALSE);
+    win32_box_add(grid, entry, -1);
+    win32_textbox_set_text(entry, value);
+
+    return entry;
+}
+
+win32_element_t *
+create_preference_check_button(win32_element_t *grid, const gchar *label_text,
+	const gchar *tooltip_text, gboolean active) {
+    win32_element_t *label, *checkbox;
+
+    win32_element_assert(grid);
+
+    win32_grid_add_row(grid, 0.0, 0);
+
+    label = win32_description_new(grid->h_wnd, label_text);
+    label->text_align = CSS_TEXT_ALIGN_RIGHT;
+    win32_description_apply_styles(label);
+    win32_box_add(grid, label, -1);
+
+    checkbox = win32_checkbox_new(grid->h_wnd, "");
+    win32_box_add(grid, checkbox, -1);
+    win32_checkbox_set_state(checkbox, active);
+
+    return checkbox;
+}
+
+GSList *
+create_preference_radio_buttons(win32_element_t *grid, const gchar *label_text,
+	const gchar *tooltip_text, const enum_val_t *enumvals, gint current_val) {
+    win32_element_t  *label, *hbox, *radio;
+    const enum_val_t *enum_valp;
+    gboolean          start_group = TRUE;
+    GSList           *rb_group = NULL;
+
+    win32_element_assert(grid);
+
+    win32_grid_add_row(grid, 0.0, 0);
+
+    label = win32_description_new(grid->h_wnd, label_text);
+    label->text_align = CSS_TEXT_ALIGN_RIGHT;
+    win32_description_apply_styles(label);
+    win32_box_add(grid, label, -1);
+
+    hbox = win32_hbox_new(NULL, grid->h_wnd);
+    win32_box_add(grid, hbox, -1);
+
+    for (enum_valp = enumvals; enum_valp->name != NULL; enum_valp++) {
+	radio = win32_radio_new(grid->h_wnd, enum_valp->description, start_group);
+	win32_box_add(hbox, radio, -1);
+	if (enum_valp->value == current_val) {
+	    win32_radio_set_state(radio, TRUE);
+	}
+	start_group = FALSE;
+	rb_group = g_slist_append(rb_group, radio);
+    }
+
+    return rb_group;
+}
+
+win32_element_t *
+create_preference_option_menu(win32_element_t *grid, const gchar *label_text,
+	const gchar *tooltip_text, const enum_val_t *enumvals, gint current_val) {
+    win32_element_t  *label, *menulist;
+    const enum_val_t *enum_valp;
+    gboolean          selected;
+
+    win32_element_assert(grid);
+
+    win32_grid_add_row(grid, 0.0, 0);
+
+    label = win32_description_new(grid->h_wnd, label_text);
+    label->text_align = CSS_TEXT_ALIGN_RIGHT;
+    win32_description_apply_styles(label);
+    win32_box_add(grid, label, -1);
+
+    menulist = win32_menulist_new(grid->h_wnd);
+    win32_box_add(grid, menulist, -1);
+
+    for (enum_valp = enumvals; enum_valp->name != NULL; enum_valp++) {
+	selected = FALSE;
+	if (enum_valp->value == current_val) {
+	    selected = TRUE;
+	}
+	win32_menulist_add(menulist, enum_valp->description, selected);
+    }
+    return menulist;
+}
+
+#define UINT_STRLEN (10 + 1)
+static guint
+pref_show(pref_t *pref, gpointer user_data) {
+    win32_element_t *grid = user_data;
+    GString         *label_string = g_string_new(pref->title);
+    char             uint_str[UINT_STRLEN];
+
+    win32_element_assert(grid);
+
+    g_string_append(label_string, ":");
+
+    switch (pref->type) {
+	case PREF_UINT:
+	    pref->saved_val.uint = *pref->varp.uint;
+
+	    /* XXX - there are no uint spinbuttons, so we can't use a spinbutton.
+	       Even more annoyingly, even if there were, GLib doesn't define
+	       G_MAXUINT - but I think ANSI C may define UINT_MAX, so we could
+	       use that. */
+	    switch (pref->info.base) {
+
+		case 10:
+		    g_snprintf(uint_str, UINT_STRLEN, "%u", pref->saved_val.uint);
+		    break;
+
+		case 8:
+		    g_snprintf(uint_str, UINT_STRLEN, "%o", pref->saved_val.uint);
+		    break;
+
+		case 16:
+		    g_snprintf(uint_str, UINT_STRLEN, "%x", pref->saved_val.uint);
+		    break;
+	    }
+	    pref->control = create_preference_entry(grid, label_string->str,
+		    pref->description, uint_str);
+	    break;
+
+	case PREF_BOOL:
+	    pref->saved_val.boolval = *pref->varp.boolp;
+	    pref->control = create_preference_check_button(grid, label_string->str,
+		    pref->description, pref->saved_val.boolval);
+	    break;
+
+	case PREF_ENUM:
+	    pref->saved_val.enumval = *pref->varp.enump;
+	    if (pref->info.enum_info.radio_buttons) {
+		/* Show it as radio buttons. */
+		pref->control = create_preference_radio_buttons(grid,
+		    label_string->str, pref->description,
+		    pref->info.enum_info.enumvals,
+		    pref->saved_val.enumval);
+	    } else {
+		/* Show it as an option menu. */
+		pref->control = create_preference_option_menu(grid,
+		    label_string->str, pref->description,
+		    pref->info.enum_info.enumvals,
+		    pref->saved_val.enumval);
+	    }
+	    break;
+
+	case PREF_STRING:
+	    if (pref->saved_val.string != NULL)
+		g_free(pref->saved_val.string);
+	    pref->saved_val.string = g_strdup(*pref->varp.string);
+	    pref->control = create_preference_entry(grid, label_string->str,
+		pref->description, pref->saved_val.string);
+	    break;
+
+	case PREF_OBSOLETE:
+	    g_assert_not_reached();
+	    break;
+    }
+    g_string_free(label_string, TRUE);
+    return 0;
+}
+static guint
+pref_exists(pref_t *pref _U_, gpointer user_data _U_) {
+    return 1;
+}
+
+#define MAX_TREE_NODE_NAME_LEN 96
+static void
+module_prefs_show(module_t *module, gpointer user_data) {
+    win32_element_t *groupbox, *grid;
+    module_data_t   *md = user_data;
+    gchar            id[MAX_TREE_NODE_NAME_LEN];
+
+    g_assert(md != NULL);
+
+    /*
+     * Is this module a subtree, with modules underneath it?
+     */
+    if (!module->is_subtree) {
+	/*
+	 * No.
+	 * Does it have any preferences (other than possibly obsolete ones)?
+	 */
+	if (prefs_pref_foreach(module, pref_exists, md) == 0) {
+	    /*
+	     * No.  Don't put the module into the preferences window.
+	     * XXX - we should do the same for subtrees; if a subtree has
+	     * nothing under it that will be displayed, don't put it into
+	     * the window.
+	     */
+	    return;
+	}
+    }
+
+    win32_tree_push(md->tree);
+    g_snprintf(id, MAX_TREE_NODE_NAME_LEN, "prefs-dialog.tree.protocols.%s",
+	module->title);
+    win32_tree_add_row(md->tree, id);
+    win32_tree_add_cell(md->tree, "", module->title);
+
+    if (module->is_subtree) {
+	prefs_module_list_foreach(module->prefs, module_prefs_show, md);
+    } else {
+	/* Create our <groupbox> */
+	g_snprintf(id, MAX_TREE_NODE_NAME_LEN, "prefs-dialog.deck.protocols.%s",
+	    module->title);
+	groupbox = win32_groupbox_new(md->deck->h_wnd);
+	win32_box_add(md->deck, groupbox, -1);
+	win32_element_set_id(groupbox, id);
+	win32_groupbox_set_title(groupbox, module->title);
+
+	/* Create a <grid> with two columns */
+	grid = win32_grid_new(groupbox->h_wnd);
+	win32_box_add(groupbox, grid, -1);
+	win32_grid_add_column(grid, 0.0, 0);
+	win32_grid_add_column(grid, 1.0, 0);
+
+	/* Add items for each of the preferences */
+	prefs_pref_foreach(module, pref_show, grid);
+    }
+
+    win32_tree_pop(md->tree);
+}
+
+static void
+protocol_prefs_init(win32_element_t *prefs_dlg) {
+    module_data_t    md;
+
+    md.tree = win32_identifier_get_str("prefs-dialog.tree");
+    win32_element_assert(md.tree);
+
+    md.deck = win32_identifier_get_str("prefs-dialog.deck");
+    win32_element_assert(md.deck);
+
+    prefs_module_list_foreach(NULL, module_prefs_show, &md);
+}
+
+#define NUM_COL_BUTTONS 3
+static void
+toggle_column_buttons(int cur_sel) {
+    win32_element_t *col_lb, *delete_bt, *up_bt, *down_bt, *title_tb, *format_ml;
+    int              rows;
+    gboolean         ena_delete = FALSE, ena_up = FALSE, ena_down = FALSE;
+    gboolean         ena_title = FALSE, ena_format = FALSE;
+
+    col_lb = win32_identifier_get_str("prefs-dialog.cols.list");
+    win32_element_assert(col_lb);
+
+    delete_bt = win32_identifier_get_str("prefs-dialog.cols.delete");
+    win32_element_assert(delete_bt);
+
+    up_bt = win32_identifier_get_str("prefs-dialog.cols.up");
+    win32_element_assert(up_bt);
+
+    down_bt = win32_identifier_get_str("prefs-dialog.cols.down");
+    win32_element_assert(down_bt);
+
+    title_tb = win32_identifier_get_str("prefs-dialog.cols.title");
+    win32_element_assert(title_tb);
+
+    format_ml = win32_identifier_get_str("prefs-dialog.cols.format");
+    win32_element_assert(format_ml);
+
+    rows = win32_listbox_get_row_count(col_lb);
+
+    if (cur_sel >= 0) {
+	ena_delete = TRUE;
+	ena_title = TRUE;
+	ena_format = TRUE;
+	if (cur_sel > 0) {
+	    ena_up = TRUE;
+	}
+	if (cur_sel < rows - 1) {
+	    ena_down = TRUE;
+	}
+    }
+    win32_element_set_enabled(delete_bt, ena_delete);
+    win32_element_set_enabled(up_bt, ena_up);
+    win32_element_set_enabled(down_bt, ena_down);
+    win32_element_set_enabled(title_tb, ena_title);
+    win32_element_set_enabled(format_ml, ena_format);
+}
+
+static guint
+pref_revert(pref_t *pref, gpointer user_data)
+{
+    gboolean *pref_changed_p = user_data;
+
+    /* Revert the preference to its saved value. */
+    switch (pref->type) {
+
+	case PREF_UINT:
+	    if (*pref->varp.uint != pref->saved_val.uint) {
+		*pref_changed_p = TRUE;
+		*pref->varp.uint = pref->saved_val.uint;
+	    }
+	    break;
+
+	case PREF_BOOL:
+	    if (*pref->varp.boolp != pref->saved_val.boolval) {
+		*pref_changed_p = TRUE;
+		*pref->varp.boolp = pref->saved_val.boolval;
+	    }
+	    break;
+
+	case PREF_ENUM:
+	    if (*pref->varp.enump != pref->saved_val.enumval) {
+		*pref_changed_p = TRUE;
+		*pref->varp.enump = pref->saved_val.enumval;
+	    }
+	    break;
+
+	case PREF_STRING:
+	    if (strcmp(*pref->varp.string, pref->saved_val.string) != 0) {
+		*pref_changed_p = TRUE;
+		g_free(*pref->varp.string);
+		*pref->varp.string = g_strdup(pref->saved_val.string);
+	    }
+	    break;
+
+	case PREF_OBSOLETE:
+	    g_assert_not_reached();
+	    break;
+    }
+    return 0;
+}
+
+static void
+module_prefs_revert(module_t *module, gpointer user_data)
+{
+    gboolean *must_redissect_p = user_data;
+
+    /* For all preferences in this module, revert its value to the value
+       it had when we popped up the Preferences dialog.  Find out whether
+       this changes any of them. */
+    module->prefs_changed = FALSE;        /* assume none of them changed */
+    prefs_pref_foreach(module, pref_revert, &module->prefs_changed);
+
+    /* If any of them changed, indicate that we must redissect and refilter
+       the current capture (if we have one), as the preference change
+       could cause packets to be dissected differently. */
+    if (module->prefs_changed)
+	*must_redissect_p = TRUE;
+}
\ No newline at end of file
diff -x entries -urN ethereal/xulender/win32-c-sdk/prefs-dlg.h ethereal-win32/xulender/win32-c-sdk/prefs-dlg.h
--- ethereal/xulender/win32-c-sdk/prefs-dlg.h	1969-12-31 18:00:00.000000000 -0600
+++ ethereal-win32/xulender/win32-c-sdk/prefs-dlg.h	2004-05-21 12:01:41.000000000 -0500
@@ -0,0 +1,9 @@
+/* prefs-dlg.h */
+
+#ifndef PREFS_DLG_H
+#define PREFS_DLG_H
+
+void prefs_dialog_init(HWND parent);
+
+
+#endif /* prefs-dlg.h */
diff -x entries -urN ethereal/xulender/win32-c-sdk/resource.h ethereal-win32/xulender/win32-c-sdk/resource.h
--- ethereal/xulender/win32-c-sdk/resource.h	1969-12-31 18:00:00.000000000 -0600
+++ ethereal-win32/xulender/win32-c-sdk/resource.h	2004-03-30 12:48:10.000000000 -0600
@@ -0,0 +1,17 @@
+//{{NO_DEPENDENCIES}}
+// Microsoft Developer Studio generated include file.
+// Used by Script2.rc
+//
+#define IDD_DIALOG1                     101
+#define IDC_STATIC                      -1
+
+// Next default values for new objects
+// 
+#ifdef APSTUDIO_INVOKED
+#ifndef APSTUDIO_READONLY_SYMBOLS
+#define _APS_NEXT_RESOURCE_VALUE        102
+#define _APS_NEXT_COMMAND_VALUE         40001
+#define _APS_NEXT_CONTROL_VALUE         1000
+#define _APS_NEXT_SYMED_VALUE           101
+#endif
+#endif
diff -x entries -urN ethereal/xulender/win32-c-sdk/stdelements/win32-box.c ethereal-win32/xulender/win32-c-sdk/stdelements/win32-box.c
--- ethereal/xulender/win32-c-sdk/stdelements/win32-box.c	1969-12-31 18:00:00.000000000 -0600
+++ ethereal-win32/xulender/win32-c-sdk/stdelements/win32-box.c	2004-06-12 21:31:05.000000000 -0500
@@ -0,0 +1,783 @@
+
+/*
+ * Splitter code taken from an example by J Brown at
+ * http://www.catch22.org.uk/.
+ */
+
+#ifdef HAVE_CONFIG_H
+# include "config.h"
+#endif
+
+#include <windows.h>
+
+#include <glib.h>
+
+#include "win32-c-sdk.h"
+
+#include "win32-globals.h"
+
+/*
+ * Box and splitter WndProcs
+ */
+static LRESULT CALLBACK win32_box_wnd_proc(HWND, UINT, WPARAM, LPARAM);
+static LRESULT CALLBACK win32_splitter_wnd_proc(HWND, UINT, WPARAM, LPARAM, win32_box_orient_t);
+static LRESULT CALLBACK win32_splitter_wnd_proc_h(HWND, UINT, WPARAM, LPARAM);
+static LRESULT CALLBACK win32_splitter_wnd_proc_v(HWND, UINT, WPARAM, LPARAM);
+
+/*
+ * Given a box, return its contents' cumulative "flex" value.
+ */
+static gfloat win32_box_flex_total(win32_element_t *box);
+
+/*
+ * Given a box, return its contents' cumulative static width/height.
+ */
+static gint win32_box_static_dim(win32_element_t *box);
+
+/*
+ * Given a box, return its contents' cumulative flexible width/height.
+ */
+gint win32_box_flexible_dim(win32_element_t *box);
+
+
+static LRESULT win32_splitter_lbutton_down(HWND, UINT, WPARAM, LPARAM);
+static LRESULT win32_splitter_lbutton_up(HWND, UINT, WPARAM, LPARAM);
+static LRESULT win32_splitter_mouse_move(HWND, UINT, WPARAM, LPARAM);
+
+#define EWC_BOX_PANE "BoxPane"
+#define EWC_SPLITTER_H "SplitterHorizontal"
+#define EWC_SPLITTER_V "SplitterVertical"
+#define BOX_SPLITTER_GAP 3	/* Splitter size in pixels */
+
+/* Globals */
+/* XXX - These could probably be moved to win32_element_t */
+static int  y_old = -4, y_orig;
+static BOOL splitter_drag_mode = FALSE;
+static win32_element_t *cur_splitter = NULL;
+
+
+/* Box packing routines.  We follow the XUL box packing model.
+ *
+ *     http://www.mozilla.org/projects/xul/xul.html
+ *     http://www.xulplanet.com/references/elemref/ref_XULElement.html
+ */
+
+/*
+ * Box packing rules:
+ *
+ * - By default, horizontal boxes grow left-to-right.  Vertical boxes
+ *   grow top-to-bottom.
+ * - By default, sizing is intrinsic (elements are shrunk to their minimum
+ *   natural size).
+ * - By default, horizontal boxes stretch their children to the same height.
+ *   Likewise for vertical boxes.
+ * - The default flex value is 0.0.
+ * -
+ *
+ */
+
+/*
+ * To do:
+ * - Find a way to tell a control that it's next to a splitter (and that it
+ *   needs an inset 3d border).  This may not be such a big deal for Ethereal.
+ *   The only things we're splitting (so far) are custom controls; we can
+ *   force their insettedness.
+ */
+
+
+win32_element_t *
+win32_box_new(HWND hw_box, HWND hw_parent, win32_box_orient_t orientation) {
+    win32_element_t *box;
+    HINSTANCE        h_instance = (HINSTANCE) GetWindowLong(hw_parent, GWL_HINSTANCE);
+    WNDCLASS         wc;
+
+    box = win32_element_new(hw_box);
+
+    if (box->h_wnd == NULL) {	/* We have to create our own window */
+	g_assert(hw_parent != NULL);
+
+	/* XXX - Should we move this into its own init routine? */
+	if (! GetClassInfo(h_instance, EWC_BOX_PANE, &wc)) {
+	    wc.lpszClassName = EWC_BOX_PANE;
+	    wc.lpfnWndProc = win32_box_wnd_proc;
+	    wc.style = CS_HREDRAW | CS_VREDRAW | CS_OWNDC;
+	    wc.cbClsExtra = 0;
+	    wc.cbWndExtra = 0;
+	    wc.hInstance = h_instance;
+	    wc.hIcon = NULL;
+	    wc.hCursor = LoadCursor(NULL, IDC_ARROW);
+	    wc.hbrBackground = (HBRUSH) (COLOR_3DFACE+1);
+	    wc.lpszMenuName = NULL;
+
+	    RegisterClass(&wc);
+	}
+
+	box->h_wnd = CreateWindow(
+	    EWC_BOX_PANE,
+	    EWC_BOX_PANE,
+	    WS_CHILD | WS_VISIBLE,
+	    0, 0, 0, 0,
+	    hw_parent,
+	    NULL,
+	    h_instance,
+	    (LPSTR) NULL);
+
+	ShowWindow(box->h_wnd, SW_SHOW);
+	UpdateWindow(box->h_wnd);
+    }
+
+    box->orient = orientation;
+
+    /* Attach the box address to our HWND. */
+    SetWindowLong(box->h_wnd, GWL_USERDATA, (LONG) box);
+
+    return box;
+}
+
+
+win32_element_t *
+win32_hbox_new(HWND hw_box, HWND hw_parent) {
+    return win32_box_new(hw_box, hw_parent, BOX_ORIENT_HORIZONTAL);
+}
+
+win32_element_t *
+win32_vbox_new(HWND hw_box, HWND hw_parent) {
+    return win32_box_new(hw_box, hw_parent, BOX_ORIENT_VERTICAL);
+}
+
+void
+win32_box_add(win32_element_t *box, win32_element_t *box_el, int pos) {
+    win32_element_assert(box);
+    win32_element_assert(box_el);
+
+    if (box->type == BOX_GRID)
+	win32_grid_add(box, box_el);
+    else
+	box->contents = g_list_insert(box->contents, box_el, pos);
+
+    if (box->type == BOX_DECK) {
+	if (g_list_index(box->contents, box_el) != win32_deck_get_selectedindex(box))
+	    ShowWindow(box_el->h_wnd, SW_HIDE);
+    }
+
+    if (box->type == BOX_GROUPBOX) {
+	win32_groupbox_reparent(box, box_el);
+    }
+}
+
+win32_element_t *
+win32_box_add_hwnd(win32_element_t *box, HWND h_wnd, int pos) {
+    win32_element_t *box_el;
+    RECT wr;
+
+    box_el = win32_element_new(h_wnd);
+    SetWindowLong(h_wnd, GWL_USERDATA, (LONG) box_el);
+    GetWindowRect(h_wnd, &wr);
+
+    box_el->id = NULL;
+    box_el->type = BOX_WINDOW;
+    box_el->h_wnd = h_wnd;
+    box_el->dir = BOX_DIR_RTL;
+    box_el->crop = BOX_CROP_NONE;
+    box_el->flex = 0.0;
+    box_el->flexgroup = 1;
+
+    box_el->minwidth = wr.right - wr.left;
+    box_el->minheight = wr.bottom - wr.top;
+    box_el->maxwidth = -1;
+    box_el->maxheight = -1;
+
+    box_el->oncommand = NULL;
+
+    win32_box_add(box, box_el, pos);
+
+    return box_el;
+}
+
+win32_element_t *
+win32_box_add_splitter(win32_element_t *box, int pos) {
+    win32_element_t *box_el;
+    HINSTANCE        h_instance;
+    WNDCLASS         wc;
+    LPCSTR           name;
+    gboolean         horizontal = FALSE;
+
+    win32_element_assert(box);
+    g_assert(pos != 0);
+    g_assert(box->type == BOX_BOX);
+
+    if (box->orient == BOX_ORIENT_HORIZONTAL) {
+	horizontal = TRUE;
+    }
+
+    box_el = win32_element_new(NULL);
+    box_el->type = BOX_SPLITTER;
+
+    h_instance = (HINSTANCE) GetWindowLong(box->h_wnd, GWL_HINSTANCE);
+
+    if (horizontal) {
+	name = EWC_SPLITTER_H;
+	wc.hCursor = LoadCursor(NULL, IDC_SIZEWE);
+	wc.lpfnWndProc = win32_splitter_wnd_proc_h;
+    } else {
+	name = EWC_SPLITTER_V;
+	wc.hCursor = LoadCursor(NULL, IDC_SIZENS);
+	wc.lpfnWndProc = win32_splitter_wnd_proc_v;
+    }
+    if (! GetClassInfo(h_instance, name, &wc)) {
+	wc.lpszClassName = name;
+	wc.style = CS_HREDRAW | CS_VREDRAW | CS_PARENTDC;
+	wc.cbClsExtra = 0;
+	wc.cbWndExtra = 0;
+	wc.hInstance = h_instance;
+	wc.hIcon = NULL;
+	wc.hbrBackground = (HBRUSH) (COLOR_3DFACE+1);
+	wc.lpszMenuName = NULL;
+
+	RegisterClass(&wc);
+    }
+
+    box_el->h_wnd = CreateWindow(
+	name,
+	name,
+	WS_CHILD | WS_VISIBLE,
+	0, 0, 0, 0,
+	box->h_wnd,
+	NULL,
+	h_instance,
+	(LPSTR) NULL);
+
+    ShowWindow(box_el->h_wnd, SW_SHOW);
+    UpdateWindow(box_el->h_wnd);
+
+    /* Attach the box address to our HWND. */
+    SetWindowLong(box_el->h_wnd, GWL_USERDATA, (LONG) box_el);
+
+    win32_box_add(box, box_el, pos);
+
+    /* Sizes must be specified _after_ win32_box_add(). */
+    /* XXX - Do splitters care about direction and cropping? */
+    box_el->dir = BOX_DIR_LTR;
+    box_el->crop = BOX_CROP_NONE;
+    box_el->flex = 0.0;
+    box_el->flexgroup = 0;
+
+    if (horizontal) {
+	box_el->minwidth = BOX_SPLITTER_GAP;
+	box_el->maxwidth = BOX_SPLITTER_GAP;
+	box_el->minheight = 0;
+    } else {
+	box_el->minheight = BOX_SPLITTER_GAP;
+	box_el->maxheight = BOX_SPLITTER_GAP;
+	box_el->minwidth = 0;
+    }
+
+    return box_el;
+}
+
+/*
+ * Resize an element.  If set_width or set_height are -1, the width or
+ * height is shrunk to its intrinsic value.
+ */
+void
+win32_element_resize (win32_element_t *el, int set_width, int set_height) {
+    int x, y, width, height;
+    int flex_dim, static_dim;
+    win32_element_t *cur_el;
+    GList *contents;
+    gfloat total_flex;
+    gboolean force_top = FALSE, horizontal;
+    POINT pt;
+    RECT wr, cr;
+
+    win32_element_assert(el);
+
+    if (set_width < 0 && set_height < 0)
+	force_top = TRUE;
+
+    if (set_width < 0) {
+	set_width = win32_element_intrinsic_width(el);
+    }
+    if (set_height < 0)
+	set_height = win32_element_intrinsic_height(el);
+
+    GetWindowRect(el->h_wnd, &wr);
+    GetClientRect(el->h_wnd, &cr);
+    if (GetParent(el->h_wnd) != NULL) { /* We're a client window. */
+	pt.x = wr.left;
+	pt.y = wr.top;
+	ScreenToClient(el->h_wnd, &pt);
+	MoveWindow(el->h_wnd, pt.x, pt.y, set_width, set_height, TRUE);
+    } else if (force_top) {
+	MoveWindow(el->h_wnd, wr.left, wr.top,
+	    set_width + (wr.right - wr.left) - (cr.right - cr.left),
+	    set_height + (wr.bottom - wr.top) - (cr.bottom - cr.top),
+	    TRUE);
+    }
+
+    if (el->type == BOX_GRID) { /* Hand off sizing chores to the grid */
+	win32_grid_resize_contents(el, set_width, set_height);
+	return;
+    } else if (el->type == BOX_DECK) { /* Hand off sizing chores to the deck */
+	win32_deck_resize_contents(el, set_width, set_height);
+	return;
+    }
+
+    if (el->contents == NULL) /* We're done. */
+	return;
+
+    /* Otherwise, we have a box.  Proceed through its contents. */
+    if (el->type == BOX_GROUPBOX) {
+	set_width -= win32_groupbox_extra_width(el);
+	set_height -= win32_groupbox_extra_height(el);
+    }
+    x = el->frame_left;
+    y = el->frame_top;
+    width = set_width - el->frame_left - el->frame_right;
+    height = set_height - el->frame_top - el->frame_bottom;
+    total_flex = win32_box_flex_total(el);
+    static_dim = win32_box_static_dim(el);
+
+    if (el->orient == BOX_ORIENT_HORIZONTAL) {
+	horizontal = TRUE;
+	flex_dim = set_width - static_dim - x - el->frame_right;
+    } else {
+	horizontal = FALSE;
+	flex_dim = set_height - static_dim - y - el->frame_bottom;
+    }
+
+    contents = g_list_first(el->contents);
+    while (contents != NULL) {
+	cur_el = (win32_element_t *) contents->data;
+	if (horizontal) { /* Trundle along in the y direction */
+	    if (cur_el->flex > 0.0 && total_flex > 0) {
+		width = (int) (cur_el->flex * flex_dim / total_flex);
+	    } else {
+		width = win32_element_intrinsic_width(cur_el);
+	    }
+	} else { /* Vertical */
+	    if (cur_el->flex > 0.0 && total_flex > 0) {
+		height = (int) (cur_el->flex * flex_dim / total_flex);
+	    } else {
+		height = win32_element_intrinsic_height(cur_el);
+	    }
+	}
+	win32_element_resize(cur_el, width, height);
+	win32_element_move(cur_el, x, y);
+
+	if (horizontal) {
+	    x += width;
+	} else {
+	    y += height;
+	}
+	contents = g_list_next(contents);
+    }
+}
+
+/*
+ * Move the given box to the given coordiantes.  Coordinates are
+ * relative to the screen for top-level windows and relative to
+ * the parent for child windows.
+ */
+ void
+ win32_element_move (win32_element_t *el, int x, int y) {
+    RECT wr;
+
+    win32_element_assert(el);
+    GetWindowRect(el->h_wnd, &wr);
+    MoveWindow(el->h_wnd, x, y, wr.right - wr.left, wr.bottom - wr.top, TRUE);
+}
+
+
+/*
+ * Private routines
+ */
+
+static LRESULT CALLBACK
+win32_box_wnd_proc(HWND hw_box, UINT msg, WPARAM w_param, LPARAM l_param) {
+
+    switch (msg) {
+//		case WM_CREATE:
+//			break;
+//		case WM_SIZE:
+//			break;
+//		case WM_NOTIFY:
+//			break;
+	/*
+	 * This is a little counter-intuitive.  WM_LBUTTONDOWN events are
+	 * caught by splitter windows (below), which are children of hw_box.
+	 * WM_MOUSEMOVE and WM_LBUTTONUP events are handled by hw_box itself.
+	 */
+	case WM_LBUTTONUP:
+	    if (splitter_drag_mode) {
+		win32_splitter_lbutton_up(hw_box, msg, w_param, l_param);
+		return 0;
+	    }
+	    break;
+	case WM_MOUSEMOVE:
+	    if (splitter_drag_mode) {
+		win32_splitter_mouse_move(hw_box, msg, w_param, l_param);
+		return 0;
+	    }
+	    break;
+	case WM_COMMAND:
+	    win32_element_handle_wm_command(msg, w_param, l_param);
+	    break;
+	default:
+	    return(DefWindowProc(hw_box, msg, w_param, l_param));
+	    break;
+    }
+    return 0;
+}
+
+static LRESULT CALLBACK
+win32_splitter_wnd_proc(HWND hw_splitter, UINT msg,
+	WPARAM w_param, LPARAM l_param, win32_box_orient_t orientation) {
+
+    switch (msg) {
+	case WM_LBUTTONDOWN:
+	    win32_splitter_lbutton_down(hw_splitter, msg, w_param, l_param);
+	    return 0;
+	default:
+	    return(DefWindowProc(hw_splitter, msg, w_param, l_param));
+    }
+    return 0;
+}
+
+static LRESULT CALLBACK
+win32_splitter_wnd_proc_h(HWND hw_splitter, UINT msg, WPARAM w_param, LPARAM l_param) {
+
+    return(win32_splitter_wnd_proc(hw_splitter, msg, w_param, l_param,
+	BOX_ORIENT_HORIZONTAL));
+}
+
+static LRESULT CALLBACK
+win32_splitter_wnd_proc_v(HWND hw_splitter, UINT msg, WPARAM w_param, LPARAM l_param) {
+
+    return(win32_splitter_wnd_proc(hw_splitter, msg, w_param, l_param,
+	BOX_ORIENT_VERTICAL));
+}
+
+/*
+ * Given a box, return its contents' cumulative "flex" value.
+ */
+static gfloat
+win32_box_flex_total(win32_element_t *box) {
+    gfloat total = 0.0;
+    win32_element_t *cur_el;
+    GList *contents;
+
+    win32_element_assert(box);
+    g_assert(box->type == BOX_BOX || box->type == BOX_GROUPBOX);
+
+    contents = g_list_first(box->contents);
+    while (contents) {
+	cur_el = (win32_element_t *) contents->data;
+	total += cur_el->flex;
+	contents = g_list_next(contents);
+    }
+    return total;
+}
+
+/*
+ * Given a box, return its contents' cumulative static (non-flexible) width/height.
+ */
+static gint
+win32_box_static_dim(win32_element_t *box) {
+    gint             total = 0, intrinsic_dim = 0;
+    win32_element_t *cur_el;
+    GList           *contents;
+
+    win32_element_assert(box);
+    g_assert(box->type == BOX_BOX || box->type == BOX_GROUPBOX);
+
+    contents = g_list_first(box->contents);
+
+    /*
+     * XXX - The intrinsic width is accumulated because we might run into
+     * a situation where a box is sized before its minimum width has been
+     * set.  This may not be the best place to do this.
+     */
+    while (contents) {
+	cur_el = (win32_element_t *) contents->data;
+	if (cur_el->flex == 0.0) {
+	    if (box->orient == BOX_ORIENT_HORIZONTAL) {
+		total += win32_element_get_width(cur_el);
+		intrinsic_dim += win32_element_intrinsic_width(cur_el);
+	    } else {
+		total += win32_element_get_height(cur_el);
+		intrinsic_dim += win32_element_intrinsic_height(cur_el);
+	    }
+	}
+	contents = g_list_next(contents);
+    }
+
+    if (intrinsic_dim > total)
+	return intrinsic_dim;
+
+    return total;
+}
+
+/*
+ * Given a box, return its contents' cumulative flexible width/height.
+ */
+static gint
+win32_box_flexible_dim(win32_element_t *box) {
+    gint total = 0;
+    win32_element_t *cur_el;
+    GList *contents;
+
+    win32_element_assert(box);
+    g_assert(box->type == BOX_BOX || box->type == BOX_GROUPBOX);
+
+    contents = g_list_first(box->contents);
+    while (contents) {
+	cur_el = (win32_element_t *) contents->data;
+	if (cur_el->flex > 0.0) {
+	    if (box->orient == BOX_ORIENT_HORIZONTAL) {
+		total += win32_element_get_width(cur_el);
+	    } else {
+		total += win32_element_get_height(cur_el);
+	    }
+	}
+	contents = g_list_next(contents);
+    }
+    return total;
+}
+
+
+
+/*
+ * Splitter routines
+ */
+
+/* XXX - The min/max x/y value should be bounded to match
+ * win32_splitter_lbutton_up()'s behavior. */
+static void
+win32_splitter_xor_bar(HDC hdc, int x1, int y1, int width, int height)
+{
+    static WORD dot_pattern[8] =
+    {
+	0x00aa, 0x0055, 0x00aa, 0x0055,
+	0x00aa, 0x0055, 0x00aa, 0x0055
+    };
+
+    HBITMAP hbm;
+    HBRUSH  hbr, hbr_old;
+
+    hbm = CreateBitmap(8, 8, 1, 1, dot_pattern);
+    hbr = CreatePatternBrush(hbm);
+
+    SetBrushOrgEx(hdc, x1, y1, 0);
+    hbr_old = (HBRUSH)SelectObject(hdc, hbr);
+
+    PatBlt(hdc, x1, y1, width, height, PATINVERT);
+
+    SelectObject(hdc, hbr_old);
+
+    DeleteObject(hbr);
+    DeleteObject(hbm);
+}
+
+/* XXX - Handle vertical splitter bars */
+static LRESULT
+win32_splitter_lbutton_down(HWND hwnd, UINT i_msg, WPARAM w_param, LPARAM l_param)
+{
+    HWND hw_parent = GetParent(hwnd);
+    POINT pt;
+    HDC hdc;
+    RECT rect;
+    win32_element_t *box;
+    win32_element_t *cur_el;
+    GList *contents;
+    int dim = 0;
+
+    pt.x = (short)LOWORD(l_param);  // horizontal position of cursor
+    pt.y = (short)HIWORD(l_param);
+
+    GetWindowRect(hw_parent, &rect);
+
+    //convert the mouse coordinates relative to the top-left of
+    //the window
+    ClientToScreen(hwnd, &pt);
+    pt.x -= rect.left;
+    pt.y -= rect.top;
+
+    //same for the window coordinates - make them relative to 0,0
+    OffsetRect(&rect, -rect.left, -rect.top);
+
+    if(pt.y < 0) pt.y = 0;
+    /* XXX - Find our splitter and use its width/height */
+    if(pt.y > rect.bottom-4)
+    {
+	pt.y = rect.bottom-4;
+    }
+
+    splitter_drag_mode = TRUE;
+
+    SetCapture(hw_parent);
+
+    hdc = GetWindowDC(hw_parent);
+    win32_splitter_xor_bar(hdc, 1,pt.y - 2, rect.right-2,4);
+    ReleaseDC(hw_parent, hdc);
+
+    y_old = y_orig = pt.y;
+
+    /* Find the box we're attached to */
+    box = (win32_element_t *) GetWindowLong(hw_parent, GWL_USERDATA);
+    win32_element_assert (box);
+
+    /* Find our splitter's box element */
+    cur_splitter = NULL;
+    contents = g_list_first(box->contents);
+    while (contents != NULL) {
+	cur_el = (win32_element_t *) contents->data;
+	if (cur_el->type == BOX_SPLITTER && cur_el->h_wnd == hwnd) {
+	    cur_splitter = cur_el;
+	    return 0;
+	}
+	dim += win32_element_get_height(cur_el);
+	contents = g_list_next(contents);
+    }
+    return 0;
+}
+
+/* XXX - Handle vertical splitter bars */
+static LRESULT
+win32_splitter_lbutton_up(HWND hwnd, UINT i_msg, WPARAM w_param, LPARAM l_param)
+{
+    HDC hdc;
+    RECT rect;
+    POINT pt;
+    win32_element_t *box;
+    win32_element_t *cur_el, *prev_el = NULL, *next_el = NULL;
+    GList *contents, *tmp_item;
+    gint tot_dynamic = 0;
+    int dim = 0;
+
+    pt.x = (short)LOWORD(l_param);  // horizontal position of cursor
+    pt.y = (short)HIWORD(l_param);
+
+    if(splitter_drag_mode == FALSE)
+	return 0;
+
+    GetWindowRect(hwnd, &rect);
+
+    ClientToScreen(hwnd, &pt);
+    pt.x -= rect.left;
+    pt.y -= rect.top;
+
+    OffsetRect(&rect, -rect.left, -rect.top);
+
+    if(pt.y < 0) pt.y = 0;
+    if(pt.y > rect.bottom-4)
+    {
+	pt.y = rect.bottom-4;
+    }
+
+    hdc = GetWindowDC(hwnd);
+    win32_splitter_xor_bar(hdc, 1, y_old - 2, rect.right-2,4);
+    ReleaseDC(hwnd, hdc);
+
+    y_old = pt.y;
+
+    splitter_drag_mode = FALSE;
+
+
+    /* Find the box we're attached to */
+    box = (win32_element_t *) GetWindowLong(hwnd, GWL_USERDATA);
+    win32_element_assert(box);
+
+    /* Reposition our element */
+    if (cur_splitter != NULL) {
+	contents = g_list_find(box->contents, (gpointer) cur_splitter);
+	tmp_item = g_list_previous(contents);
+	if (tmp_item != NULL)
+	    prev_el = (win32_element_t *) tmp_item->data;
+	tmp_item = g_list_next(contents);
+	if (tmp_item != NULL)
+	    next_el = (win32_element_t *) tmp_item->data;
+
+	tot_dynamic = win32_box_flexible_dim(box);
+
+	contents = g_list_first(box->contents);
+	while (contents != NULL) {
+	    cur_el = (win32_element_t *) contents->data;
+	    if (cur_el == cur_splitter && prev_el != NULL && next_el != NULL) {
+		/* "dim" is located at the bottom of prev_item / top
+		 * of cur_splitter. */
+
+		/* Stay within the bounds of the previous and next items */
+		if (y_old <= dim - win32_element_get_height(prev_el))
+		    y_old = dim - win32_element_get_height(prev_el) + 1;
+		if (y_old >= dim + win32_element_get_height(next_el) - win32_element_get_height(cur_el))
+		    y_old = dim + win32_element_get_height(next_el) - 1;
+
+		win32_element_set_height(prev_el, win32_element_get_height(prev_el) + y_old - dim);
+		win32_element_set_height(next_el, win32_element_get_height(next_el) + dim - y_old);
+	    }
+	    dim += win32_element_get_height(cur_el);
+	    contents = g_list_next(contents);
+	}
+
+	/* Make another pass through the box contents, adjusting
+	 * each flex value */
+	contents = g_list_first(box->contents);
+	while (contents != NULL) {
+	    cur_el = (win32_element_t *) contents->data;
+	    if (cur_el->flex > 0.0) {
+		cur_el->flex = (float) (win32_element_get_height(cur_el) * 100.0 / tot_dynamic);
+	    }
+	    contents = g_list_next(contents);
+	}
+    }
+
+    if (tot_dynamic) {
+	win32_element_resize(box, rect.right - rect.left, rect.bottom - rect.top);
+    }
+
+    ReleaseCapture();
+
+    return 0;
+}
+
+static LRESULT
+win32_splitter_mouse_move(HWND hwnd, UINT i_msg, WPARAM w_param, LPARAM l_param)
+{
+//	HWND hw_parent = GetParent(hwnd);
+    HDC hdc;
+    RECT rect;
+
+    POINT pt;
+
+    if(splitter_drag_mode == FALSE) return 0;
+
+    pt.x = (short)LOWORD(l_param);  // horizontal position of cursor
+    pt.y = (short)HIWORD(l_param);
+
+    GetWindowRect(hwnd, &rect);
+
+    ClientToScreen(hwnd, &pt);
+    pt.x -= rect.left;
+    pt.y -= rect.top;
+
+    OffsetRect(&rect, -rect.left, -rect.top);
+
+    if(pt.y < 0) pt.y = 0;
+    if(pt.y > rect.bottom-4)
+    {
+	pt.y = rect.bottom-4;
+    }
+    if(pt.y != y_old && w_param & MK_LBUTTON)
+    {
+	hdc = GetWindowDC(hwnd);
+	win32_splitter_xor_bar(hdc, 1, y_old - 2, rect.right-2,4);
+	win32_splitter_xor_bar(hdc, 1,pt.y - 2, rect.right-2,4);
+
+	ReleaseDC(hwnd, hdc);
+
+	y_old = pt.y;
+    }
+
+    return 0;
+}
diff -x entries -urN ethereal/xulender/win32-c-sdk/stdelements/win32-box.h ethereal-win32/xulender/win32-c-sdk/stdelements/win32-box.h
--- ethereal/xulender/win32-c-sdk/stdelements/win32-box.h	1969-12-31 18:00:00.000000000 -0600
+++ ethereal-win32/xulender/win32-c-sdk/stdelements/win32-box.h	2004-04-16 15:40:08.000000000 -0500
@@ -0,0 +1,57 @@
+#ifndef __WIN32_BOX_H__
+#define __WIN32_BOX_H__
+
+/*
+ * Creates a XUL element struct and returns its address.
+ * If hw_box is NULL, a new window is created with hw_parent as the parent.
+ * if hw_box is not NULL, (e.g. it's a newly-created window or dialog)
+ * that window is associated with the box and hw_parent is ignored.
+ *
+ * "orient" can be one of BOX_ORIENT HORIZONTAL or BOX_ORIENT_VERTICAL.
+ * The box address is saved in its hw_box's GWL_USERDATA attribute.
+ */
+win32_element_t * win32_box_new(HWND hw_box, HWND hw_parent, win32_box_orient_t orient);
+
+/*
+ * Creates a horizontally-oriented "box" struct and returns its address.
+ * If hw_box is NULL, a new window is created with hw_parent as the parent.
+ * if hw_box is not NULL, that window is associated with the box and hw_parent
+ * is ignored.
+ */
+win32_element_t * win32_hbox_new(HWND hw_box, HWND hw_parent);
+
+/*
+ * Creates a vertically-oriented "box" struct and returns its address.
+ * If hw_box is NULL, a new window is created with hw_parent as the parent.
+ * if hw_box is not NULL, that window is associated with the box and hw_parent
+ * is ignored.
+ */
+win32_element_t * win32_vbox_new(HWND hw_box, HWND hw_parent);
+
+/* Add a user-created box element */
+void win32_box_add(win32_element_t *box, win32_element_t *element, int pos);
+
+/* Given an HWND, create a box element and add it to the given box */
+/* Changes the box element size values */
+win32_element_t * win32_box_add_hwnd(win32_element_t *box, HWND h_wnd, int pos);
+
+/* Add a splitter to a box */
+/* Changes the box element size values */
+win32_element_t * win32_box_add_splitter(win32_element_t *box, int pos);
+
+/*
+ * Resize the contents of the given box to fit inside the given window.
+ * If width is -1, the box is constrained to its minumum width.  Otherwise
+ * the box width is set to the given width.  Likewise for the height.
+ */
+void win32_element_resize (win32_element_t *el, int width, int height);
+
+
+/*
+ * Move the given box to the given screen coordiantes.  Coordinates are
+ * relative to the screen for top-level windows and relative to the parent
+ * for child windows.
+ */
+void win32_element_move (win32_element_t *el, int x, int y);
+
+#endif /* win32-box.h */
diff -x entries -urN ethereal/xulender/win32-c-sdk/stdelements/win32-button.c ethereal-win32/xulender/win32-c-sdk/stdelements/win32-button.c
--- ethereal/xulender/win32-c-sdk/stdelements/win32-button.c	1969-12-31 18:00:00.000000000 -0600
+++ ethereal-win32/xulender/win32-c-sdk/stdelements/win32-button.c	2004-05-19 16:44:04.000000000 -0500
@@ -0,0 +1,59 @@
+
+#ifdef HAVE_CONFIG_H
+# include "config.h"
+#endif
+
+#include "globals.h"
+#include "glib.h"
+#include <windows.h>
+#include <windowsx.h>
+#include <commctrl.h>
+
+#include "win32-c-sdk.h"
+
+#include "win32-globals.h"
+#include "win32-util.h"
+
+/*
+ * Create a Button control.
+ */
+
+win32_element_t *
+win32_button_new(HWND hw_parent, LPCSTR label) {
+    win32_element_t *button;
+    SIZE sz;
+
+    g_assert(hw_parent != NULL);
+
+    button = win32_element_new(NULL);
+
+    button->h_wnd = CreateWindow(
+	"BUTTON",
+	label,
+	WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON,
+	0, 0, 0, 0,
+	hw_parent,
+	(HMENU) NULL,
+	(HINSTANCE) GetWindowLong(hw_parent, GWL_HINSTANCE),
+	(LPSTR) NULL);
+
+    SendMessage(button->h_wnd, WM_SETFONT,
+	(WPARAM) GetStockObject(DEFAULT_GUI_FONT), TRUE);
+
+    win32_get_text_size(button->h_wnd, label, &sz);
+    /* XXX - Surely we can do better than this. */
+    sz.cx += DIALOG2PIXELX(12);
+    sz.cy = DIALOG2PIXELY(14);
+    MoveWindow(button->h_wnd, 0, 0, sz.cx, sz.cy, TRUE);
+
+    button->minwidth = sz.cx;
+    button->minheight = sz.cy;
+
+    ShowWindow(button->h_wnd, SW_SHOW);
+    UpdateWindow(button->h_wnd);
+
+    /* Attach the button address to our HWND. */
+    SetWindowLong(button->h_wnd, GWL_USERDATA, (LONG) button);
+
+    return button;
+}
diff -x entries -urN ethereal/xulender/win32-c-sdk/stdelements/win32-button.h ethereal-win32/xulender/win32-c-sdk/stdelements/win32-button.h
--- ethereal/xulender/win32-c-sdk/stdelements/win32-button.h	1969-12-31 18:00:00.000000000 -0600
+++ ethereal-win32/xulender/win32-c-sdk/stdelements/win32-button.h	2004-05-03 14:01:50.000000000 -0500
@@ -0,0 +1,7 @@
+#ifndef __WIN32_BUTTON_H__
+#define __WIN32_BUTTON_H__
+
+
+win32_element_t *win32_button_new(HWND, LPCSTR);
+
+#endif /* win32-button.h */
diff -x entries -urN ethereal/xulender/win32-c-sdk/stdelements/win32-checkbox.c ethereal-win32/xulender/win32-c-sdk/stdelements/win32-checkbox.c
--- ethereal/xulender/win32-c-sdk/stdelements/win32-checkbox.c	1969-12-31 18:00:00.000000000 -0600
+++ ethereal-win32/xulender/win32-c-sdk/stdelements/win32-checkbox.c	2004-05-19 16:44:44.000000000 -0500
@@ -0,0 +1,117 @@
+
+#ifdef HAVE_CONFIG_H
+# include "config.h"
+#endif
+
+#include <windows.h>
+#include <windowsx.h>
+#include <commctrl.h>
+
+#include "glib.h"
+
+#include "win32-c-sdk.h"
+
+#include "win32-globals.h"
+#include "win32-util.h"
+
+#define ATTACHED_DATA_ID "_win32_checkbox_attached_data"
+
+/*
+ * Create a Checkbox control.
+ */
+
+win32_element_t *
+win32_checkbox_new(HWND hw_parent, LPCSTR label) {
+    win32_element_t *checkbox;
+    SIZE sz;
+
+    g_assert(hw_parent != NULL);
+
+    checkbox = win32_element_new(NULL);
+
+    checkbox->h_wnd = CreateWindow(
+	"BUTTON",
+	label,
+	WS_CHILD | WS_VISIBLE | BS_AUTOCHECKBOX,
+	0, 0, 0, 0,
+	hw_parent,
+	(HMENU) NULL,
+	(HINSTANCE) GetWindowLong(hw_parent, GWL_HINSTANCE),
+	(LPSTR) NULL);
+
+    SendMessage(checkbox->h_wnd, WM_SETFONT,
+	(WPARAM) GetStockObject(DEFAULT_GUI_FONT), TRUE);
+
+    win32_get_text_size(checkbox->h_wnd, label, &sz);
+    /* XXX - Surely we can do better than this. */
+    sz.cx += DIALOG2PIXELX(15);
+    sz.cy = DIALOG2PIXELY(14);
+    MoveWindow(checkbox->h_wnd, 0, 0, sz.cx, sz.cy, TRUE);
+
+    checkbox->minwidth = sz.cx;
+    checkbox->minheight = sz.cy;
+
+    ShowWindow(checkbox->h_wnd, SW_SHOW);
+    UpdateWindow(checkbox->h_wnd);
+
+    /* Attach the checkbox address to our HWND. */
+    SetWindowLong(checkbox->h_wnd, GWL_USERDATA, (LONG) checkbox);
+
+    return checkbox;
+}
+
+/*
+ * Get the state of a checkbox
+ */
+gboolean
+win32_checkbox_get_state(win32_element_t *cb_el) {
+    int state;
+
+    win32_element_assert(cb_el);
+
+    state = SendMessage(cb_el->h_wnd, BM_GETCHECK, 0, 0);
+    return state == BST_CHECKED ? TRUE : FALSE;
+}
+
+/*
+ * Set the state of a checkbox
+ */
+void
+win32_checkbox_set_state(win32_element_t *cb_el, gboolean state) {
+    win32_element_assert(cb_el);
+
+    SendMessage(cb_el->h_wnd, BM_SETCHECK,
+	state ? (WPARAM) BST_CHECKED : (WPARAM) BST_UNCHECKED, 0);
+}
+
+/*
+ * Attach a gboolean pointer to a checkbox.  This is meant to be used
+ * in conjunction with win32_checkbox_toggle_attached_data(), below.
+ */
+void
+win32_checkbox_attach_data(win32_element_t *cb_el, gboolean *toggle_val) {
+    win32_element_assert(cb_el);
+
+    win32_element_set_data(cb_el, ATTACHED_DATA_ID, toggle_val);
+
+    SendMessage(cb_el->h_wnd, BM_SETCHECK,
+	*toggle_val ? (WPARAM) BST_CHECKED : (WPARAM) BST_UNCHECKED, 0);
+}
+
+/*
+ * Toggle the variable pointed to by ATTACHED_DATA_ID.  An assertion is
+ * thrown if nothing is associated to ATTACHED_DATA_ID.
+ */
+void
+win32_checkbox_toggle_attached_data(win32_element_t *cb_el) {
+    gboolean *toggle_val;
+
+    win32_element_assert(cb_el);
+    toggle_val = win32_element_get_data(cb_el, ATTACHED_DATA_ID);
+    g_assert(toggle_val != NULL);
+
+    if (SendMessage(cb_el->h_wnd, BM_GETCHECK, 0, 0) == BST_CHECKED)
+	*toggle_val = TRUE;
+    else
+	*toggle_val = FALSE;
+}
diff -x entries -urN ethereal/xulender/win32-c-sdk/stdelements/win32-checkbox.h ethereal-win32/xulender/win32-c-sdk/stdelements/win32-checkbox.h
--- ethereal/xulender/win32-c-sdk/stdelements/win32-checkbox.h	1969-12-31 18:00:00.000000000 -0600
+++ ethereal-win32/xulender/win32-c-sdk/stdelements/win32-checkbox.h	2004-05-03 14:17:37.000000000 -0500
@@ -0,0 +1,29 @@
+#ifndef __WIN32_CHECKBOX_H__
+#define __WIN32_CHECKBOX_H__
+
+
+win32_element_t *win32_checkbox_new(HWND, LPCSTR);
+
+/*
+ * Get the state of a checkbox
+ */
+gboolean win32_checkbox_get_state(win32_element_t *cb_el);
+
+/*
+ * Set the state of a checkbox
+ */
+void win32_checkbox_set_state(win32_element_t *cb_el, gboolean state);
+
+/*
+ * Attach a gboolean pointer to a checkbox.  This is meant to be used
+ * in conjunction with win32_checkbox_toggle_attached_data(), below.
+ */
+void win32_checkbox_attach_data(win32_element_t *cb_el, gboolean *toggle_val);
+
+/*
+ * Toggle the gboolean associated with a checkbox.  Suitable for
+ * use as an oncommand() routine.
+ */
+void win32_checkbox_toggle_attached_data(win32_element_t *cb_el);
+
+#endif /* win32-checkbox.h */
diff -x entries -urN ethereal/xulender/win32-c-sdk/stdelements/win32-deck.c ethereal-win32/xulender/win32-c-sdk/stdelements/win32-deck.c
--- ethereal/xulender/win32-c-sdk/stdelements/win32-deck.c	1969-12-31 18:00:00.000000000 -0600
+++ ethereal-win32/xulender/win32-c-sdk/stdelements/win32-deck.c	2004-06-17 09:11:35.000000000 -0500
@@ -0,0 +1,281 @@
+
+#ifdef HAVE_CONFIG_H
+# include "config.h"
+#endif
+
+#include <windows.h>
+
+#include <glib.h>
+
+#include "win32-c-sdk.h"
+
+#include "win32-globals.h"
+
+
+/*
+ * Deck elements.
+ *
+ * http://www.mozilla.org/projects/xul/layout.html
+ * http://www.xulplanet.com/tutorials/xultu/stacks.html
+ *
+ */
+
+ /*
+  * Structures
+  */
+
+typedef struct _deck_data_t {
+    gint selectedindex;
+    win32_element_t *selectedpanel;
+} deck_data_t;
+
+#define EWC_DECK_PANE "DeckPane"
+#define WIN32_DECK_DATA "_win32_deck_data"
+
+static void win32_deck_destroy(win32_element_t *deck, gboolean destroy_window);
+static LRESULT CALLBACK win32_deck_wnd_proc(HWND, UINT, WPARAM, LPARAM);
+
+win32_element_t *
+win32_deck_new(HWND hw_parent) {
+    win32_element_t *deck;
+    HINSTANCE        h_instance = (HINSTANCE) GetWindowLong(hw_parent, GWL_HINSTANCE);
+    deck_data_t     *dd;
+    WNDCLASS         wc;
+
+    g_assert(hw_parent != NULL);
+
+    deck = win32_element_new(NULL);
+
+    if (! GetClassInfo(h_instance, EWC_DECK_PANE, &wc)) {
+	wc.lpszClassName = EWC_DECK_PANE;
+	wc.lpfnWndProc = win32_deck_wnd_proc;
+	wc.style = CS_HREDRAW | CS_VREDRAW | CS_OWNDC;
+	wc.cbClsExtra = 0;
+	wc.cbWndExtra = 0;
+	wc.hInstance = h_instance;
+	wc.hIcon = NULL;
+	wc.hCursor = LoadCursor(NULL, IDC_ARROW);
+	wc.hbrBackground = (HBRUSH) (COLOR_3DFACE+1);
+	wc.lpszMenuName = NULL;
+
+	RegisterClass(&wc);
+    }
+
+    deck->h_wnd = CreateWindow(
+	EWC_DECK_PANE,
+	EWC_DECK_PANE,
+	WS_CHILD | WS_VISIBLE,
+	0, 0, 0, 0,
+	hw_parent,
+	NULL,
+	h_instance,
+	(LPSTR) NULL);
+
+    ShowWindow(deck->h_wnd, SW_SHOW);
+    UpdateWindow(deck->h_wnd);
+
+
+
+    deck->type = BOX_DECK;
+    deck->destroy = win32_deck_destroy;
+
+    dd = g_malloc(sizeof(deck_data_t));
+    dd->selectedindex = 0;
+    dd->selectedpanel = NULL;
+
+    /* Attach the deck address to our HWND. */
+    SetWindowLong(deck->h_wnd, GWL_USERDATA, (LONG) deck);
+    win32_element_set_data(deck, WIN32_DECK_DATA, dd);
+
+    return deck;
+}
+
+
+/*
+ * Find a deck's intrinsic (minimum) width.
+ */
+gint
+win32_deck_intrinsic_width(win32_element_t *deck) {
+    gint             width, min_width = 0;
+    GList           *contents;
+    win32_element_t *cur_el;
+
+    win32_element_assert(deck);
+
+    if (deck->contents == NULL)
+	return deck->minwidth + deck->frame_left + deck->frame_right;
+
+    contents = g_list_first(deck->contents);
+    while (contents) {
+	cur_el = (win32_element_t *) contents->data;
+	width = win32_element_intrinsic_width(cur_el);
+	if (width > min_width)
+	    min_width = width;
+	contents = g_list_next(contents);
+    }
+
+    return min_width + deck->frame_left + deck->frame_right;
+}
+
+/*
+ * Resize the contents of the deck.  This is meant to be called from
+ * win32_element_resize() after the deck's HWND has been resized; therefore
+ * we only handle the deck's contents and not the deck's HWND.
+ */
+/* XXX - Add flex support */
+void
+win32_deck_resize_contents(win32_element_t *deck, int set_width, int set_height) {
+    int              width, height;
+    win32_element_t *cur_el;
+    GList           *contents;
+
+    win32_element_assert(deck);
+
+    width = set_width - deck->frame_left - deck->frame_right;
+    if (width < 0) width = 0;
+    height = set_height  - deck->frame_bottom - deck->frame_top;
+    if (height < 0) height = 0;
+    contents = g_list_first(deck->contents);
+    while (contents != NULL) {
+	cur_el = (win32_element_t *) contents->data;
+	win32_element_resize(cur_el, width, height);
+	contents = g_list_next(contents);
+    }
+}
+
+/*
+ * Find a deck's intrinsic (minimum) height.
+ */
+gint
+win32_deck_intrinsic_height(win32_element_t *deck) {
+    gint             height, min_height = 0;
+    GList           *contents;
+    win32_element_t *cur_el;
+
+    win32_element_assert(deck);
+
+    if (deck->contents == NULL)
+	return deck->minheight + deck->frame_top + deck->frame_bottom;
+
+    contents = g_list_first(deck->contents);
+    while (contents) {
+	cur_el = (win32_element_t *) contents->data;
+	height = win32_element_intrinsic_height(cur_el);
+	if (height > min_height)
+	    min_height = height;
+	contents = g_list_next(contents);
+    }
+
+    return min_height + deck->frame_top + deck->frame_bottom;
+}
+
+/*
+ * Set a deck's selected (visible) element given its index number
+ * (starting at 0).
+ */
+void
+win32_deck_set_selectedindex(win32_element_t *deck, guint index) {
+    GList           *contents;
+    deck_data_t     *dd;
+    win32_element_t *cur_el;
+    guint             count = 0;
+
+    win32_element_assert(deck);
+    dd = (deck_data_t *) win32_element_get_data(deck, WIN32_DECK_DATA);
+
+    contents = g_list_first(deck->contents);
+    while (contents) {
+	cur_el = (win32_element_t *) contents->data;
+	if (count == index) {
+	    ShowWindow(cur_el->h_wnd, SW_SHOW);
+	    dd->selectedindex = count;
+	    dd->selectedpanel = cur_el;
+	} else {
+	    ShowWindow(cur_el->h_wnd, SW_HIDE);
+	}
+	count++;
+	contents = g_list_next(contents);
+    }
+}
+
+/*
+ * Set a deck's selected (visible) element given a pointer to the element.
+ */
+void
+win32_deck_set_selectedpanel(win32_element_t *deck, win32_element_t *panel) {
+    GList           *contents;
+    deck_data_t     *dd;
+    win32_element_t *cur_el;
+    gint             count = 0;
+
+    win32_element_assert(deck);
+    dd = (deck_data_t *) win32_element_get_data(deck, WIN32_DECK_DATA);
+
+    contents = g_list_first(deck->contents);
+    while (contents) {
+	cur_el = (win32_element_t *) contents->data;
+	if (cur_el == panel) {
+	    ShowWindow(cur_el->h_wnd, SW_SHOW);
+	    dd->selectedindex = count;
+	    dd->selectedpanel = cur_el;
+	} else {
+	    ShowWindow(cur_el->h_wnd, SW_HIDE);
+	}
+	count++;
+	contents = g_list_next(contents);
+    }
+}
+
+/*
+ * Fetch a deck's selected (visible) element index, starting from 0.
+ */
+guint win32_deck_get_selectedindex(win32_element_t *deck) {
+    deck_data_t *dd;
+
+    win32_element_assert(deck);
+    dd = (deck_data_t *) win32_element_get_data(deck, WIN32_DECK_DATA);
+
+    return dd->selectedindex;
+}
+
+/*
+ * Fetch the pointer to a deck's selected (visible) element.
+ */
+win32_element_t * win32_deck_get_selectedpanel(win32_element_t *deck) {
+    deck_data_t *dd;
+
+    win32_element_assert(deck);
+    dd = (deck_data_t *) win32_element_get_data(deck, WIN32_DECK_DATA);
+
+    return dd->selectedpanel;
+}
+
+
+/*
+ * Private routines
+ */
+
+static void
+win32_deck_destroy(win32_element_t *deck, gboolean destroy_window) {
+    deck_data_t *dd;
+
+    win32_element_assert(deck);
+
+    dd = (deck_data_t *) win32_element_get_data(deck, WIN32_DECK_DATA);
+    g_free(dd);
+
+    /* Deck contents are destroyed by win32_element_destory() */
+}
+
+static LRESULT CALLBACK
+win32_deck_wnd_proc(HWND hw_deck, UINT msg, WPARAM w_param, LPARAM l_param) {
+
+    switch (msg) {
+	case WM_COMMAND:
+	    win32_element_handle_wm_command(msg, w_param, l_param);
+	    break;
+	default:
+	    return(DefWindowProc(hw_deck, msg, w_param, l_param));
+    }
+    return 0;
+}
diff -x entries -urN ethereal/xulender/win32-c-sdk/stdelements/win32-deck.h ethereal-win32/xulender/win32-c-sdk/stdelements/win32-deck.h
--- ethereal/xulender/win32-c-sdk/stdelements/win32-deck.h	1969-12-31 18:00:00.000000000 -0600
+++ ethereal-win32/xulender/win32-c-sdk/stdelements/win32-deck.h	2004-05-18 16:41:04.000000000 -0500
@@ -0,0 +1,48 @@
+#ifndef __WIN32_DECK_H__
+#define __WIN32_DECK_H__
+
+/*
+ * Create a new deck element.
+ */
+win32_element_t * win32_deck_new(HWND hw_parent);
+
+/*
+ * Resize the contents of the deck.
+ */
+void win32_deck_resize_contents(win32_element_t *deck, int set_width, int set_height);
+
+/*
+ * Find a deck's intrinsic (minimum) width.
+ */
+gint win32_deck_intrinsic_width(win32_element_t *deck);
+
+/*
+ * Find a deck's intrinsic (minimum) height.
+ */
+gint win32_deck_intrinsic_height(win32_element_t *deck);
+
+/*
+ * Set a deck's selected (visible) element given its index number
+ * (starting at 0).
+ */
+void win32_deck_set_selectedindex(win32_element_t *deck, guint index);
+
+/*
+ * Set a deck's selected (visible) element given a pointer to the element.
+ */
+void win32_deck_set_selectedpanel(win32_element_t *deck, win32_element_t *panel);
+
+/*
+ * Fetch a deck's selected (visible) element index, starting from 0.
+ */
+guint win32_deck_get_selectedindex(win32_element_t *deck);
+
+/*
+ * Fetch the pointer to a deck's selected (visible) element.
+ * NOTE: If the selected panel hasn't been set by calling
+ * win32_deck_set_selectedindex() or win32_deck_set_selectedpanel()
+ * the return value will be NULL.
+ */
+win32_element_t * win32_deck_get_selectedpanel(win32_element_t *deck);
+
+#endif /* win32-deck.h */
diff -x entries -urN ethereal/xulender/win32-c-sdk/stdelements/win32-description.c ethereal-win32/xulender/win32-c-sdk/stdelements/win32-description.c
--- ethereal/xulender/win32-c-sdk/stdelements/win32-description.c	1969-12-31 18:00:00.000000000 -0600
+++ ethereal-win32/xulender/win32-c-sdk/stdelements/win32-description.c	2004-05-19 17:11:27.000000000 -0500
@@ -0,0 +1,87 @@
+
+#ifdef HAVE_CONFIG_H
+# include "config.h"
+#endif
+
+#include "globals.h"
+#include "glib.h"
+#include <windows.h>
+#include <windowsx.h>
+#include <commctrl.h>
+
+#include "win32-c-sdk.h"
+
+#include "win32-globals.h"
+#include "win32-util.h"
+
+/*
+ * Create a <description> element, implemented as a static control.
+ */
+
+/*
+ * XXX - Instead of setting the window text, we should handle WM_PAINT
+ * ourselves, so that we can dynamically support different text alignments,
+ * center the text vertically, etc.
+ */
+
+win32_element_t *
+win32_description_new(HWND hw_parent, LPCSTR text) {
+    win32_element_t *description;
+    SIZE             sz;
+
+    g_assert(hw_parent != NULL);
+
+    description = win32_element_new(NULL);
+
+    description->h_wnd = CreateWindow(
+	"STATIC",
+	text,
+	WS_CHILD | WS_VISIBLE,
+	0, 0, 10, 10,
+	hw_parent,
+	NULL,
+	(HINSTANCE) GetWindowLong(hw_parent, GWL_HINSTANCE),
+	(LPSTR) NULL);
+
+    SendMessage(description->h_wnd, WM_SETFONT,
+	(WPARAM) GetStockObject(DEFAULT_GUI_FONT), TRUE);
+
+    win32_get_text_size(description->h_wnd, text, &sz);
+    sz.cx += 4;
+    sz.cy += 2;
+
+    MoveWindow(description->h_wnd, 0, 0, sz.cx, sz.cy, TRUE);
+
+    description->minwidth = sz.cx;
+    description->minheight = sz.cy;
+
+    ShowWindow(description->h_wnd, SW_SHOW);
+    UpdateWindow(description->h_wnd);
+
+    /* Attach the description address to our HWND. */
+    SetWindowLong(description->h_wnd, GWL_USERDATA, (LONG) description);
+
+    return description;
+}
+
+void
+win32_description_apply_styles(win32_element_t *description) {
+    LONG wstyle;
+
+    win32_element_assert(description);
+    wstyle = GetWindowLong(description->h_wnd, GWL_STYLE);
+
+    /* XXX - Handle JUSTIFY */
+    switch (description->text_align) {
+	case CSS_TEXT_ALIGN_RIGHT:
+	    wstyle |= SS_RIGHT;
+	    break;
+	case CSS_TEXT_ALIGN_CENTER:
+	    wstyle |= SS_CENTER;
+	    break;
+	default:
+	    wstyle |= SS_LEFT;
+	    break;
+    }
+    SetWindowLong(description->h_wnd, GWL_STYLE, wstyle);
+}
\ No newline at end of file
diff -x entries -urN ethereal/xulender/win32-c-sdk/stdelements/win32-description.h ethereal-win32/xulender/win32-c-sdk/stdelements/win32-description.h
--- ethereal/xulender/win32-c-sdk/stdelements/win32-description.h	1969-12-31 18:00:00.000000000 -0600
+++ ethereal-win32/xulender/win32-c-sdk/stdelements/win32-description.h	2004-05-19 14:30:23.000000000 -0500
@@ -0,0 +1,8 @@
+#ifndef __WIN32_DESCRIPTION_H__
+#define __WIN32_DESCRIPTION_H__
+
+
+win32_element_t * win32_description_new(HWND, LPCSTR);
+void win32_description_apply_styles(win32_element_t *description);
+
+#endif /* win32-description.h */
diff -x entries -urN ethereal/xulender/win32-c-sdk/stdelements/win32-element.c ethereal-win32/xulender/win32-c-sdk/stdelements/win32-element.c
--- ethereal/xulender/win32-c-sdk/stdelements/win32-element.c	1969-12-31 18:00:00.000000000 -0600
+++ ethereal-win32/xulender/win32-c-sdk/stdelements/win32-element.c	2004-06-23 10:49:37.000000000 -0500
@@ -0,0 +1,414 @@
+
+
+#ifdef HAVE_CONFIG_H
+# include "config.h"
+#endif
+
+#include <windows.h>
+
+#include <glib.h>
+
+#include "win32-c-sdk.h"
+
+#include "win32-globals.h"
+
+static GData *g_identifier_list = NULL;
+
+/*
+ * Routines for managing the global identifier list.
+ */
+
+void
+win32_identifier_init(void) {
+	if (! g_identifier_list)
+		g_datalist_init(&g_identifier_list);
+}
+
+void
+win32_identifier_set_str(const gchar* id, gpointer data) {
+	g_datalist_set_data(&g_identifier_list, id, data);
+}
+
+gpointer
+win32_identifier_get_str(const gchar *id) {
+	return (g_datalist_get_data(&g_identifier_list, id));
+}
+
+void
+win32_identifier_remove_str(const gchar *id) {
+	g_datalist_remove_data(&g_identifier_list, id);
+}
+
+
+win32_element_t *
+win32_element_new(HWND hw_box) {
+    win32_element_t *box;
+
+    box = g_malloc(sizeof(win32_element_t));
+
+    ZeroMemory(box, sizeof(win32_element_t));
+    box->type = BOX_BOX;
+    box->contents = NULL;
+    g_datalist_init(&box->object_data);
+    box->rows = NULL;
+    box->columns = NULL;
+
+    box->h_wnd = hw_box;
+
+    box->id = NULL;
+    box->dir = BOX_DIR_LTR;
+    box->crop = BOX_CROP_NONE;
+    box->flex = 0.0;
+    box->flexgroup = 0;
+
+    box->orient = BOX_ORIENT_HORIZONTAL;
+    box->align = BOX_ALIGN_STRETCH;
+    box->pack = BOX_PACK_START;
+
+    box->padding_top = 0;
+    box->padding_bottom = 0;
+    box->padding_left = 0;
+    box->padding_right = 0;
+
+    box->text_align = CSS_TEXT_ALIGN_LEFT;
+
+    box->maxheight = -1;
+    box->maxwidth = -1;
+    box->minheight = 0;
+    box->minwidth = 0;
+
+    box->frame_top = 0;
+    box->frame_bottom = 0;
+    box->frame_left = 0;
+    box->frame_right = 0;
+
+    box->onchange = NULL;
+    box->oncommand = NULL;
+    box->oninput = NULL;
+
+    box->sortdirection = EL_SORT_NATURAL;
+
+    return box;
+}
+
+void
+win32_element_destroy(win32_element_t *el, gboolean destroy_window) {
+    win32_element_t *cur_el;
+    GList           *contents;
+
+    win32_element_assert(el);
+
+    contents = g_list_first(el->contents);
+    while (contents) {
+	cur_el = (win32_element_t *) contents->data;
+	win32_element_destroy(cur_el, FALSE);
+	contents = g_list_next(contents);
+    }
+    g_list_free(g_list_first(contents));
+
+    if (el->id) {
+	win32_identifier_remove_str(el->id);
+    }
+
+    if (el->destroy) {
+	el->destroy(el);
+    }
+
+    if (el->object_data) {
+	g_datalist_clear(&el->object_data);
+    }
+
+    if (destroy_window && el->h_wnd) {
+	DestroyWindow(el->h_wnd);
+    }
+
+    g_free(el);
+}
+
+/*
+ * Checks that an element is valid, and throws an assertion if it isn't.
+ */
+void
+win32_element_assert(win32_element_t *el) {
+    win32_element_t *hw_el;
+#if 1
+    if (el == NULL) G_BREAKPOINT();
+#else
+    g_assert(el != NULL);
+#endif
+
+#if 1
+    if (el->h_wnd == NULL) G_BREAKPOINT();
+#else
+    g_assert(el->h_wnd != NULL);
+#endif
+
+    hw_el = (win32_element_t *) GetWindowLong(el->h_wnd, GWL_USERDATA);
+#if 1
+    if (el != hw_el) G_BREAKPOINT();
+#else
+    g_assert(el == hw_el);
+#endif
+}
+
+/*
+ * Checks that an HWND has an associated element, and that it is valid.
+ */
+void
+win32_element_hwnd_assert(HWND hwnd) {
+    win32_element_t *hw_el;
+
+    g_assert(hwnd != NULL);
+    hw_el = (win32_element_t *) GetWindowLong(hwnd, GWL_USERDATA);
+    win32_element_assert(hw_el);
+}
+
+void
+win32_element_set_id(win32_element_t *el, gchar *id) {
+    win32_element_assert(el);
+
+    el->id = g_strdup(id);
+    win32_identifier_set_str(el->id, el);
+}
+
+/*
+ * Given an element, return the width of its h_wnd.
+ */
+LONG
+win32_element_get_width(win32_element_t *el) {
+
+    g_assert(el != NULL);
+
+    return win32_element_hwnd_get_width(el->h_wnd);
+}
+
+/*
+ * Given an element's hwnd, return its width.
+ */
+LONG
+win32_element_hwnd_get_width(HWND hwnd) {
+    RECT wr;
+
+    win32_element_hwnd_assert(hwnd);
+    GetWindowRect(hwnd, &wr);
+    return wr.right - wr.left;
+}
+
+/*
+ * Given an element, return the height of its h_wnd.
+ */
+LONG
+win32_element_get_height(win32_element_t *el) {
+    g_assert(el != NULL);
+
+    return win32_element_hwnd_get_height(el->h_wnd);
+}
+
+/*
+ * Given an element's hwnd, return its height.
+ */
+LONG
+win32_element_hwnd_get_height(HWND hwnd) {
+    RECT wr;
+
+    win32_element_hwnd_assert(hwnd);
+    GetWindowRect(hwnd, &wr);
+    return wr.bottom - wr.top;
+}
+
+/*
+ * Given an element, set the width of its h_wnd.
+ */
+void
+win32_element_set_width(win32_element_t *el, int width) {
+    g_assert(el != NULL);
+
+    win32_element_hwnd_set_width(el->h_wnd, width);
+}
+
+/*
+ * Set the width of an element's h_wnd
+ */
+void
+win32_element_hwnd_set_width(HWND hwnd, int width) {
+    RECT wr;
+
+    win32_element_hwnd_assert(hwnd);
+    GetWindowRect(hwnd, &wr);
+    SetWindowPos(hwnd, HWND_TOP, 0, 0, width, wr.bottom - wr.top,
+	SWP_NOACTIVATE | SWP_NOZORDER | SWP_NOMOVE);
+}
+
+/*
+ * Given an element, set the height of its h_wnd.
+ */
+void win32_element_set_height(win32_element_t *el, int height) {
+    g_assert(el != NULL);
+
+    win32_element_hwnd_set_height(el->h_wnd, height);
+}
+
+/*
+ * Set the height of an element's h_wnd
+ */
+void win32_element_hwnd_set_height(HWND hwnd, int height) {
+    RECT wr;
+
+    win32_element_hwnd_assert(hwnd);
+    GetWindowRect(hwnd, &wr);
+    SetWindowPos(hwnd, HWND_TOP, 0, 0, wr.right - wr.left, height,
+	SWP_NOACTIVATE | SWP_NOZORDER | SWP_NOMOVE);
+}
+
+/*
+ * Find an element's intrinsic (minimum) width.
+ */
+gint
+win32_element_intrinsic_width(win32_element_t *el) {
+    gint width, min_width = 0, extra = 0;
+    win32_element_t *cur_el;
+    GList *contents;
+
+    win32_element_assert(el);
+
+    if (el->type == BOX_GRID)
+	return win32_grid_intrinsic_width(el);
+
+    if (el->type == BOX_DECK)
+	return win32_deck_intrinsic_width(el);
+
+    if (el->type == BOX_GROUPBOX)
+	extra = win32_groupbox_extra_width(el);
+
+    if (el->contents == NULL) {
+	min_width = el->minwidth;
+    } else {
+	contents = g_list_first(el->contents);
+	while (contents) {
+	    cur_el = (win32_element_t *) contents->data;
+	    width = win32_element_intrinsic_width(cur_el);
+	    if (el->orient == BOX_ORIENT_HORIZONTAL) {
+		min_width += width;
+	    } else {
+		if (width > min_width)
+		    min_width = width;
+	    }
+	    contents = g_list_next(contents);
+	}
+	min_width += el->frame_left + el->frame_right;
+    }
+    return min_width + extra;
+}
+
+/*
+ * Find an element's intrinsic (minimum) height.
+ */
+gint
+win32_element_intrinsic_height(win32_element_t *el) {
+    gint height, min_height = 0, extra = 0;
+    win32_element_t *cur_el;
+    GList *contents;
+
+    win32_element_assert(el);
+
+    if (el->type == BOX_GRID)
+	return win32_grid_intrinsic_height(el);
+
+    if (el->type == BOX_DECK)
+	return win32_deck_intrinsic_height(el);
+
+    if (el->type == BOX_GROUPBOX)
+	extra = win32_groupbox_extra_height(el);
+
+    if (el->contents == NULL) {
+	min_height = el->minheight;
+    } else {
+	contents = g_list_first(el->contents);
+	while (contents) {
+	    cur_el = (win32_element_t *) contents->data;
+	    height = win32_element_intrinsic_height(cur_el);
+	    if (el->orient == BOX_ORIENT_VERTICAL) {
+		min_height += height;
+	    } else {
+		if (height > min_height)
+		    min_height = height;
+	    }
+	    contents = g_list_next(contents);
+	}
+	min_height += el->frame_top + el->frame_bottom;
+    }
+    return min_height + extra;
+}
+
+
+void
+win32_element_set_data(win32_element_t *el, gchar *id, gpointer data) {
+    g_datalist_set_data(&el->object_data, id, data);
+}
+
+void
+win32_element_hwnd_set_data(HWND hwnd, gchar *id, gpointer data) {
+    win32_element_t *el = (win32_element_t *) GetWindowLong(hwnd, GWL_USERDATA);
+
+    g_assert(el != NULL);
+    g_datalist_set_data(&el->object_data, id, data);
+}
+
+gpointer
+win32_element_get_data(win32_element_t *el, gchar *id) {
+    return (g_datalist_get_data(&el->object_data, id));
+}
+
+gpointer
+win32_element_hwnd_get_data(HWND hwnd, gchar *id) {
+    win32_element_t *el = (win32_element_t *) GetWindowLong(hwnd, GWL_USERDATA);
+
+    g_assert(el != NULL);
+    return (g_datalist_get_data(&el->object_data, id));
+}
+
+gboolean
+win32_element_get_enabled(win32_element_t *el) {
+    LONG el_style;
+
+    win32_element_assert(el);
+    el_style = GetWindowLong(el->h_wnd, GWL_STYLE);
+    return el_style | WS_DISABLED ? FALSE : TRUE;
+}
+
+void
+win32_element_set_enabled(win32_element_t *el, gboolean enabled) {
+
+    win32_element_assert(el);
+    EnableWindow(el->h_wnd, enabled);
+}
+
+void win32_element_handle_wm_command(UINT msg, WPARAM w_param, LPARAM l_param) {
+    win32_element_t *el;
+    RECT dcrect;
+
+    /* onCommand commands */
+    if (HIWORD(w_param) == BN_CLICKED && l_param != NULL) {
+	el = (win32_element_t *) GetWindowLong((HWND) l_param, GWL_USERDATA);
+	win32_element_assert(el);
+	if (el->oncommand != NULL) el->oncommand(el);
+    /* Resize our combobox dropdown boxes */
+    /* XXX - Get the number of items in the list and size accordingly */
+    } else if (HIWORD(w_param) == CBN_DROPDOWN && (
+	    (int) LOWORD(w_param) == ID_COMBOBOX ||
+	    (int) LOWORD(w_param) == ID_MENULIST )) {
+	GetWindowRect((HWND) l_param,  &dcrect);
+	SetWindowPos((HWND) l_param, HWND_TOP, 0, 0, dcrect.right - dcrect.left, 150,
+	    SWP_NOACTIVATE | SWP_NOZORDER | SWP_NOMOVE);
+    /* onInput commands */
+    } else if (HIWORD(w_param) == EN_UPDATE && (int) LOWORD(w_param) == ID_TEXTBOX) {
+	el = (win32_element_t *) GetWindowLong((HWND) l_param, GWL_USERDATA);
+	win32_element_assert(el);
+	if (el->oninput != NULL) el->oninput(el);
+    } else if (HIWORD(w_param) == CBN_SELCHANGE && (int) LOWORD(w_param) == ID_MENULIST) {
+	el = (win32_element_t *) GetWindowLong((HWND) l_param, GWL_USERDATA);
+	win32_element_assert(el);
+	if (el->oncommand != NULL) el->oncommand(el);
+    }
+}
+
diff -x entries -urN ethereal/xulender/win32-c-sdk/stdelements/win32-element.h ethereal-win32/xulender/win32-c-sdk/stdelements/win32-element.h
--- ethereal/xulender/win32-c-sdk/stdelements/win32-element.h	1969-12-31 18:00:00.000000000 -0600
+++ ethereal-win32/xulender/win32-c-sdk/stdelements/win32-element.h	2004-06-17 16:06:58.000000000 -0500
@@ -0,0 +1,285 @@
+#ifndef __WIN32_TYPES_H__
+#define __WIN32_TYPES_H__
+
+/* Corresponds to the "align" element attribute.  BOX_STRETCH is the default. */
+typedef enum {
+    BOX_ALIGN_START,
+    BOX_ALIGN_CENTER,
+    BOX_ALIGN_END,
+    BOX_ALIGN_BASELINE,
+    BOX_ALIGN_STRETCH
+} win32_box_align_t;
+
+/* Corresponds to the "crop" attribute.  BOX_CROP_NONE is the default. */
+typedef enum {
+    BOX_CROP_LEFT,
+    BOX_CROP_RIGHT,
+    BOX_CROP_CENTER,
+    BOX_CROP_NONE
+} win32_box_crop_t;
+
+/* Corresponds to the "dir" element attribute.  BOX_DIR_LTR is the default. */
+typedef enum {
+    BOX_DIR_LTR,	/* Left-to-right / top-to-bottom */
+    BOX_DIR_RTL	/* Right-to-left / bottom-to-top */
+} win32_box_dir_t;
+
+/* Corresponds to the "orient" attribute.  BOX_ORIENT_HORIZONTAL is the default. */
+typedef enum {
+    BOX_ORIENT_HORIZONTAL,
+    BOX_ORIENT_VERTICAL
+    /* XXX - Implement 'inherit' */
+} win32_box_orient_t;
+
+/* Corresponds to the "pack" box attribute.  BOX_PACK_START is the default. */
+typedef enum {
+    BOX_PACK_START,
+    BOX_PACK_CENTER,
+    BOX_PACK_END
+} win32_box_pack_t;
+
+/* Corresponds to the "sortdirection" element attribute.  EL_SORT_NATURAL is the default. */
+typedef enum {
+    EL_SORT_ASCENDING,
+    EL_SORT_DESCENDING,
+    EL_SORT_NATURAL
+} win32_el_sortdirection_t;
+
+
+/* Boxes can contain other boxes, windows (controls) and splitters.
+ * Splitters are special-purpose empty windows.  Under this scheme
+ * element adjacent to a splitter must have a 3-D inset or it will
+ * look funny.
+ */
+/* XXX - This is too simplistic.  Things other than boxes (e.g. frames)
+   can hold other objects.  We need something more like an is_container
+   flag. */
+typedef enum {
+    BOX_BOX,
+    BOX_WINDOW,
+    BOX_SPLITTER,
+    BOX_GRID,
+    BOX_DECK,
+    BOX_GROUPBOX
+} win32_box_element_type_t;
+
+/*
+ * CSS text-align style
+ */
+
+typedef enum {
+    CSS_TEXT_ALIGN_LEFT,
+    CSS_TEXT_ALIGN_RIGHT,
+    CSS_TEXT_ALIGN_CENTER,
+    CSS_TEXT_ALIGN_JUSTIFY,
+} win32_css_text_align_t;
+
+/* Used to register callback functions for a box element */
+/* Callbacks should have the form
+ * LRESULT CALLBACK
+ * callback_proc (
+ * 	HWND hwnd,	// Element/control's HWND
+ * 	UINT u_msg,	// Message identifier
+ * 	WPARAM w_param,	// First message parameter
+ * 	LPARAM l_param	// Second message parameter
+ * );
+ */
+
+typedef struct _win32_element_t win32_element_t;
+
+/* XXX - Should this be a full-blown GObject? */
+typedef struct _win32_element_t {
+    win32_box_element_type_t type;
+    GList *contents;	/* Null for non-boxes */
+    GData *object_data;
+    void (*destroy)();
+
+    /* Data specific to various elements.  If we ever use actual objects,
+     * these should become members of their respective objects. */
+    GPtrArray *rows, *columns; /* Specific to <grid> */
+
+    /* Windows SDK attributes */
+    HWND h_wnd;
+
+    /* XUL element attributes */
+    gchar *id;
+    win32_box_dir_t dir;
+    win32_box_crop_t crop;
+    gfloat flex;
+    gint flexgroup;
+
+    win32_box_orient_t orient;
+    win32_box_align_t align;
+    win32_box_pack_t pack;
+    win32_el_sortdirection_t sortdirection;
+
+    /* CSS attributes */
+    gint padding_top;
+    gint padding_bottom;
+    gint padding_left;
+    gint padding_right;
+
+    win32_css_text_align_t text_align;
+
+    /* h_wnd has current height/width */
+
+    /* Max height/width */
+    gint maxheight;
+    gint maxwidth;
+
+    /* Absolute minimum height/width */
+    gint minheight;
+    gint minwidth;
+
+    /* Frame dimensions - the distance from the outer edge of the box
+     * to the outer edge of the box contents.
+     */
+    gint frame_top;
+    gint frame_bottom;
+    gint frame_left;
+    gint frame_right;
+
+    /* XUL element methods */
+    void (*onchange)();
+    void (*oncommand)();
+    void (*oninput)();
+} win32_element_t;
+
+#define BOX_DEF_SIZE 50
+
+/*
+ * Initialize the identifier list.
+ */
+void win32_identifier_init(void);
+
+/*
+ * Associates a given data pointer to an ID.
+ */
+void win32_identifier_set_str(const gchar*, gpointer);
+
+/*
+ * Given an ID, return its data pointer or NULL if not found.
+ */
+gpointer win32_identifier_get_str(const gchar *);
+
+/*
+ * Removes a data identifier
+ */
+void win32_identifier_remove_str(const gchar *);
+
+/*
+ * Allocates an element and initializes its variables.
+ */
+win32_element_t * win32_element_new(HWND hw_box);
+
+/*
+ * Destroys an element, and optionally destroys its HWND.
+ */
+void win32_element_destroy(win32_element_t *el, gboolean destroy_window);
+
+/*
+ * Checks that an element is valid, and throws an assertion if it isn't.
+ */
+void win32_element_assert(win32_element_t *el);
+
+/*
+ * Checks that an HWND has an associated element, and that it is valid.
+ */
+void win32_element_hwnd_assert(HWND hwnd);
+
+/*
+ * Copies the string "id" and associates it with the given element.
+ */
+void win32_element_set_id(win32_element_t *el, gchar *id);
+
+/*
+ * Given an element, return the width of its h_wnd.
+ */
+LONG win32_element_get_width(win32_element_t *el);
+
+/*
+ * Given an element's hwnd, return its width.
+ */
+LONG win32_element_hwnd_get_width(HWND hwnd);
+
+/*
+ * Given an element, return the height of its h_wnd.
+ */
+LONG win32_element_get_height(win32_element_t *el);
+
+/*
+ * Given an element's hwnd, return its height.
+ */
+LONG win32_element_hwnd_get_height(HWND hwnd);
+
+/*
+ * Given an element, set the width of its h_wnd.
+ */
+void win32_element_set_width(win32_element_t *el, int width);
+
+/*
+ * Set the width of an element's h_wnd
+ */
+void win32_element_hwnd_set_width(HWND hwnd, int width);
+
+/*
+ * Given an element, set the height of its h_wnd.
+ */
+void win32_element_set_height(win32_element_t *el, int height);
+
+/*
+ * Set the height of an element's h_wnd
+ */
+void win32_element_hwnd_set_height(HWND hwnd, int height);
+
+/*
+ * Calculate the intrinsic (minimum) width or height of an element.
+ */
+gint win32_element_intrinsic_width(win32_element_t *el);
+gint win32_element_intrinsic_height(win32_element_t *el);
+
+
+/*
+ * Associates the pointer to "data" to "el", keyed by "id".  NOTE: IDs
+ * beginning with an underscore ("_") are reserved for private use.
+ */
+void win32_element_set_data(win32_element_t *el, gchar *id, gpointer data);
+
+/*
+ * Associates the pointer to "data" to "hwnd"'s element data, keyed by "id".
+ */
+void win32_element_hwnd_set_data(HWND hwnd, gchar *id, gpointer data);
+
+/*
+ * Fetch the data associated with "el" keyed by "id"
+ */
+gpointer win32_element_get_data(win32_element_t *el, gchar *id);
+
+/*
+ * Fetch the data associated with "hwnd"'s element data, keyed by "id"
+ */
+gpointer win32_element_hwnd_get_data(HWND hwnd, gchar *id);
+
+/*
+ * Fetch the active (! disabled) state of an element (true if active).
+ * Disabled elements are shown grayed out and don't respond to events.
+ */
+gboolean win32_element_get_enabled(win32_element_t *el);
+
+/*
+ * Set the active state of an element (false if disabled).
+ */
+/*
+ * XXX - Setting WS_DISABLED on a window only affects that window, and
+ * not its children.  As a result, this isn't very useful in its present
+ * form for compound elements.
+ */
+void win32_element_set_enabled(win32_element_t *el, gboolean active);
+
+/*
+ * Handle WM_COMMAND for various elements.
+ */
+
+void win32_element_handle_wm_command(UINT msg, WPARAM w_param, LPARAM l_param);
+#endif /* win32-element.h */
+
diff -x entries -urN ethereal/xulender/win32-c-sdk/stdelements/win32-grid.c ethereal-win32/xulender/win32-c-sdk/stdelements/win32-grid.c
--- ethereal/xulender/win32-c-sdk/stdelements/win32-grid.c	1969-12-31 18:00:00.000000000 -0600
+++ ethereal-win32/xulender/win32-c-sdk/stdelements/win32-grid.c	2004-06-17 15:33:31.000000000 -0500
@@ -0,0 +1,369 @@
+
+#ifdef HAVE_CONFIG_H
+# include "config.h"
+#endif
+
+#include <windows.h>
+
+#include <glib.h>
+
+#include "win32-c-sdk.h"
+
+#include "win32-globals.h"
+
+
+/*
+ * Grid elements.
+ *
+ * http://www.mozilla.org/projects/xul/layout.html
+ * http://www.xulplanet.com/tutorials/xultu/grids.html
+ *
+ * The Mozilla documentation says that column lines may contain
+ * elements, while the XUL Planet page says that only rows may
+ * contain elements.  The Mozilla model seems a little silly;
+ * with it you can have two elements occupying the same table
+ * cell -- one in the "row" plane and one in the "column" plane.
+ * To make things easier and cleaner we're going with the XUL
+ * Planet specification.  Columns will only be used for layout
+ * hints, e.g. "flex" and "flex-group".
+ */
+
+#define EWC_GRID_PANE "GridPane"
+
+static void win32_grid_destroy(win32_element_t *grid, gboolean destroy_window);
+static LRESULT CALLBACK win32_grid_wnd_proc(HWND, UINT, WPARAM, LPARAM);
+static gint win32_grid_column_intrinsic_width(win32_element_t *grid, guint col);
+static gint win32_grid_row_intrinsic_height(win32_element_t *grid, guint row);
+
+typedef struct _win32_grid_column_t {
+    gfloat flex;
+    gint flexgroup;
+    gint width;
+} win32_grid_column_t;
+
+typedef struct _win32_grid_row_t {
+    gfloat flex;
+    gint flexgroup;
+    gint height;
+    GList *contents;
+} win32_grid_row_t;
+
+
+win32_element_t *
+win32_grid_new(HWND hw_parent) {
+    win32_element_t *grid;
+    HINSTANCE        h_instance = (HINSTANCE) GetWindowLong(hw_parent, GWL_HINSTANCE);
+    WNDCLASS         wc;
+
+    g_assert(hw_parent != NULL);
+
+    grid = win32_element_new(NULL);
+
+    if (! GetClassInfo(h_instance, EWC_GRID_PANE, &wc)) {
+	wc.lpszClassName = EWC_GRID_PANE;
+	wc.lpfnWndProc = win32_grid_wnd_proc;
+	wc.style = CS_HREDRAW | CS_VREDRAW | CS_OWNDC;
+	wc.cbClsExtra = 0;
+	wc.cbWndExtra = 0;
+	wc.hInstance = h_instance;
+	wc.hIcon = NULL;
+	wc.hCursor = LoadCursor(NULL, IDC_ARROW);
+	wc.hbrBackground = (HBRUSH) (COLOR_3DFACE+1);
+	wc.lpszMenuName = NULL;
+
+	RegisterClass(&wc);
+    }
+
+    grid->h_wnd = CreateWindow(
+	EWC_GRID_PANE,
+	EWC_GRID_PANE,
+	WS_CHILD | WS_VISIBLE,
+	0, 0, 0, 0,
+	hw_parent,
+	NULL,
+	h_instance,
+	(LPSTR) NULL);
+
+    ShowWindow(grid->h_wnd, SW_SHOW);
+    UpdateWindow(grid->h_wnd);
+
+    grid->type = BOX_GRID;
+    grid->rows = g_ptr_array_new();
+    grid->columns = g_ptr_array_new();
+    grid->destroy = win32_grid_destroy;
+
+    /* Attach the grid address to our HWND. */
+    SetWindowLong(grid->h_wnd, GWL_USERDATA, (LONG) grid);
+
+    return grid;
+}
+
+void
+win32_grid_add_column(win32_element_t *grid, gfloat flex, gint flexgroup) {
+    win32_grid_column_t *column;
+
+    win32_element_assert(grid);
+    g_assert(grid->type == BOX_GRID);
+    g_assert(grid->columns != NULL);
+
+    column = g_malloc(sizeof(win32_grid_column_t));
+    column->flex = flex;
+    column->flexgroup = flexgroup;
+
+    g_ptr_array_add(grid->columns, column);
+}
+
+void
+win32_grid_add_row(win32_element_t *grid, gfloat flex, gint flexgroup) {
+    win32_grid_row_t *row;
+
+    win32_element_assert(grid);
+    g_assert(grid->type == BOX_GRID);
+    g_assert(grid->rows != NULL);
+
+    row = g_malloc(sizeof(win32_grid_row_t));
+    row->flex = flex;
+    row->flexgroup = flexgroup;
+    row->contents = NULL;
+
+    g_ptr_array_add(grid->rows, row);
+}
+
+/*
+ * Add an abitrary element to a grid.
+ */
+void
+win32_grid_add(win32_element_t *grid, win32_element_t *grid_el) {
+    win32_grid_row_t *row_data;
+
+    win32_element_assert(grid);
+    g_assert(grid->type == BOX_GRID);
+    g_assert(grid->rows != NULL);
+    g_assert(grid->rows->len > 0);
+    g_assert(grid->columns != NULL);
+    win32_element_assert(grid_el);
+
+    row_data = g_ptr_array_index(grid->rows, grid->rows->len - 1);
+    g_assert(g_list_length(row_data->contents) < grid->columns->len);
+    row_data->contents = g_list_append(row_data->contents, grid_el);
+}
+
+/*
+ * Resize the contents of the grid.  This is meant to be called from
+ * win32_element_resize() after the grid's HWND has been resized; therefore
+ * we only handle the grid's contents and not the grid's HWND.
+ */
+void
+win32_grid_resize_contents(win32_element_t *grid, int set_width, int set_height) {
+    int                  x, y, fixed_dim = 0, flex_dim;
+    win32_element_t     *cur_el;
+    guint                cur_row, cur_col;
+    gfloat               total_flex = 0;
+    win32_grid_row_t    *row_data;
+    win32_grid_column_t *col_data;
+
+    win32_element_assert(grid);
+    if (grid->rows == NULL || grid->columns == NULL) {
+	return;
+    }
+
+    /* Pass 1: Collect our flex/fixed width values */
+    for (cur_col = 0; cur_col < grid->columns->len; cur_col++) {
+	col_data = g_ptr_array_index(grid->columns, cur_col);
+	col_data->width = win32_grid_column_intrinsic_width(grid, cur_col);
+	total_flex += col_data->flex;
+	if (col_data->flex == 0.0) {
+	    fixed_dim += col_data->width;
+	}
+    }
+
+    flex_dim = set_width - fixed_dim;
+
+    /* Pass 2: Adjust our flexible column widths */
+    for (cur_col = 0; cur_col < grid->columns->len; cur_col++) {
+	col_data = g_ptr_array_index(grid->columns, cur_col);
+	if (col_data->flex > 0.0 && total_flex > 0.0) {
+	    col_data->width = (int) (col_data->flex * flex_dim / total_flex);
+	}
+    }
+
+    /* Pass 3: Collect our flex/fixed height values */
+    fixed_dim = 0;
+    total_flex = 0.0;
+    for (cur_row = 0; cur_row < grid->rows->len; cur_row++) {
+	row_data = g_ptr_array_index(grid->rows, cur_row);
+	row_data->height = win32_grid_row_intrinsic_height(grid, cur_row);
+	total_flex += row_data->flex;
+	if (row_data->flex == 0.0) {
+	    fixed_dim += row_data->height;
+	}
+    }
+
+
+    flex_dim = set_height - fixed_dim;
+    y = grid->frame_top;
+    /* Pass 4: Adjust our flexible row heights and resize each cell */
+    for (cur_row = 0; cur_row < grid->rows->len; cur_row++) {
+	row_data = g_ptr_array_index(grid->rows, cur_row);
+	if (row_data->flex > 0.0 && total_flex > 0.0) {
+	    row_data->height = (int) (row_data->flex * flex_dim / total_flex);
+	}
+	x = grid->frame_left;
+	for (cur_col = 0; cur_col < grid->columns->len; cur_col++) {
+	    col_data = g_ptr_array_index(grid->columns, cur_col);
+	    cur_el = (win32_element_t *) g_list_nth_data(row_data->contents, cur_col);
+	    if (cur_el != NULL) {
+		win32_element_resize(cur_el, col_data->width, row_data->height);
+		win32_element_move(cur_el, x, y);
+	    }
+	    x += col_data->width;
+	}
+	y += row_data->height;
+    }
+}
+
+
+/*
+ * Find a grid's intrinsic (minimum) width.  We do this by finding each
+ * column's intrinsic width, then returning the total.
+ */
+gint
+win32_grid_intrinsic_width(win32_element_t *grid) {
+    gint tot_width = 0;
+    guint cur_col;
+
+    win32_element_assert(grid);
+    if (grid->rows == NULL || grid->columns == NULL) {
+	return 0;
+    }
+
+    for (cur_col = 0; cur_col < grid->columns->len; cur_col++) {
+	tot_width += win32_grid_column_intrinsic_width(grid, cur_col);
+    }
+    return tot_width + grid->frame_left + grid->frame_right;
+}
+
+
+
+/*
+ * Find a grid's intrinsic (minimum) height.
+ */
+gint
+win32_grid_intrinsic_height(win32_element_t *grid) {
+    gint tot_height = 0;
+    guint cur_row;
+
+    win32_element_assert(grid);
+    if (grid->rows == NULL || grid->columns == NULL) {
+	return 0;
+    }
+
+    for (cur_row = 0; cur_row < grid->rows->len; cur_row++) {
+	tot_height += win32_grid_row_intrinsic_height(grid, cur_row);
+    }
+    return tot_height + grid->frame_top + grid->frame_bottom;
+}
+
+
+
+/*
+ * Private routines
+ */
+
+static void
+win32_grid_destroy(win32_element_t *grid, gboolean destroy_window) {
+    win32_element_t  *cur_el;
+    win32_grid_row_t *row_data;
+    GList *contents;
+    guint cur_row;
+
+    win32_element_assert(grid);
+
+    for (cur_row = 0; cur_row < grid->rows->len; cur_row++) {
+	row_data = g_ptr_array_index(grid->rows, cur_row);
+	contents = g_list_first(row_data->contents);
+	while (contents != NULL) {
+	    cur_el = (win32_element_t *) contents->data;
+	    win32_element_destroy(cur_el, FALSE);
+	    contents = g_list_next(contents);
+	}
+	g_list_free(g_list_first(contents));
+    }
+    g_ptr_array_free(grid->rows, TRUE);
+    g_ptr_array_free(grid->columns, TRUE);
+}
+
+static LRESULT CALLBACK
+win32_grid_wnd_proc(HWND hw_grid, UINT msg, WPARAM w_param, LPARAM l_param) {
+
+    switch (msg) {
+	case WM_COMMAND:
+	    win32_element_handle_wm_command(msg, w_param, l_param);
+	    break;
+	default:
+	    return(DefWindowProc(hw_grid, msg, w_param, l_param));
+    }
+    return 0;
+}
+
+/*
+ * Find a grid column's intrinsic (minimum) width.
+ */
+static gint
+win32_grid_column_intrinsic_width(win32_element_t *grid, guint col) {
+    gint col_width, el_width;
+    win32_element_t *cur_el;
+    guint cur_row;
+    win32_grid_row_t *row_data;
+    GList *contents;
+
+    win32_element_assert(grid);
+    if (grid->rows == NULL || grid->columns == NULL || grid->columns->len < col) {
+	return 0;
+    }
+
+    col_width = 0;
+    for (cur_row = 0; cur_row < grid->rows->len; cur_row++) {
+	row_data = g_ptr_array_index(grid->rows, cur_row);
+	contents = g_list_first(row_data->contents);
+	g_assert(g_list_length(contents) == grid->columns->len);
+	cur_el = (win32_element_t *) g_list_nth_data(contents, col);
+	if (cur_el != NULL) {
+	    el_width = win32_element_intrinsic_width(cur_el);
+	    if (el_width > col_width)
+		col_width = el_width;
+	}
+    }
+    return col_width;
+}
+
+/*
+ * Find a grid row's intrinsic (minimum) height.
+ */
+gint
+win32_grid_row_intrinsic_height(win32_element_t *grid, guint row) {
+    gint row_height, el_height;
+    win32_element_t *cur_el;
+    guint cur_col;
+    win32_grid_row_t *row_data;
+    GList *contents;
+
+    win32_element_assert(grid);
+    if (grid->rows == NULL || grid->columns == NULL || grid->rows->len < row) {
+	return 0;
+    }
+    row_data = g_ptr_array_index(grid->rows, row);
+    contents = g_list_first(row_data->contents);
+    g_assert(g_list_length(contents) == grid->columns->len);
+
+    row_height = 0;
+    for (cur_col = 0; cur_col < grid->columns->len; cur_col++) {
+	cur_el = (win32_element_t *) g_list_nth_data(contents, cur_col);
+	if (cur_el != NULL) {
+	    el_height = win32_element_intrinsic_height(cur_el);
+	    if (el_height > row_height)
+		row_height = el_height;
+	}
+    }
+    return row_height;
+}
diff -x entries -urN ethereal/xulender/win32-c-sdk/stdelements/win32-grid.h ethereal-win32/xulender/win32-c-sdk/stdelements/win32-grid.h
--- ethereal/xulender/win32-c-sdk/stdelements/win32-grid.h	1969-12-31 18:00:00.000000000 -0600
+++ ethereal-win32/xulender/win32-c-sdk/stdelements/win32-grid.h	2004-04-20 09:57:15.000000000 -0500
@@ -0,0 +1,39 @@
+#ifndef __WIN32_GRID_H__
+#define __WIN32_GRID_H__
+
+/*
+ * Create a new grid element.
+ */
+win32_element_t * win32_grid_new(HWND hw_parent);
+
+/*
+ * Add a column
+ */
+void win32_grid_add_column(win32_element_t *grid, gfloat flex, gint flexgroup);
+
+/*
+ * Add a row
+ */
+void win32_grid_add_row(win32_element_t *grid, gfloat flex, gint flexgroup);
+
+/*
+ * Add an arbitrary element to the most recently-added row.
+ */
+void win32_grid_add(win32_element_t *grid, win32_element_t *grid_el);
+
+/*
+ * Resize the contents of the grid.
+ */
+void win32_grid_resize_contents(win32_element_t *grid, int set_width, int set_height);
+
+/*
+ * Find a grid's intrinsic (minimum) width
+ */
+gint win32_grid_intrinsic_width(win32_element_t *grid);
+
+/*
+ * Find a grid's intrinsic (minimum) height
+ */
+gint win32_grid_intrinsic_height(win32_element_t *grid);
+
+#endif /* win32-grid.h */
diff -x entries -urN ethereal/xulender/win32-c-sdk/stdelements/win32-groupbox.c ethereal-win32/xulender/win32-c-sdk/stdelements/win32-groupbox.c
--- ethereal/xulender/win32-c-sdk/stdelements/win32-groupbox.c	1969-12-31 18:00:00.000000000 -0600
+++ ethereal-win32/xulender/win32-c-sdk/stdelements/win32-groupbox.c	2004-06-17 15:18:46.000000000 -0500
@@ -0,0 +1,236 @@
+
+#ifdef HAVE_CONFIG_H
+# include "config.h"
+#endif
+
+#include "globals.h"
+#include "glib.h"
+#include <windows.h>
+#include <windowsx.h>
+#include <commctrl.h>
+
+#include "win32-c-sdk.h"
+
+#include "win32-globals.h"
+#include "win32-util.h"
+
+static void win32_groupbox_destroy(win32_element_t *groupbox, gboolean destroy_window);
+static LRESULT CALLBACK win32_groupbox_wnd_proc(HWND hw_groupbox, UINT msg, WPARAM w_param, LPARAM l_param);
+static LRESULT CALLBACK win32_container_wnd_proc(HWND hw_container, UINT msg, WPARAM w_param, LPARAM l_param);
+
+/* Structures */
+
+typedef struct _groupbox_data_t {
+    HWND container;
+    gint pad_top;
+    gint pad_bottom;
+    gint pad_left;
+    gint pad_right;
+} groupbox_data_t;
+
+static WNDPROC g_groupbox_wnd_proc = NULL;
+
+#define WIN32_GROUPBOX_DATA "_win32_groupbox_data"
+
+#define WIN32_GROUPBOX_PANE "GroupboxPane"
+
+/*
+ * XXX - BS_GROUPBOX windows are horrible about eating system messages.
+ * In order to work around this, win32-c-sdk.py adds a <vbox> to any
+ * <groupbox> it creates.  We fix the issue here at some point.
+ */
+
+/*
+ * Create a Button control with a BS_GROUPBOX style.
+ */
+
+win32_element_t *
+win32_groupbox_new(HWND hw_parent) {
+    win32_element_t *groupbox;
+    WNDCLASS         wc;
+    groupbox_data_t *gd;
+    SIZE             sz;
+
+    g_assert(hw_parent != NULL);
+
+    groupbox = win32_element_new(NULL);
+
+    /* Groupboxes are actually buttons with the BS_GROUPBOX style
+     * applied.  One has to wonder what the path from button to
+     * groupbox was within Microsoft.
+     */
+    groupbox->h_wnd = CreateWindow(
+	"BUTTON",
+	"",
+	WS_CHILD | WS_VISIBLE | BS_GROUPBOX,
+	0, 0, 0, 0,
+	hw_parent,
+	(HMENU) ID_GROUPBOX,
+	(HINSTANCE) GetWindowLong(hw_parent, GWL_HINSTANCE),
+	(LPSTR) NULL);
+
+    SendMessage(groupbox->h_wnd, WM_SETFONT,
+	(WPARAM) GetStockObject(DEFAULT_GUI_FONT), TRUE);
+
+    ShowWindow(groupbox->h_wnd, SW_SHOW);
+    UpdateWindow(groupbox->h_wnd);
+
+    groupbox->orient = BOX_ORIENT_VERTICAL;
+    groupbox->type = BOX_GROUPBOX;
+    groupbox->destroy = win32_groupbox_destroy;
+
+    /* Attach the box address to our HWND. */
+    SetWindowLong(groupbox->h_wnd, GWL_USERDATA, (LONG) groupbox);
+
+    win32_get_text_size(groupbox->h_wnd, "ABC123xyz", &sz);
+    gd = g_malloc(sizeof(groupbox_data_t));
+    gd->pad_top = sz.cy + 1;
+    gd->pad_bottom = 2;
+    gd->pad_left = 2;
+    gd->pad_right = 2;
+    /*
+     * The groupbox (which is really a button) control is bad about eating
+     * events that it encounters.  We swap out the wndprocs in order to
+     * properly handle events.
+     */
+    if (g_groupbox_wnd_proc == NULL) {
+	g_groupbox_wnd_proc = (WNDPROC) GetWindowLong(groupbox->h_wnd, GWL_WNDPROC);
+    }
+    SetWindowLong(groupbox->h_wnd, GWL_WNDPROC, (LONG) win32_groupbox_wnd_proc);
+    win32_element_set_data(groupbox, WIN32_GROUPBOX_DATA, gd);
+
+    /* Create our container sub-window */
+    wc.lpszClassName = WIN32_GROUPBOX_PANE;
+    wc.lpfnWndProc = win32_container_wnd_proc;
+    wc.style = CS_HREDRAW | CS_VREDRAW | CS_OWNDC;
+    wc.cbClsExtra = 0;
+    wc.cbWndExtra = 0;
+    wc.hInstance = (HINSTANCE) GetWindowLong(hw_parent, GWL_HINSTANCE);
+    wc.hIcon = NULL;
+    wc.hCursor = LoadCursor(NULL, IDC_ARROW);
+    wc.hbrBackground = (HBRUSH) (COLOR_3DFACE+1);
+    wc.lpszMenuName = NULL;
+
+    RegisterClass(&wc);
+
+    gd->container = CreateWindowEx(
+	0,
+	WIN32_GROUPBOX_PANE,
+	WIN32_GROUPBOX_PANE,
+	WS_CHILD | WS_VISIBLE,
+	0, 0, 0, 0,
+	groupbox->h_wnd,
+	NULL,
+	(HINSTANCE) GetWindowLong(hw_parent, GWL_HINSTANCE),
+	NULL);
+
+    ShowWindow(gd->container, SW_SHOW);
+    UpdateWindow(gd->container);
+
+    return groupbox;
+}
+
+/*
+ * Move a child from the BS_GROUPBOX window to the container window.
+ */
+void
+win32_groupbox_reparent(win32_element_t *groupbox, win32_element_t *groupbox_el) {
+    groupbox_data_t *gd;
+
+    win32_element_assert(groupbox);
+    win32_element_assert(groupbox_el);
+
+    gd = (groupbox_data_t *) win32_element_get_data(groupbox, WIN32_GROUPBOX_DATA);
+
+    SetParent(groupbox_el->h_wnd, gd->container);
+
+}
+
+void
+win32_groupbox_set_title(win32_element_t *box, char *title) {
+    SetWindowText(box->h_wnd, title);
+}
+
+/*
+ * Return the extra width needed for padding.
+ */
+gint
+win32_groupbox_extra_width(win32_element_t *groupbox) {
+    groupbox_data_t *gd;
+
+    win32_element_assert(groupbox);
+    gd = (groupbox_data_t *) win32_element_get_data(groupbox, WIN32_GROUPBOX_DATA);
+
+    return gd->pad_left + gd->pad_right;
+}
+
+/*
+ * Return the extra height needed for padding.
+ */
+gint
+win32_groupbox_extra_height(win32_element_t *groupbox) {
+    groupbox_data_t *gd;
+
+    win32_element_assert(groupbox);
+    gd = (groupbox_data_t *) win32_element_get_data(groupbox, WIN32_GROUPBOX_DATA);
+
+    return gd->pad_top + gd->pad_bottom;
+}
+
+static LRESULT CALLBACK
+win32_groupbox_wnd_proc(HWND hw_groupbox, UINT msg, WPARAM w_param, LPARAM l_param) {
+    win32_element_t *groupbox;
+    groupbox_data_t *gd;
+    RECT             cr;
+    POINT            pt;
+
+    groupbox = (win32_element_t *) GetWindowLong(hw_groupbox, GWL_USERDATA);
+
+    switch (msg) {
+	case WM_SIZE:
+	    win32_element_assert(groupbox);
+	    gd = (groupbox_data_t *) win32_element_get_data(groupbox, WIN32_GROUPBOX_DATA);
+	    GetWindowRect(hw_groupbox, &cr);
+	    pt.x = 0; pt.y = 0;
+	    ScreenToClient(hw_groupbox, &pt);
+	    OffsetRect(&cr, pt.x, pt.y);
+	    cr.top += gd->pad_top;
+	    cr.left += gd->pad_left;
+	    cr.bottom -= gd->pad_bottom;
+	    cr.right -= gd->pad_right;
+	    MoveWindow(gd->container, cr.left, cr.top, cr.right - cr.left, cr.bottom - cr.top, TRUE);
+	    break;
+	default:
+	    return(CallWindowProc(g_groupbox_wnd_proc, hw_groupbox, msg, w_param, l_param));
+    }
+    return(CallWindowProc(g_groupbox_wnd_proc, hw_groupbox, msg, w_param, l_param));
+}
+
+/*
+ * Private routines
+ */
+
+static void
+win32_groupbox_destroy(win32_element_t *groupbox, gboolean destroy_window) {
+    groupbox_data_t *gd;
+
+    win32_element_assert(groupbox);
+
+    gd = (groupbox_data_t *) win32_element_get_data(groupbox, WIN32_GROUPBOX_DATA);
+    DestroyWindow(gd->container);
+    g_free(gd);
+}
+
+static LRESULT CALLBACK
+win32_container_wnd_proc(HWND hw_container, UINT msg, WPARAM w_param, LPARAM l_param) {
+
+    switch (msg) {
+	case WM_COMMAND:
+	    win32_element_handle_wm_command(msg, w_param, l_param);
+	    break;
+	default:
+	    return(DefWindowProc(hw_container, msg, w_param, l_param));
+    }
+    return 0;
+}
+
diff -x entries -urN ethereal/xulender/win32-c-sdk/stdelements/win32-groupbox.h ethereal-win32/xulender/win32-c-sdk/stdelements/win32-groupbox.h
--- ethereal/xulender/win32-c-sdk/stdelements/win32-groupbox.h	1969-12-31 18:00:00.000000000 -0600
+++ ethereal-win32/xulender/win32-c-sdk/stdelements/win32-groupbox.h	2004-06-11 17:30:04.000000000 -0500
@@ -0,0 +1,22 @@
+#ifndef __WIN32_GROUPBOX_H__
+#define __WIN32_GROUPBOX_H__
+
+
+win32_element_t * win32_groupbox_new(HWND);
+/*
+ * Move a child from the BS_GROUPBOX window to the container window.
+ */
+void win32_groupbox_reparent(win32_element_t *groupbox, win32_element_t *groupbox_el);
+
+void win32_groupbox_set_title(win32_element_t *gb, char *title);
+/*
+ * Return the extra width needed for padding.
+ */
+gint win32_groupbox_extra_width(win32_element_t *groupbox);
+/*
+ * Return the extra height needed for padding.
+ */
+gint win32_groupbox_extra_height(win32_element_t *groupbox);
+
+
+#endif /* win32-groupbox.h */
diff -x entries -urN ethereal/xulender/win32-c-sdk/stdelements/win32-listbox.c ethereal-win32/xulender/win32-c-sdk/stdelements/win32-listbox.c
--- ethereal/xulender/win32-c-sdk/stdelements/win32-listbox.c	1969-12-31 18:00:00.000000000 -0600
+++ ethereal-win32/xulender/win32-c-sdk/stdelements/win32-listbox.c	2004-06-17 10:18:02.000000000 -0500
@@ -0,0 +1,619 @@
+/*
+ *
+ * XXX - The XULPlanet docs say that list columns can be separated by splitters
+ *       to make them adjustable.  Do we implement this?
+ *
+ */
+
+
+#ifdef HAVE_CONFIG_H
+# include "config.h"
+#endif
+
+#ifdef HAVE_LIBPCAP
+#include <pcap.h>
+#endif
+
+#include "globals.h"
+#include "glib.h"
+#include <windows.h>
+#include <windowsx.h>
+#include <commctrl.h>
+
+#include "win32-c-sdk.h"
+
+#include "win32-globals.h"
+#include "win32-util.h"
+
+static void win32_listbox_destroy(win32_element_t *listbox, gboolean destroy_window);
+static LRESULT CALLBACK win32_listbox_wnd_proc(HWND hw_listbox, UINT msg, WPARAM w_param, LPARAM l_param);
+void win32_listbox_resize(HWND hw_listbox);
+void win32_listbox_sort(win32_element_t *listbox);
+
+/* Structures */
+
+typedef struct _listbox_data_t {
+    HWND     listview;
+    gint     num_cols;
+    gint     cur_col;
+    gint     cur_item;
+    gint     last_col_min_width;
+    void     (*onselect)();
+} listbox_data_t;
+
+typedef struct _listrow_data_t {
+    gchar    *id; /* XXX - We only store IDs for the entire row.  Do we need to handle individual cells? */
+    gpointer *data;
+} listrow_data_t;
+
+#define EWC_LISTBOX_PANE "ListboxPane"
+#define WIN32_LISTBOX_DATA "_win32_listbox_data"
+#define MAX_ITEM_TEXT 256
+
+/*
+ * Public routines
+ */
+
+/*
+ * Creates a listview control
+ */
+
+win32_element_t *
+win32_listbox_new(HWND hw_parent, gboolean show_header) {
+    win32_element_t *listbox;
+    WNDCLASS         wc;
+
+    wc.lpszClassName = EWC_LISTBOX_PANE;
+    wc.lpfnWndProc = win32_listbox_wnd_proc;
+    wc.style = CS_HREDRAW | CS_VREDRAW | CS_OWNDC;
+    wc.cbClsExtra = 0;
+    wc.cbWndExtra = 0;
+    wc.hInstance = (HINSTANCE) GetWindowLong(hw_parent, GWL_HINSTANCE);
+    wc.hIcon = NULL;
+    wc.hCursor = LoadCursor(NULL, IDC_ARROW);
+    wc.hbrBackground = (HBRUSH) (COLOR_WINDOWFRAME+1);
+    wc.lpszMenuName = NULL;
+
+    RegisterClass(&wc);
+
+    g_assert(hw_parent != NULL);
+
+    listbox = win32_element_new(NULL);
+    /* This is kind of cheesy, but we need to pass "show_header"
+     * to the window proc somehow so we overload "minwidth". */
+    listbox->minwidth = show_header;
+    listbox->destroy = win32_listbox_destroy;
+
+    CreateWindowEx(
+	0,
+	EWC_LISTBOX_PANE,
+	EWC_LISTBOX_PANE,
+	WS_CHILD | WS_VISIBLE,
+	0, 0, 0, 50,
+	hw_parent,
+	NULL,
+	(HINSTANCE) GetWindowLong(hw_parent, GWL_HINSTANCE),
+	(LPVOID) listbox);
+
+    ShowWindow(listbox->h_wnd, SW_SHOW);
+    UpdateWindow(listbox->h_wnd);
+
+    SetWindowLong(listbox->h_wnd, GWL_USERDATA, (LONG) listbox);
+
+    return listbox;
+}
+
+void
+win32_listbox_clear(win32_element_t *listbox) {
+    listbox_data_t *ld;
+    int             i;
+    LVITEM          item;
+    listrow_data_t *lr;
+
+    win32_element_assert(listbox);
+    ld = (listbox_data_t *) win32_element_get_data(listbox, WIN32_LISTBOX_DATA);
+
+    ld->cur_col = 0;
+    ld->cur_item = 0;
+    ld->last_col_min_width = 0;
+
+    i = ListView_GetNextItem(ld->listview, -1, LVNI_ALL);
+    while (i >= 0) {
+	ZeroMemory(&item, sizeof(item));
+	item.mask = LVIF_PARAM;
+	item.iItem = i;
+	item.iSubItem = 0;
+	if (ListView_GetItem(ld->listview, &item)) {
+	    lr = (listrow_data_t *) item.lParam;
+	    if (lr)
+		g_free(lr);
+	}
+	i = ListView_GetNextItem(ld->listview, i, LVNI_ALL);
+    }
+    SendMessage(ld->listview, WM_SETREDRAW, FALSE, 0);
+    ListView_DeleteAllItems(ld->listview);
+    SendMessage(ld->listview, WM_SETREDRAW, TRUE, 0);
+    for (i = 0; i < ld->num_cols; i++) {
+	ListView_SetColumnWidth(ld->listview, i, 0);
+    }
+}
+
+void
+win32_listbox_add_column(win32_element_t *listbox, gchar *id, gchar *label) {
+    listbox_data_t *ld;
+    LVCOLUMN        col;
+    HWND            header;
+    HDITEM          hdi;
+    SIZE            sz;
+
+    win32_element_assert(listbox);
+    ld = (listbox_data_t *) win32_element_get_data(listbox, WIN32_LISTBOX_DATA);
+    header = ListView_GetHeader(ld->listview);
+
+    win32_get_text_size(header, label, &sz);
+    sz.cx += DIALOG2PIXELX(12);
+    if (sz.cx > ld->last_col_min_width)
+	ld->last_col_min_width = sz.cx;
+
+    ZeroMemory(&col, sizeof(col));
+    col.mask = LVCF_FMT | LVCF_SUBITEM | LVCF_WIDTH;
+    if (label != NULL)
+	col.mask |= LVCF_TEXT;
+    col.pszText = label;
+    col.cchTextMax = lstrlen(label);
+    col.fmt = LVCFMT_LEFT;
+    col.cx = sz.cx;
+    ListView_InsertColumn(ld->listview, ld->num_cols, &col);
+
+    ZeroMemory(&hdi, sizeof(hdi));
+    hdi.mask = HDI_LPARAM;
+    hdi.lParam = (LPARAM) g_strdup(id);
+    Header_SetItem(header, ld->num_cols, &hdi);
+
+    ld->num_cols++;
+}
+
+gint
+win32_listbox_add_item(win32_element_t *listbox, gint row, gchar *id, gchar *text) {
+    listbox_data_t   *ld;
+    LVITEM            item;
+    listrow_data_t   *lr;
+
+    win32_element_assert(listbox);
+    ld = (listbox_data_t *) win32_element_get_data(listbox, WIN32_LISTBOX_DATA);
+
+    lr = g_malloc(sizeof(listrow_data_t));
+    lr->id = g_strdup(id);
+    lr->data = NULL;
+
+    if (ld->num_cols < 1) {
+	win32_listbox_add_column(listbox, NULL, NULL);
+    }
+    ld->cur_col = 0;
+
+    ZeroMemory(&item, sizeof(item));
+    item.mask = TVIF_PARAM;
+    item.lParam = (LPARAM) lr;
+    if (row < 0) {
+	item.iItem = ld->cur_item + 1;
+    } else {
+	item.iItem = row;
+    }
+    item.iSubItem = 0;
+
+    ld->cur_item = ListView_InsertItem(ld->listview, &item);
+
+    if (text != NULL)
+	win32_listbox_add_cell(listbox, id, text);
+
+    return ld->cur_item;
+}
+
+void
+win32_listbox_delete_item(win32_element_t *listbox, gint row) {
+    listbox_data_t *ld;
+    LVITEM          item;
+    listrow_data_t *lr;
+
+    win32_element_assert(listbox);
+    ld = (listbox_data_t *) win32_element_get_data(listbox, WIN32_LISTBOX_DATA);
+
+    ZeroMemory(&item, sizeof(item));
+    item.mask = LVIF_PARAM;
+    item.iItem = row;
+    item.iSubItem = 0;
+    if (ListView_GetItem(ld->listview, &item)) {
+	lr = (listrow_data_t *) item.lParam;
+	if (lr)
+	    g_free(lr);
+    }
+
+    ListView_DeleteItem(ld->listview, row);
+}
+
+void
+win32_listbox_add_cell(win32_element_t *listbox, gchar *id, gchar *text) {
+    listbox_data_t *ld;
+    int             col_width, text_width;
+
+    win32_element_assert(listbox);
+    ld = (listbox_data_t *) win32_element_get_data(listbox, WIN32_LISTBOX_DATA);
+    g_assert(ld->cur_item >= 0);
+
+    ListView_SetItemText(ld->listview, ld->cur_item, ld->cur_col, text);
+
+    col_width = ListView_GetColumnWidth(ld->listview, ld->cur_col);
+    text_width = ListView_GetStringWidth(ld->listview, text);
+    text_width += DIALOG2PIXELX(8);
+    if (ld->cur_col == ld->num_cols - 1 && text_width > ld->last_col_min_width) {
+	ld->last_col_min_width = text_width;
+    }
+    if (text_width > col_width) {
+	ListView_SetColumnWidth(ld->listview, ld->cur_col, text_width);
+    }
+
+    win32_listbox_resize(listbox->h_wnd);
+    ld->cur_col++;
+
+    /* XXX - Sorting at every insert isn't very scalable */
+    if (listbox->sortdirection != EL_SORT_NATURAL) {
+	win32_listbox_sort(listbox);
+    }
+}
+
+/*
+ * Set the text in a particular row/column.
+ */
+void
+win32_listbox_set_text(win32_element_t *listbox, gint row, gint column, gchar *text) {
+    listbox_data_t   *ld;
+    LVITEM            item;
+
+    win32_element_assert(listbox);
+    ld = (listbox_data_t *) win32_element_get_data(listbox, WIN32_LISTBOX_DATA);
+
+    ZeroMemory(&item, sizeof(item));
+    item.mask = LVIF_TEXT;
+    item.iItem = row;
+    item.iSubItem = column;
+    item.pszText = text;
+    item.cchTextMax = lstrlen(text);
+
+    ListView_SetItem(ld->listview, &item);
+}
+
+/*
+ * Get the text in a particular row/column.
+ */
+gchar *
+win32_listbox_get_text(win32_element_t *listbox, gint row, gint column) {
+    listbox_data_t *ld;
+    static gchar    text[MAX_ITEM_TEXT];
+
+    win32_element_assert(listbox);
+    ld = (listbox_data_t *) win32_element_get_data(listbox, WIN32_LISTBOX_DATA);
+
+    text[0] = '\0';
+    ListView_GetItemText(ld->listview, row, column, text, MAX_ITEM_TEXT);
+    if (text[0] == '\0') {
+	return NULL;
+    }
+    return text;
+}
+
+/*
+ * Associate a data pointer with a row.
+ */
+void
+win32_listbox_set_row_data(win32_element_t *listbox, gint row, gpointer data) {
+    listbox_data_t   *ld;
+    LVITEM            item;
+    listrow_data_t   *lr;
+
+    win32_element_assert(listbox);
+    ld = (listbox_data_t *) win32_element_get_data(listbox, WIN32_LISTBOX_DATA);
+
+    ZeroMemory(&item, sizeof(item));
+    item.mask = TVIF_PARAM;
+    item.iItem = row;
+    item.iSubItem = 0;
+
+    if (ListView_GetItem(ld->listview, &item)) {
+	lr = (listrow_data_t *) item.lParam;
+	g_assert(lr != NULL);
+	lr->data = data;
+    }
+}
+
+/*
+ * Fetch the data pointer associated with a row.
+ */
+gpointer
+win32_listbox_get_row_data(win32_element_t *listbox, gint row) {
+    listbox_data_t   *ld;
+    LVITEM            item;
+    listrow_data_t   *lr;
+
+    win32_element_assert(listbox);
+    ld = (listbox_data_t *) win32_element_get_data(listbox, WIN32_LISTBOX_DATA);
+
+    ZeroMemory(&item, sizeof(item));
+    item.mask = TVIF_PARAM;
+    item.iItem = row;
+    item.iSubItem = 0;
+
+    if (ListView_GetItem(ld->listview, &item)) {
+	lr = (listrow_data_t *) item.lParam;
+	g_assert(lr != NULL);
+	return lr->data;
+    } else {
+	return NULL;
+    }
+}
+
+/*
+ * Set the selected row in a listbox.
+ */
+void win32_listbox_set_selected(win32_element_t *listbox, gint row) {
+    listbox_data_t *ld;
+    gint            sel_row = row;
+
+    if (row < 0) {
+	sel_row = 0;
+    }
+
+    if (row >= win32_listbox_get_row_count(listbox)) {
+	sel_row = win32_listbox_get_row_count(listbox) - 1;
+    }
+
+    win32_element_assert(listbox);
+    ld = (listbox_data_t *) win32_element_get_data(listbox, WIN32_LISTBOX_DATA);
+
+    ListView_SetItemState(ld->listview, -1, 0, LVIS_SELECTED);
+    ListView_SetItemState(ld->listview, sel_row, LVIS_SELECTED, LVIS_SELECTED);
+}
+
+/*
+ * Fetch the selected row in a listbox.
+ */
+gint win32_listbox_get_selected(win32_element_t *listbox) {
+    listbox_data_t *ld;
+
+    win32_element_assert(listbox);
+    ld = (listbox_data_t *) win32_element_get_data(listbox, WIN32_LISTBOX_DATA);
+
+    return ListView_GetNextItem(ld->listview, -1, LVNI_SELECTED);
+}
+
+/*
+ * Return the row containing "text" in the specified column.  Return -1
+ * otherwise.
+ */
+gint
+win32_listbox_find_text(win32_element_t *listbox, gint column, gchar *text) {
+    listbox_data_t *ld;
+    LVFINDINFO      lvfi;
+
+    win32_element_assert(listbox);
+    ld = (listbox_data_t *) win32_element_get_data(listbox, WIN32_LISTBOX_DATA);
+
+    lvfi.flags = LVFI_STRING;
+    lvfi.psz   = text;
+    return ListView_FindItem(ld->listview, -1, &lvfi);
+}
+
+/*
+ * Return the number of rows in the listbox.
+ */
+gint win32_listbox_get_row_count(win32_element_t *listbox) {
+    listbox_data_t *ld;
+
+    win32_element_assert(listbox);
+    ld = (listbox_data_t *) win32_element_get_data(listbox, WIN32_LISTBOX_DATA);
+
+    return ListView_GetItemCount(ld->listview);
+}
+
+void
+win32_listbox_minimum_size(win32_element_t *listbox) {
+    listbox_data_t *ld;
+    HWND            header;
+    RECT            ir;
+    LVCOLUMN        col;
+    int             i, oldwidth, oldheight;
+
+    win32_element_assert(listbox);
+    ld = (listbox_data_t *) win32_element_get_data(listbox, WIN32_LISTBOX_DATA);
+    header = ListView_GetHeader(ld->listview);
+
+    oldwidth  = listbox->minwidth;
+    oldheight = listbox->minheight;
+
+    listbox->minwidth = 8;  /* XXX - Just a guess. */
+    listbox->minheight = 0;
+
+    /* XXX - We need to check more than just the first column. */
+
+    if (Header_GetItemRect(header, 0, &ir)) {
+	listbox->minheight += ir.bottom - ir.top;
+    }
+
+    if (listbox->minheight < 1) {
+	listbox->minheight = 50;
+    }
+
+    for (i = 0; i < ld->num_cols; i++) {
+	ZeroMemory(&col, sizeof(col));
+	col.mask = LVCF_WIDTH;
+	ListView_GetColumn(ld->listview, i, &col);
+	listbox->minwidth += col.cx;
+    }
+}
+
+
+void
+win32_listbox_set_onselect(win32_element_t *listbox, void (*selfunc)()) {
+    listbox_data_t *ld;
+
+    win32_element_assert(listbox);
+    ld = (listbox_data_t *) win32_element_get_data(listbox, WIN32_LISTBOX_DATA);
+
+    ld->onselect = selfunc;
+}
+
+
+/*
+ * Private routines
+ */
+
+static void
+win32_listbox_destroy(win32_element_t *listbox, gboolean destroy_window) {
+    listbox_data_t *ld;
+
+    win32_element_assert(listbox);
+    ld = (listbox_data_t *) win32_element_get_data(listbox, WIN32_LISTBOX_DATA);
+
+    win32_listbox_clear(listbox);
+
+    DestroyWindow(ld->listview);
+
+    g_free(ld);
+}
+
+void win32_listbox_resize(HWND hw_listbox) {
+    win32_element_t *listbox = (win32_element_t *) GetWindowLong(hw_listbox, GWL_USERDATA);
+    listbox_data_t  *ld;
+    int              available_width, i;
+    RECT             cr;
+
+    win32_element_assert(listbox);
+    ld = (listbox_data_t *) win32_element_get_data(listbox, WIN32_LISTBOX_DATA);
+
+    GetClientRect(listbox->h_wnd, &cr);
+    MoveWindow(ld->listview, 0, 0, cr.right - cr.left, cr.bottom - cr.top, TRUE);
+    GetClientRect(ld->listview, &cr);
+
+    available_width = cr.right - cr.left;
+    for (i = 0; i < ld->num_cols - 1; i++) {
+	available_width -= ListView_GetColumnWidth(ld->listview, i);
+    }
+    if (available_width > ld->last_col_min_width || ld->num_cols == 1) {
+	ListView_SetColumnWidth(ld->listview, ld->num_cols - 1, available_width);
+    }
+}
+
+static int CALLBACK
+win32_listbox_sort_compare(LPARAM l_param1, LPARAM l_param2, LPARAM l_param_sort) {
+    win32_element_t *listbox = (win32_element_t *) l_param_sort;
+    listbox_data_t  *ld;
+    int              idx, res;
+    LVFINDINFO       lvfi;
+    gchar            text1[MAX_ITEM_TEXT] = "", text2[MAX_ITEM_TEXT] = "";
+
+    ld = (listbox_data_t *) win32_element_get_data(listbox, WIN32_LISTBOX_DATA);
+
+    lvfi.flags = LVFI_PARAM;
+    lvfi.lParam = l_param1;
+    idx = ListView_FindItem(ld->listview, -1, &lvfi);
+    if (idx >= 0) {
+	ListView_GetItemText(ld->listview, idx, 0, text1, MAX_ITEM_TEXT);
+    }
+
+    lvfi.flags = LVFI_PARAM;
+    lvfi.lParam = l_param2;
+    idx = ListView_FindItem(ld->listview, -1, &lvfi);
+    if (idx >= 0) {
+	ListView_GetItemText(ld->listview, idx, 0, text2, MAX_ITEM_TEXT);
+    }
+
+    res = lstrcmp(text1, text2);
+    if (listbox->sortdirection == EL_SORT_DESCENDING) {
+	res *= -1;
+    }
+    return res;
+}
+
+void win32_listbox_sort(win32_element_t *listbox) {
+    listbox_data_t *ld;
+
+    win32_element_assert(listbox);
+    ld = (listbox_data_t *) win32_element_get_data(listbox, WIN32_LISTBOX_DATA);
+
+    ListView_SortItems(ld->listview, win32_listbox_sort_compare, (LPARAM) listbox);
+}
+
+
+static LRESULT CALLBACK
+win32_listbox_wnd_proc(HWND hw_listbox, UINT msg, WPARAM w_param, LPARAM l_param) {
+    win32_element_t *listbox;
+    listbox_data_t  *ld;
+    LPCREATESTRUCT   cs = (LPCREATESTRUCT) l_param;
+    LPNMHDR          nmh;
+    LPNMLISTVIEW     nmlv;
+    LONG             extra_style = LVS_NOCOLUMNHEADER;
+
+    switch (msg) {
+	case WM_CREATE:
+	    /* Attach the treeview address to our HWND. */
+	    listbox = (win32_element_t *) cs->lpCreateParams;
+	    g_assert(listbox != NULL);
+	    listbox->h_wnd = hw_listbox;
+	    SetWindowLong(hw_listbox, GWL_USERDATA, (LONG) listbox);
+
+            if (listbox->minwidth) {
+		extra_style = 0;
+	    }
+
+	    ld = g_malloc(sizeof(listbox_data_t));
+
+	    ld->listview = CreateWindowEx(
+		WS_EX_CLIENTEDGE,
+		WC_LISTVIEW,
+		"",
+		WS_CHILD | WS_VISIBLE |
+		    LVS_REPORT | LVS_SHOWSELALWAYS | LVS_SINGLESEL | extra_style,
+		0, 0, 0, 50,
+		hw_listbox,
+		NULL,
+		(HINSTANCE) GetWindowLong(hw_listbox, GWL_HINSTANCE),
+		NULL);
+
+	    ld->num_cols = 0;
+	    ld->cur_col = 0;
+	    ld->cur_item = 0;
+	    ld->last_col_min_width = 0;
+	    ld->onselect = NULL;
+	    win32_element_set_data(listbox, WIN32_LISTBOX_DATA, ld);
+
+	    ListView_SetExtendedListViewStyle(ld->listview, LVS_EX_FULLROWSELECT);
+
+	    listbox->minwidth = 0;
+	    listbox->minheight = 50;
+
+	    break;
+	case WM_SIZE:
+	    win32_listbox_resize(hw_listbox);
+	    break;
+	case WM_NOTIFY:
+	    nmh = (LPNMHDR) l_param;
+	    switch (nmh->code) {
+		case LVN_ITEMCHANGED:
+		    listbox = (win32_element_t *) GetWindowLong(hw_listbox, GWL_USERDATA);
+		    win32_element_assert(listbox);
+		    ld = (listbox_data_t *) win32_element_get_data(listbox, WIN32_LISTBOX_DATA);
+		    g_assert(ld != NULL);
+		    nmlv = (LPNMLISTVIEW) l_param;
+
+		    if (ld->onselect) {
+			ld->onselect(listbox, nmlv);
+		    }
+		    break;
+		default:
+		    break;
+	    }
+	    break;
+	default:
+	    return(DefWindowProc(hw_listbox, msg, w_param, l_param));
+    }
+    return(DefWindowProc(hw_listbox, msg, w_param, l_param));
+}
diff -x entries -urN ethereal/xulender/win32-c-sdk/stdelements/win32-listbox.h ethereal-win32/xulender/win32-c-sdk/stdelements/win32-listbox.h
--- ethereal/xulender/win32-c-sdk/stdelements/win32-listbox.h	1969-12-31 18:00:00.000000000 -0600
+++ ethereal-win32/xulender/win32-c-sdk/stdelements/win32-listbox.h	2004-06-10 10:07:47.000000000 -0500
@@ -0,0 +1,85 @@
+#ifndef __WIN32_LISTBOX_H__
+#define __WIN32_LISTBOX_H__
+
+/*
+ * Create a listbox element.
+ */
+win32_element_t * win32_listbox_new(HWND hw_parent, gboolean show_header);
+
+/*
+ * Add a column "label" should be NULL for <listcol> and non-NULL for
+ * <listheader>. 
+ */
+void win32_listbox_add_column(win32_element_t *listbox, gchar *id, gchar *label);
+
+/*
+ * Add a listbox item (row).
+ */
+gint win32_listbox_add_item(win32_element_t *listbox, gint row, gchar *id, gchar *text);
+
+/*
+ * Delete a listbox item (row).
+ */
+void win32_listbox_delete_item(win32_element_t *listbox, gint row);
+
+/*
+ * Add a cell to a listbox item.
+ */
+void win32_listbox_add_cell(win32_element_t *listbox, gchar *id, gchar *text);
+
+/*
+ * Set the text in a particular row/column.
+ */
+void win32_listbox_set_text(win32_element_t *listbox, gint row, gint column, gchar *text);
+/*
+ * Get the text in a particular row/column.  Return NULL if not found.
+ */
+gchar * win32_listbox_get_text(win32_element_t *listbox, gint row, gint column);
+
+/*
+ * Associate a data pointer with a row.
+ */
+void win32_listbox_set_row_data(win32_element_t *listbox, gint row, gpointer data);
+
+/*
+ * Fetch the data pointer associated with a row.
+ */
+gpointer win32_listbox_get_row_data(win32_element_t *listbox, gint row);
+
+/*
+ * Set the selected row in a listbox.
+ */
+void win32_listbox_set_selected(win32_element_t *listbox, gint row);
+
+/*
+ * Fetch the selected row in a listbox.
+ */
+gint win32_listbox_get_selected(win32_element_t *listbox);
+
+/*
+ * Find the listbox's minimum size.
+ */
+void win32_listbox_minimum_size(win32_element_t *listbox);
+
+/*
+ * Set the selection callback for a listbox.
+ */
+void win32_listbox_set_onselect(win32_element_t *listbox, void (*selfunc)());
+
+/*
+ * Return the row containing "text" in the specified column.  Return -1
+ * otherwise.
+ */
+gint win32_listbox_find_text(win32_element_t *listbox, gint column, gchar *text);
+
+/*
+ * Return the number of rows in the listbox.
+ */
+gint win32_listbox_get_row_count(win32_element_t *listbox);
+
+/*
+ * Clear all items from the listbox.
+ */
+void win32_listbox_clear(win32_element_t *listbox);
+
+#endif /* win32-listbox.h */
diff -x entries -urN ethereal/xulender/win32-c-sdk/stdelements/win32-menulist.c ethereal-win32/xulender/win32-c-sdk/stdelements/win32-menulist.c
--- ethereal/xulender/win32-c-sdk/stdelements/win32-menulist.c	1969-12-31 18:00:00.000000000 -0600
+++ ethereal-win32/xulender/win32-c-sdk/stdelements/win32-menulist.c	2004-06-11 10:57:31.000000000 -0500
@@ -0,0 +1,185 @@
+
+#ifdef HAVE_CONFIG_H
+# include "config.h"
+#endif
+
+#include <windows.h>
+#include <windowsx.h>
+#include <commctrl.h>
+
+#include "glib.h"
+
+#include "win32-c-sdk.h"
+
+#include "win32-globals.h"
+#include "win32-util.h"
+
+static void win32_menulist_size_adjust(win32_element_t *ml_el, gchar *text);
+
+/*
+ * Create a menulist control.
+ */
+
+win32_element_t *
+win32_menulist_new(HWND hw_parent) {
+    win32_element_t *menulist;
+
+    g_assert(hw_parent != NULL);
+
+    menulist = win32_element_new(NULL);
+
+    menulist->h_wnd = CreateWindow(
+	"COMBOBOX",
+	"MenuList",
+	WS_CHILD | WS_VISIBLE | CBS_DROPDOWNLIST,
+	0, 0, 0, 0,
+	hw_parent,
+	(HMENU) ID_MENULIST,
+	(HINSTANCE) GetWindowLong(hw_parent, GWL_HINSTANCE),
+	(LPSTR) NULL);
+
+    /* Attach the menulist address to our HWND. */
+    SetWindowLong(menulist->h_wnd, GWL_USERDATA, (LONG) menulist);
+
+    SendMessage(menulist->h_wnd, WM_SETFONT,
+	(WPARAM) GetStockObject(DEFAULT_GUI_FONT), TRUE);
+
+    win32_menulist_size_adjust(menulist, "ABCabc");
+
+    ShowWindow(menulist->h_wnd, SW_SHOW);
+    UpdateWindow(menulist->h_wnd);
+
+    return menulist;
+}
+
+/*
+ * Public functions
+ */
+
+/*
+ * Add a menu item
+ */
+void
+win32_menulist_add(win32_element_t *ml_el, gchar *item, gboolean selected) {
+    int  sel;
+    SIZE sz;
+
+    win32_element_assert(ml_el);
+
+    sel = SendMessage(ml_el->h_wnd, CB_ADDSTRING, 0, (LPARAM) (LPCTSTR) item);
+    if (selected)
+	win32_menulist_set_selection(ml_el, sel);
+
+    win32_get_text_size(ml_el->h_wnd, item, &sz);
+    if (sz.cx > ml_el->minwidth)
+	win32_menulist_size_adjust(ml_el, item);
+}
+
+/*
+ * Set the current selection
+ */
+void
+win32_menulist_set_selection(win32_element_t *ml_el, int sel) {
+    win32_element_assert(ml_el);
+
+    SendMessage(ml_el->h_wnd, CB_SETCURSEL, (WPARAM) sel, 0);
+
+    if (ml_el->oncommand != NULL) ml_el->oncommand(ml_el);
+}
+
+/*
+ * Get the current selection
+ */
+int
+win32_menulist_get_selection(win32_element_t *ml_el) {
+    int ret;
+
+    win32_element_assert(ml_el);
+
+    ret = SendMessage(ml_el->h_wnd, CB_GETCURSEL, 0, 0);
+    if (ret == CB_ERR) {
+	return -1;
+    }
+    return ret;
+} 
+
+/*
+ * Get the item string.  Returns NULL if the item is invalid.  Result
+ * must be freed.
+ */
+gchar * win32_menulist_get_string(win32_element_t *ml_el, gint item) {
+    int    len;
+    gchar *str;
+
+    win32_element_assert(ml_el);
+
+    len = SendMessage(ml_el->h_wnd, CB_GETLBTEXT, (WPARAM) item, 0);
+    if (len == CB_ERR) {
+	return NULL;
+    }
+    str = g_malloc(len);
+    len = SendMessage(ml_el->h_wnd, CB_GETLBTEXT, (WPARAM) item, (LPARAM) (LPCSTR) str);
+    if (len == CB_ERR) {
+	g_free(str);
+	return NULL;
+    }
+    return str;
+}
+
+
+/*
+ * Given a string, finds its selection index.  Returns -1 if not found.
+ */
+int win32_menulist_find_string(win32_element_t *ml_el, gchar *str) {
+    LRESULT res;
+
+    win32_element_assert(ml_el);
+
+    if (str == NULL) {
+	return -1;
+    }
+
+    res = SendMessage(ml_el->h_wnd, CB_FINDSTRINGEXACT, (WPARAM) -1, (LPARAM) str);
+    if (res == CB_ERR) {
+	return -1;
+    }
+    return res;
+}
+
+/*
+ * Private functions
+ */
+
+static void
+win32_menulist_size_adjust(win32_element_t *ml_el, gchar *text) {
+    SIZE     sz;
+    LONG     width, height;
+    RECT     mr;
+    POINT    pt;
+    gboolean changed = FALSE;
+
+    win32_element_assert(ml_el);
+
+    GetWindowRect(ml_el->h_wnd, &mr);
+    height = mr.bottom - mr.top;
+
+    /* XXX - There doesn't appear to be a way to get the width of the drop
+     * down tab, so we currently guess. */
+    win32_get_text_size(ml_el->h_wnd, text, &sz);
+    width = sz.cx + DIALOG2PIXELX(22);
+    if (width > ml_el->minwidth) {
+	ml_el->minwidth = width;
+	changed = TRUE;
+    }
+    if (height > ml_el->minheight) {
+	ml_el->minheight = height;
+	changed = TRUE;
+    }
+
+    if (changed) {
+	pt.x = mr.left;
+	pt.y = mr.top;
+	ScreenToClient(GetParent(ml_el->h_wnd), &pt);
+	MoveWindow(ml_el->h_wnd, pt.x, pt.y, width, height, TRUE);
+    }
+}
diff -x entries -urN ethereal/xulender/win32-c-sdk/stdelements/win32-menulist.h ethereal-win32/xulender/win32-c-sdk/stdelements/win32-menulist.h
--- ethereal/xulender/win32-c-sdk/stdelements/win32-menulist.h	1969-12-31 18:00:00.000000000 -0600
+++ ethereal-win32/xulender/win32-c-sdk/stdelements/win32-menulist.h	2004-06-11 10:59:22.000000000 -0500
@@ -0,0 +1,36 @@
+#ifndef __WIN32_MENULIST_H__
+#define __WIN32_MENULIST_H__
+
+#define ID_MENULIST 5005
+
+win32_element_t * win32_menulist_new(HWND);
+
+/*
+ * Add an item to the menu.
+ */
+void win32_menulist_add(win32_element_t *ml_el, gchar *item, gboolean selected);
+
+/*
+ * Set the current selection (starting from zero).  Runs the element's
+ * oncommand() function afterward, if present.
+ */
+void win32_menulist_set_selection(win32_element_t *ml_el, int sel);
+
+/*
+ * Get the current selection (starts from zero).  Returns -1 if there is
+ * no selection.
+ */
+int win32_menulist_get_selection(win32_element_t *ml_el);
+
+/*
+ * Get the item string.  Returns NULL if the item is invalid.  Returned
+ * data must be freed.
+ */
+gchar * win32_menulist_get_string(win32_element_t *ml_el, gint item);
+
+/*
+ * Given a string, finds its selection index.  Returns -1 if not found.
+ */
+int win32_menulist_find_string(win32_element_t *ml_el, gchar *str);
+
+#endif /* win32-menulist.h */
diff -x entries -urN ethereal/xulender/win32-c-sdk/stdelements/win32-progressmeter.c ethereal-win32/xulender/win32-c-sdk/stdelements/win32-progressmeter.c
--- ethereal/xulender/win32-c-sdk/stdelements/win32-progressmeter.c	1969-12-31 18:00:00.000000000 -0600
+++ ethereal-win32/xulender/win32-c-sdk/stdelements/win32-progressmeter.c	2004-05-03 14:57:28.000000000 -0500
@@ -0,0 +1,69 @@
+
+#ifdef HAVE_CONFIG_H
+# include "config.h"
+#endif
+
+#include "globals.h"
+#include "glib.h"
+#include <windows.h>
+#include <windowsx.h>
+#include <commctrl.h>
+
+#include "win32-c-sdk.h"
+
+#include "win32-globals.h"
+#include "win32-util.h"
+
+/*
+ * Create a progressmeter / Progress Bar control.
+ */
+
+win32_element_t *
+win32_progressmeter_new(HWND hw_parent) {
+    win32_element_t *progressmeter;
+
+    g_assert(hw_parent != NULL);
+
+    progressmeter = win32_element_new(NULL);
+
+    progressmeter->h_wnd = CreateWindowEx(
+	0, PROGRESS_CLASS,
+	NULL,
+	WS_CHILD | WS_VISIBLE | PBS_SMOOTH,
+	0, 0, 120, 20,
+	hw_parent,
+	(HMENU) NULL,
+	(HINSTANCE) GetWindowLong(hw_parent, GWL_HINSTANCE),
+	(LPSTR) NULL);
+
+    SendMessage(progressmeter->h_wnd, WM_SETFONT,
+	(WPARAM) GetStockObject(DEFAULT_GUI_FONT), TRUE);
+
+    progressmeter->minwidth = 120;
+    progressmeter->minheight = 20;
+
+    ShowWindow(progressmeter->h_wnd, SW_SHOW);
+    UpdateWindow(progressmeter->h_wnd);
+
+    /* Attach the progressmeter address to our HWND. */
+    SetWindowLong(progressmeter->h_wnd, GWL_USERDATA, (LONG) progressmeter);
+
+    return progressmeter;
+}
+
+/*
+ * XXX - Apparently you can only set PBS_SMOOTH at control creation time.
+ * This means that win32_progressmeter_set_smooth() below doesn't work.
+ */
+
+void
+win32_progressmeter_set_smooth(HWND hwnd, gboolean smooth) {
+    LONG pm_style;
+
+    pm_style = GetWindowLong(hwnd, GWL_STYLE);
+    if (smooth)
+	pm_style |= PBS_SMOOTH;
+    else
+	pm_style &= ~PBS_SMOOTH;
+    SetWindowLong(hwnd, GWL_STYLE, pm_style);
+}
diff -x entries -urN ethereal/xulender/win32-c-sdk/stdelements/win32-progressmeter.h ethereal-win32/xulender/win32-c-sdk/stdelements/win32-progressmeter.h
--- ethereal/xulender/win32-c-sdk/stdelements/win32-progressmeter.h	1969-12-31 18:00:00.000000000 -0600
+++ ethereal-win32/xulender/win32-c-sdk/stdelements/win32-progressmeter.h	2004-05-03 14:37:59.000000000 -0500
@@ -0,0 +1,13 @@
+#ifndef __WIN32_PROGRESSMETER_H__
+#define __WIN32_PROGRESSMETER_H__
+
+
+win32_element_t * win32_progressmeter_new(HWND);
+
+/*
+ * Determines whether a progressmeter is smooth or chunky (the Windows
+ * default) or not.
+ */
+void win32_progressmeter_set_smooth(HWND hwnd, gboolean smooth);
+
+#endif /* win32-progressmeter.h */
diff -x entries -urN ethereal/xulender/win32-c-sdk/stdelements/win32-radio.c ethereal-win32/xulender/win32-c-sdk/stdelements/win32-radio.c
--- ethereal/xulender/win32-c-sdk/stdelements/win32-radio.c	1969-12-31 18:00:00.000000000 -0600
+++ ethereal-win32/xulender/win32-c-sdk/stdelements/win32-radio.c	2004-05-21 16:24:58.000000000 -0500
@@ -0,0 +1,121 @@
+
+#ifdef HAVE_CONFIG_H
+# include "config.h"
+#endif
+
+#include <windows.h>
+#include <windowsx.h>
+#include <commctrl.h>
+
+#include "glib.h"
+
+#include "win32-c-sdk.h"
+
+#include "win32-globals.h"
+#include "win32-util.h"
+
+#define ATTACHED_DATA_ID "_win32_radio_attached_data"
+
+/*
+ * Create a radio control.
+ */
+
+win32_element_t *
+win32_radio_new(HWND hw_parent, LPCSTR label, gboolean group_start) {
+    win32_element_t *radio;
+    SIZE             sz;
+    DWORD            wstyle = WS_CHILD | WS_VISIBLE | BS_AUTORADIOBUTTON;
+
+    g_assert(hw_parent != NULL);
+
+    if (group_start)
+	wstyle |= WS_GROUP;
+
+    radio = win32_element_new(NULL);
+
+    radio->h_wnd = CreateWindow(
+	"BUTTON",
+	label,
+	wstyle,
+	0, 0, 0, 0,
+	hw_parent,
+	(HMENU) NULL,
+	(HINSTANCE) GetWindowLong(hw_parent, GWL_HINSTANCE),
+	(LPSTR) NULL);
+
+    SendMessage(radio->h_wnd, WM_SETFONT,
+	(WPARAM) GetStockObject(DEFAULT_GUI_FONT), TRUE);
+
+    win32_get_text_size(radio->h_wnd, label, &sz);
+    /* XXX - Surely we can do better than this. */
+    sz.cx += DIALOG2PIXELX(15);
+    sz.cy = DIALOG2PIXELY(14);
+    MoveWindow(radio->h_wnd, 0, 0, sz.cx, sz.cy, TRUE);
+
+    radio->minwidth = sz.cx;
+    radio->minheight = sz.cy;
+
+    ShowWindow(radio->h_wnd, SW_SHOW);
+    UpdateWindow(radio->h_wnd);
+
+    /* Attach the radio address to our HWND. */
+    SetWindowLong(radio->h_wnd, GWL_USERDATA, (LONG) radio);
+
+    return radio;
+}
+
+/*
+ * Get the state of a radio
+ */
+gboolean
+win32_radio_get_state(win32_element_t *rd_el) {
+    int state;
+
+    win32_element_assert(rd_el);
+
+    state = SendMessage(rd_el->h_wnd, BM_GETCHECK, 0, 0);
+    return state == BST_CHECKED ? TRUE : FALSE;
+}
+
+/*
+ * Set the state of a radio
+ */
+void
+win32_radio_set_state(win32_element_t *rd_el, gboolean state) {
+    win32_element_assert(rd_el);
+
+    SendMessage(rd_el->h_wnd, BM_SETCHECK,
+	state ? (WPARAM) BST_CHECKED : (WPARAM) BST_UNCHECKED, 0);
+}
+
+/*
+ * Attach a gboolean pointer to a radio.  This is meant to be used
+ * in conjunction with win32_radio_toggle_attached_data(), below.
+ */
+void
+win32_radio_attach_data(win32_element_t *rd_el, gboolean *toggle_val) {
+    win32_element_assert(rd_el);
+
+    win32_element_set_data(rd_el, ATTACHED_DATA_ID, toggle_val);
+
+    SendMessage(rd_el->h_wnd, BM_SETCHECK,
+	*toggle_val ? (WPARAM) BST_CHECKED : (WPARAM) BST_UNCHECKED, 0);
+}
+
+/*
+ * Toggle the variable pointed to by ATTACHED_DATA_ID.  An assertion is
+ * thrown if nothing is associated to ATTACHED_DATA_ID.
+ */
+void
+win32_radio_toggle_attached_data(win32_element_t *rd_el) {
+    gboolean *toggle_val;
+
+    win32_element_assert(rd_el);
+    toggle_val = win32_element_get_data(rd_el, ATTACHED_DATA_ID);
+    g_assert(toggle_val != NULL);
+
+    if (SendMessage(rd_el->h_wnd, BM_GETCHECK, 0, 0) == BST_CHECKED)
+	*toggle_val = TRUE;
+    else
+	*toggle_val = FALSE;
+}
diff -x entries -urN ethereal/xulender/win32-c-sdk/stdelements/win32-radio.h ethereal-win32/xulender/win32-c-sdk/stdelements/win32-radio.h
--- ethereal/xulender/win32-c-sdk/stdelements/win32-radio.h	1969-12-31 18:00:00.000000000 -0600
+++ ethereal-win32/xulender/win32-c-sdk/stdelements/win32-radio.h	2004-05-21 16:24:15.000000000 -0500
@@ -0,0 +1,29 @@
+#ifndef __WIN32_RADIO_H__
+#define __WIN32_RADIO_H__
+
+
+win32_element_t *win32_radio_new(HWND, LPCSTR, gboolean);
+
+/*
+ * Get the state of a radio
+ */
+gboolean win32_radio_get_state(win32_element_t *rd_el);
+
+/*
+ * Set the state of a radio
+ */
+void win32_radio_set_state(win32_element_t *rd_el, gboolean state);
+
+/*
+ * Attach a gboolean pointer to a radio.  This is meant to be used
+ * in conjunction with win32_radio_toggle_attached_data(), below.
+ */
+void win32_radio_attach_data(win32_element_t *rd_el, gboolean *toggle_val);
+
+/*
+ * Toggle the gboolean associated with a radio.  Suitable for
+ * use as an oncommand() routine.
+ */
+void win32_radio_toggle_attached_data(win32_element_t *rd_el);
+
+#endif /* win32-radio.h */
diff -x entries -urN ethereal/xulender/win32-c-sdk/stdelements/win32-spacer.c ethereal-win32/xulender/win32-c-sdk/stdelements/win32-spacer.c
--- ethereal/xulender/win32-c-sdk/stdelements/win32-spacer.c	1969-12-31 18:00:00.000000000 -0600
+++ ethereal-win32/xulender/win32-c-sdk/stdelements/win32-spacer.c	2004-05-17 11:58:25.000000000 -0500
@@ -0,0 +1,47 @@
+
+#ifdef HAVE_CONFIG_H
+# include "config.h"
+#endif
+
+#include "globals.h"
+#include "glib.h"
+#include <windows.h>
+#include <windowsx.h>
+#include <commctrl.h>
+
+#include "win32-c-sdk.h"
+
+#include "win32-globals.h"
+#include "win32-util.h"
+
+/*
+ * Create a <spacer> element, implemented as a static control.
+ */
+
+win32_element_t *
+win32_spacer_new(HWND hw_parent) {
+    win32_element_t *spacer;
+
+    g_assert(hw_parent != NULL);
+
+    spacer = win32_element_new(NULL);
+
+    spacer->h_wnd = CreateWindow(
+	"STATIC",
+	"",
+	WS_CHILD | WS_VISIBLE,
+	0, 0, 0, 0,
+	hw_parent,
+	NULL,
+	(HINSTANCE) GetWindowLong(hw_parent, GWL_HINSTANCE),
+	(LPSTR) NULL);
+
+
+    ShowWindow(spacer->h_wnd, SW_SHOW);
+    UpdateWindow(spacer->h_wnd);
+
+    /* Attach the spacer address to our HWND. */
+    SetWindowLong(spacer->h_wnd, GWL_USERDATA, (LONG) spacer);
+
+    return spacer;
+}
diff -x entries -urN ethereal/xulender/win32-c-sdk/stdelements/win32-spacer.h ethereal-win32/xulender/win32-c-sdk/stdelements/win32-spacer.h
--- ethereal/xulender/win32-c-sdk/stdelements/win32-spacer.h	1969-12-31 18:00:00.000000000 -0600
+++ ethereal-win32/xulender/win32-c-sdk/stdelements/win32-spacer.h	2004-05-17 11:54:51.000000000 -0500
@@ -0,0 +1,7 @@
+#ifndef __WIN32_SPACER_H__
+#define __WIN32_SPACER_H__
+
+
+win32_element_t * win32_spacer_new(HWND);
+
+#endif /* win32-spacer.h */
diff -x entries -urN ethereal/xulender/win32-c-sdk/stdelements/win32-textbox.c ethereal-win32/xulender/win32-c-sdk/stdelements/win32-textbox.c
--- ethereal/xulender/win32-c-sdk/stdelements/win32-textbox.c	1969-12-31 18:00:00.000000000 -0600
+++ ethereal-win32/xulender/win32-c-sdk/stdelements/win32-textbox.c	2004-06-17 09:13:44.000000000 -0500
@@ -0,0 +1,186 @@
+
+#ifdef HAVE_CONFIG_H
+# include "config.h"
+#endif
+
+#include "globals.h"
+#include "glib.h"
+#include <windows.h>
+#include <windowsx.h>
+#include <commctrl.h>
+#include <richedit.h>
+
+#include "win32-c-sdk.h"
+
+#include "win32-globals.h"
+#include "win32-util.h"
+
+static void win32_textbox_destroy(win32_element_t *textbox, gboolean destroy_window);
+static void win32_textbox_minimum_size(win32_element_t *tree);
+
+typedef struct _textbox_data_t {
+    gint rows;
+} textbox_data_t;
+
+#define WIN32_TEXTBOX_DATA "_win32_textbox_data"
+
+/*
+ * Create a textbox control.
+ */
+
+win32_element_t *
+win32_textbox_new(HWND hw_parent, gboolean multiline) {
+    win32_element_t *textbox;
+    textbox_data_t  *td;
+    SIZE             sz;
+    LONG             extra_style = 0;
+
+    if (multiline) {
+	extra_style = ES_MULTILINE;
+    }
+
+    g_assert(hw_parent != NULL);
+
+    textbox = win32_element_new(NULL);
+
+    textbox->h_wnd = CreateWindowEx(
+	WS_EX_CLIENTEDGE,
+	RICHEDIT_CLASS,
+	NULL,
+	WS_CHILD | WS_VISIBLE |
+	ES_AUTOHSCROLL | ES_AUTOVSCROLL | ES_WANTRETURN | extra_style,
+	0, 0, 0, 0,
+	hw_parent,
+	(HMENU) ID_TEXTBOX,
+	(HINSTANCE) GetWindowLong(hw_parent, GWL_HINSTANCE),
+	(LPSTR) NULL);
+
+    SendMessage(textbox->h_wnd, WM_SETFONT,
+	(WPARAM) GetStockObject(DEFAULT_GUI_FONT), TRUE);
+
+    win32_get_text_size(textbox->h_wnd, "ABCabc", &sz);
+    sz.cx += 4;
+    sz.cy += 4;
+    MoveWindow(textbox->h_wnd, 0, 0, sz.cx, sz.cy, TRUE);
+
+    textbox->minwidth = sz.cx;
+    textbox->minheight = sz.cy;
+
+    ShowWindow(textbox->h_wnd, SW_SHOW);
+    UpdateWindow(textbox->h_wnd);
+
+    /* Attach the textbox address to our HWND. */
+    SetWindowLong(textbox->h_wnd, GWL_USERDATA, (LONG) textbox);
+
+    td = g_malloc(sizeof(textbox_data_t));
+    td->rows = 1;
+
+    win32_element_set_data(textbox, WIN32_TEXTBOX_DATA, td);
+
+    return textbox;
+}
+
+/*
+ * Public functions
+ */
+
+void
+win32_textbox_set_text(win32_element_t *textbox, gchar *text) {
+    win32_element_assert(textbox);
+
+    SetWindowText(textbox->h_wnd, text);
+}
+
+gchar *
+win32_textbox_get_text(win32_element_t *textbox) {
+    int len;
+    gchar *text;
+
+    win32_element_assert(textbox);
+
+    len = GetWindowTextLength(textbox->h_wnd) + 1;
+    text = g_malloc(len);
+    GetWindowText(textbox->h_wnd, text, len);
+    return text;
+}
+
+/*
+ * Set the number of rows displayed.
+ */
+void win32_textbox_set_row_count(win32_element_t *textbox, gint rows) {
+    textbox_data_t *td;
+
+    win32_element_assert(textbox);
+    td = (textbox_data_t *) win32_element_get_data(textbox, WIN32_TEXTBOX_DATA);
+
+    td->rows = rows;
+    win32_textbox_minimum_size(textbox);
+}
+
+/*
+ * Get the current character formatting.  If get_sel is TRUE, gets
+ * the formatting of the current selection.  Otherwise the default
+ * format is used.
+ */
+void win32_textbox_get_char_format(win32_element_t *textbox, CHARFORMAT *fmt, gboolean get_sel) {
+    win32_element_assert(textbox);
+
+    SendMessage(textbox->h_wnd, EM_GETCHARFORMAT, (WPARAM) (BOOL) get_sel,
+	(LPARAM) (CHARFORMAT FAR *) fmt);
+}
+
+/*
+ * Insert text at the specified position.  If pos is -1, the text is appended.
+ * If char_fmt is NULL, the default formatting is used.
+ */
+void win32_textbox_insert(win32_element_t *textbox, gchar *text, gint pos, CHARFORMAT *char_fmt) {
+
+    win32_element_assert(textbox);
+
+    SendMessage(textbox->h_wnd, EM_SETSEL, (WPARAM) (INT) pos, (LPARAM) (INT) pos);
+    if (char_fmt) {
+	SendMessage(textbox->h_wnd, EM_SETCHARFORMAT, (WPARAM) (UINT) SCF_SELECTION,
+	    (LPARAM) (CHARFORMAT FAR *) char_fmt);
+    }
+    SendMessage(textbox->h_wnd, EM_REPLACESEL, (WPARAM) (BOOL) FALSE, (LPARAM) (LPCTSTR) text);
+}
+
+/*
+ * Private routines
+ */
+
+static void
+win32_textbox_destroy(win32_element_t *textbox, gboolean destroy_window) {
+    textbox_data_t *td;
+
+    win32_element_assert(textbox);
+    td = (textbox_data_t *) win32_element_get_data(textbox, WIN32_TEXTBOX_DATA);
+
+    g_free(td);
+}
+
+static void
+win32_textbox_minimum_size(win32_element_t *textbox) {
+    textbox_data_t *td;
+    RECT            tr;
+    HDC             hdc;
+    TEXTMETRIC      tm;
+    int             height;
+
+    win32_element_assert(textbox);
+    td = (textbox_data_t *) win32_element_get_data(textbox, WIN32_TEXTBOX_DATA);
+
+    SendMessage(textbox->h_wnd, EM_GETRECT, 0, (LPARAM) &tr);
+
+    hdc = GetDC(textbox->h_wnd);
+    GetTextMetrics(hdc, &tm);
+    ReleaseDC(textbox->h_wnd, hdc);
+
+    height = (tm.tmHeight + tm.tmExternalLeading) * td->rows;
+    if (height > tr.bottom - tr.top) {
+	if (height > textbox->minheight) {
+	    textbox->minheight = height;
+	}
+	win32_element_resize(textbox, win32_element_get_width(textbox), height);
+    }
+}
diff -x entries -urN ethereal/xulender/win32-c-sdk/stdelements/win32-textbox.h ethereal-win32/xulender/win32-c-sdk/stdelements/win32-textbox.h
--- ethereal/xulender/win32-c-sdk/stdelements/win32-textbox.h	1969-12-31 18:00:00.000000000 -0600
+++ ethereal-win32/xulender/win32-c-sdk/stdelements/win32-textbox.h	2004-06-09 15:50:41.000000000 -0500
@@ -0,0 +1,39 @@
+#ifndef __WIN32_TEXTBOX_H__
+#define __WIN32_TEXTBOX_H__
+
+#include <richedit.h>
+
+#define ID_TEXTBOX 5006
+
+win32_element_t *win32_textbox_new(HWND hw_parent, gboolean multiline);
+
+/*
+ * Set the text in a textbox.
+ */
+void win32_textbox_set_text(win32_element_t *textbox, gchar *text);
+
+/*
+ * Get the text in a textbox.  The result is a freshly-allocated string
+ * which must be freed by the caller.
+ */
+gchar * win32_textbox_get_text(win32_element_t *textbox);
+
+/*
+ * Set the number of rows displayed.
+ */
+void win32_textbox_set_row_count(win32_element_t *textbox, gint rows);
+
+/*
+ * Get the current character formatting.  If get_sel is TRUE, gets
+ * the formatting of the current selection.  Otherwise the default
+ * format is used.
+ */
+void win32_textbox_get_char_format(win32_element_t *textbox, CHARFORMAT *char_fmt, gboolean get_sel);
+
+/*
+ * Insert text at the specified position.  If pos is -1, the text is appended.
+ * If char_fmt is NULL, the default formatting is used.
+ */
+void win32_textbox_insert(win32_element_t *textbox, gchar *text, gint pos, CHARFORMAT *char_fmt);
+
+#endif /* win32-textbox.h */
diff -x entries -urN ethereal/xulender/win32-c-sdk/stdelements/win32-tree.c ethereal-win32/xulender/win32-c-sdk/stdelements/win32-tree.c
--- ethereal/xulender/win32-c-sdk/stdelements/win32-tree.c	1969-12-31 18:00:00.000000000 -0600
+++ ethereal-win32/xulender/win32-c-sdk/stdelements/win32-tree.c	2004-07-01 12:53:21.000000000 -0500
@@ -0,0 +1,521 @@
+/*
+ * Tree element.  We need to do the following:
+ * - Provide columns and column headers
+ * - Hide column headers (what do we do if one is hidden, and others aren't?)
+ *   There's an HDS_HIDDEN style, BTW.
+ * - Custom-draw tree items, so that we get columns right
+ * -
+ *
+ * XXX - The XULPlanet docs say that tree columns can be separated by splitters
+ *       to make them adjustable.  Do we implement this?
+ *
+ * Windows doesn't have a multi-column tree control, so we have to
+ * make a custom control using a "tree view" inside a "header".
+ *
+ */
+
+
+#ifdef HAVE_CONFIG_H
+# include "config.h"
+#endif
+
+#ifdef HAVE_LIBPCAP
+#include <pcap.h>
+#endif
+
+#include "globals.h"
+#include "glib.h"
+#include <windows.h>
+#include <windowsx.h>
+#include <commctrl.h>
+
+#include "win32-c-sdk.h"
+
+#include "win32-globals.h"
+#include "win32-util.h"
+
+#include "win32-tree.h"
+
+#include <epan/epan.h>
+#include <epan/filesystem.h>
+#include <epan/epan_dissect.h>
+
+/* Structures */
+
+typedef struct _tree_el_data_t {
+    HWND header;
+    HWND treeview;
+    gboolean hideheader;
+    GList *item_stack;
+    HTREEITEM cur_item;
+    gboolean open_item;
+    void (*onselect)();
+} tree_el_data_t;
+
+static void win32_tree_destroy(win32_element_t *tree, gboolean destroy_window);
+static LRESULT CALLBACK win32_tree_wnd_proc(HWND, UINT, WPARAM, LPARAM);
+static void win32_tree_resize(HWND hw_tree);
+static LRESULT win32_tree_notify(HWND, LPARAM, capture_file *);
+
+#define EWC_TREE_PANE "TreePane"
+#define WIN32_TREE_DATA "_win32_tree_data"
+
+/*
+ * Public routines
+ */
+
+/*
+ * Creates a tree (header + treeview) control
+ */
+
+win32_element_t *
+win32_tree_new(HWND hw_parent) {
+    win32_element_t *tree;
+    WNDCLASS wc;
+
+    wc.lpszClassName = EWC_TREE_PANE;
+    wc.lpfnWndProc = win32_tree_wnd_proc;
+    wc.style = CS_HREDRAW | CS_VREDRAW | CS_OWNDC;
+    wc.cbClsExtra = 0;
+    wc.cbWndExtra = 0;
+    wc.hInstance = (HINSTANCE) GetWindowLong(hw_parent, GWL_HINSTANCE);
+    wc.hIcon = NULL;
+    wc.hCursor = LoadCursor(NULL, IDC_ARROW);
+    wc.hbrBackground = (HBRUSH) (COLOR_WINDOWFRAME+1);
+    wc.lpszMenuName = NULL;
+
+    RegisterClass(&wc);
+
+    g_assert(hw_parent != NULL);
+
+    tree = win32_element_new(NULL);
+
+    CreateWindowEx(
+	WS_EX_CLIENTEDGE,
+	EWC_TREE_PANE,
+	EWC_TREE_PANE,
+	WS_CHILD | WS_VISIBLE,
+	0, 0, 0, 0,
+	hw_parent,
+	NULL,
+	(HINSTANCE) GetWindowLong(hw_parent, GWL_HINSTANCE),
+	(LPVOID) tree);
+
+    ShowWindow(tree->h_wnd, SW_SHOW);
+    UpdateWindow(tree->h_wnd);
+
+    return tree;
+}
+
+void
+win32_tree_clear(HWND hw_tree) {
+    win32_element_t *tree = (win32_element_t *) GetWindowLong(hw_tree, GWL_USERDATA);
+    tree_el_data_t  *td;
+
+    win32_element_assert(tree);
+    td = (tree_el_data_t *) win32_element_get_data(tree, WIN32_TREE_DATA);
+
+    SendMessage(td->treeview, WM_SETREDRAW, FALSE, 0);
+    /* Row and cell data is freed in the wnd_proc */
+    TreeView_DeleteAllItems(td->treeview);
+    SendMessage(td->treeview, WM_SETREDRAW, TRUE, 0);
+}
+
+void
+win32_tree_add_column(win32_element_t *tree, gchar *id, gchar *label,
+	gboolean primary, gboolean hideheader) {
+    tree_el_data_t *td;
+    int             count;
+    LONG            h_style;
+    HDITEM          hdi;
+
+    win32_element_assert(tree);
+    td = (tree_el_data_t *) win32_element_get_data(tree, WIN32_TREE_DATA);
+
+    /* XXX - XUL specifies "hideheader" in individual tree column headers.
+     * This doesn't make sense e.g. what if you had alternating hidden and
+     * visible headers?  If we encounter a hidden column header, we hide
+     * the entire thing. */
+    if (hideheader) {
+	td->hideheader = TRUE;
+	h_style = GetWindowLong(td->header, GWL_STYLE);
+	h_style |= HDS_HIDDEN;
+	SetWindowLong(td->header, GWL_STYLE, h_style);
+    }
+
+    hdi.mask = HDI_TEXT | HDI_FORMAT;
+    hdi.pszText = label;
+    hdi.cchTextMax = lstrlen(label);
+    hdi.fmt = HDF_LEFT | HDF_STRING;
+    hdi.lParam = (LPARAM) g_strdup(id);
+    count = SendMessage(td->header, HDM_GETITEMCOUNT, 0, 0);
+    SendMessage(td->header, HDM_INSERTITEM, (WPARAM) count, (LPARAM) &hdi);
+}
+
+/*
+ * XXX - tree_push() and tree_pop() are lame attempts to get around unused
+ * variable warnings in the automatically generated code.
+ */
+void
+win32_tree_push(win32_element_t *tree) {
+    tree_el_data_t *td;
+
+    win32_element_assert(tree);
+    td = (tree_el_data_t *) win32_element_get_data(tree, WIN32_TREE_DATA);
+
+    td->item_stack = g_list_prepend(td->item_stack, td->cur_item);
+}
+
+void
+win32_tree_pop(win32_element_t *tree) {
+    tree_el_data_t *td;
+
+    win32_element_assert(tree);
+    td = (tree_el_data_t *) win32_element_get_data(tree, WIN32_TREE_DATA);
+
+    td->item_stack = g_list_first(td->item_stack);
+    g_assert(td->item_stack != NULL);
+    td->cur_item = (HTREEITEM) td->item_stack->data;
+    td->item_stack = g_list_remove(td->item_stack, td->cur_item);
+
+    /* The treeitem has to have children in order for this to work, apparently. */
+    if (td->open_item) {
+	SendMessage(td->treeview, TVM_EXPAND, (WPARAM) (UINT) TVE_EXPAND,
+	    (LPARAM) (HTREEITEM) td->cur_item);
+	td->open_item = FALSE;
+    }
+}
+
+void
+win32_tree_flag_open_item(win32_element_t *tree) {
+    tree_el_data_t *td;
+
+    win32_element_assert(tree);
+    td = (tree_el_data_t *) win32_element_get_data(tree, WIN32_TREE_DATA);
+    td->open_item = TRUE;
+}
+
+void
+win32_tree_add_row(win32_element_t *tree, gchar *id) {
+    tree_el_data_t    *td;
+    tree_row          *row;
+    TVITEM             tv_node;
+    TVINSERTSTRUCT     tv_is;
+
+    win32_element_assert(tree);
+    td = (tree_el_data_t *) win32_element_get_data(tree, WIN32_TREE_DATA);
+
+    row = g_malloc(sizeof(tree_row));
+    row->id = g_strdup(id);
+    row->cells = NULL;
+
+    ZeroMemory(&tv_node, sizeof(tv_node));
+    ZeroMemory(&tv_is, sizeof(tv_is));
+    tv_node.mask = TVIF_PARAM;
+    tv_node.lParam = (LONG) row;
+
+    td->item_stack = g_list_first(td->item_stack);
+    if (td->item_stack != NULL)
+	tv_is.hParent = (HTREEITEM) td->cur_item;
+    else
+	tv_is.hParent = TVI_ROOT;
+    tv_is.hInsertAfter = TVI_LAST;
+    tv_is.item = tv_node;
+
+    td->cur_item = (HTREEITEM) SendMessage(td->treeview, TVM_INSERTITEM, 0,
+	(LPARAM) (LPTVINSERTSTRUCT) &tv_is);
+}
+
+void
+win32_tree_add_cell(win32_element_t *tree, gchar *id, gchar *text) {
+    tree_el_data_t *td;
+    tree_row       *row;
+    tree_cell      *cell;
+    TVITEM          tvi;
+
+    win32_element_assert(tree);
+    td = (tree_el_data_t *) win32_element_get_data(tree, WIN32_TREE_DATA);
+    g_assert(td->cur_item != NULL);
+
+    cell = g_malloc(sizeof(tree_cell));
+    cell->id = g_strdup(id);
+    cell->text = g_strdup(text);
+
+    ZeroMemory(&tvi, sizeof(tvi));
+    tvi.mask = TVIF_PARAM;
+    tvi.hItem = td->cur_item;
+    TreeView_GetItem(td->treeview, &tvi);
+    row = (tree_row *) tvi.lParam;
+    row->cells = g_list_append(row->cells, cell);
+}
+
+void
+win32_tree_minimum_size(win32_element_t *tree) {
+    tree_el_data_t *td;
+    RECT            tvir, hir;
+    SIZE            sz;
+    HTREEITEM       item;
+    TVITEM          tvi;
+    tree_row       *row;
+    tree_cell      *cell;
+    gint            width;
+
+    win32_element_assert(tree);
+    td = (tree_el_data_t *) win32_element_get_data(tree, WIN32_TREE_DATA);
+
+    tree->minwidth = 0;
+    tree->minheight = 0;
+
+    /* XXX - We need to check more than just the first column. */
+
+    Header_GetItemRect(td->header, 0, &hir);
+    /* XXX - This returns an abnormal width.  We'll comment it out for now. */
+//    tree->minwidth += hir.right - hir.left;
+    tree->minheight += hir.bottom - hir.top;
+
+    item = TreeView_GetFirstVisible(td->treeview);
+
+    while (item) {
+	tvi.mask = TVIF_PARAM;
+	tvi.hItem = item;
+	TreeView_GetItem(td->treeview, &tvi);
+	row = (tree_row *) tvi.lParam;
+	row->cells = g_list_first(row->cells);
+	g_assert(row->cells != NULL);
+	cell = row->cells->data;
+	g_assert (cell != NULL);
+
+	win32_get_text_size(td->treeview, (LPCSTR) cell->text, &sz);
+
+	TreeView_GetItemRect(td->treeview, item, &tvir, TRUE);
+
+	width = tvir.left + sz.cx + DIALOG2PIXELY(22);
+	if (width > tree->minwidth) {
+	    tree->minwidth = width;
+	}
+	item = TreeView_GetNextVisible(td->treeview, item);
+	if (item)
+	    tree->minheight += TreeView_GetItemHeight(td->treeview);
+    }
+}
+
+void
+win32_tree_set_onselect(win32_element_t *tree, void (*selfunc)()) {
+    tree_el_data_t *td;
+
+    win32_element_assert(tree);
+    td = (tree_el_data_t *) win32_element_get_data(tree, WIN32_TREE_DATA);
+
+    td->onselect = selfunc;
+}
+
+/*
+ * Private routines
+ */
+
+static void
+win32_tree_destroy(win32_element_t *tree, gboolean destroy_window) {
+    tree_el_data_t *td;
+
+    win32_element_assert(tree);
+    td = (tree_el_data_t *) win32_element_get_data(tree, WIN32_TREE_DATA);
+
+    DestroyWindow(td->header);
+    DestroyWindow(td->treeview);
+    g_free(td);
+}
+
+static LRESULT CALLBACK
+win32_tree_wnd_proc(HWND hw_tree, UINT msg, WPARAM w_param, LPARAM l_param) {
+    win32_element_t *tree;
+    tree_el_data_t  *td;
+    tree_row        *row;
+    tree_cell       *cell;
+    HINSTANCE        h_instance = (HINSTANCE) GetWindowLong(hw_tree, GWL_HINSTANCE);
+    LPCREATESTRUCT   cs = (LPCREATESTRUCT) l_param;
+    RECT             pr;
+    HDLAYOUT         hdl;
+    WINDOWPOS        hdl_wpos;
+    LPNMTVCUSTOMDRAW tvcdparam;
+    LPNMHDR          lpnmh;
+    HTREEITEM        item;
+    TVITEM           tvi;
+    TVHITTESTINFO    tvht;
+    DWORD            mpos;
+    gint             tv_width;
+    LPNMTREEVIEW     tv_sel;
+    GList           *cells;
+
+    switch (msg) {
+	case WM_CREATE:
+	    /* Attach the treeview address to our HWND. */
+	    tree = (win32_element_t *) cs->lpCreateParams;
+	    g_assert(tree != NULL);
+	    tree->h_wnd = hw_tree;
+	    SetWindowLong(hw_tree, GWL_USERDATA, (LONG) tree);
+
+	    td = g_malloc(sizeof(tree_el_data_t));
+
+	    td->header = CreateWindowEx(
+		0,
+		WC_HEADER,
+		"",
+		WS_CHILD | WS_TABSTOP | WS_VISIBLE | HDS_HOTTRACK,
+		0, 0, 0, 0,
+		hw_tree,
+		(HMENU) 0,
+		h_instance,
+		NULL);
+	    td->treeview = CreateWindowEx(
+		0,
+		WC_TREEVIEW,
+		"",
+		WS_CHILD | WS_TABSTOP | WS_VISIBLE |
+			TVS_DISABLEDRAGDROP | TVS_HASBUTTONS |
+			TVS_HASLINES | TVS_LINESATROOT | TVS_SHOWSELALWAYS,
+		0, 0, 0, 0,
+		hw_tree,
+		(HMENU) 0,
+		h_instance,
+		NULL);
+	    td->hideheader = FALSE;
+	    td->item_stack = NULL;
+	    td->cur_item = NULL;
+	    td->open_item = FALSE;
+	    td->onselect = NULL;
+	    win32_element_set_data(tree, WIN32_TREE_DATA, td);
+
+	    GetClientRect(hw_tree, &pr);
+	    hdl.prc = &pr;
+	    hdl.pwpos = &hdl_wpos;
+	    SendMessage(td->header, HDM_LAYOUT, 0, (LONG) &hdl);
+	    tree->minwidth = 100;
+	    tree->minheight = hdl_wpos.cy * 3;
+
+	    break;
+	case WM_SIZE:
+	    win32_tree_resize (hw_tree);
+	    break;
+	case WM_NOTIFY:
+	    lpnmh = (LPNMHDR) l_param;
+	    switch (lpnmh->code) {
+		case NM_CUSTOMDRAW: /* We have to draw each column by hand. */
+		    tvcdparam = (LPNMTVCUSTOMDRAW) l_param;
+
+		    switch (tvcdparam->nmcd.dwDrawStage) {
+			case CDDS_PREPAINT:
+			    return CDRF_NOTIFYITEMDRAW;
+			    break;
+			case CDDS_ITEMPREPAINT:
+			    return CDRF_DODEFAULT | CDRF_NOTIFYPOSTPAINT;
+			case CDDS_ITEMPOSTPAINT:
+			    /* Bail if we're updating an empty area */
+			    if (IsRectEmpty(&(tvcdparam->nmcd.rc))) {
+				return CDRF_DODEFAULT;
+			    }
+			    /* Get our cell text list */
+			    item = (HTREEITEM) tvcdparam->nmcd.dwItemSpec;
+			    tvi.mask = TVIF_PARAM;
+			    tvi.hItem = item;
+			    SendMessage(lpnmh->hwndFrom, TVM_GETITEM, 0, (LPARAM) (LPTVITEM) &tvi);
+			    row = (tree_row *) tvi.lParam;
+			    row->cells = g_list_first(row->cells);
+			    /* XXX - We should probably throw an assertion if our list length != the # of columns */
+			    if (row->cells != NULL) {
+				cell = (tree_cell *) row->cells->data;
+				g_assert(cell != NULL);
+				/* XXX - We actually need to loop over all of the items in the GList. */
+				GetClientRect(lpnmh->hwndFrom, &pr);
+				tv_width = pr.right;
+
+				TreeView_GetItemRect(lpnmh->hwndFrom, item, &pr, TRUE);
+				pr.right = tv_width;
+				FillRect(tvcdparam->nmcd.hdc, &pr, (HBRUSH) COLOR_WINDOW + 1);
+				FillRect(tvcdparam->nmcd.hdc, &pr, CreateSolidBrush(tvcdparam->clrTextBk));
+				if (tvcdparam->nmcd.uItemState & CDIS_FOCUS) {
+				    DrawFocusRect(tvcdparam->nmcd.hdc, &pr);
+				}
+				pr.top++; pr.bottom--; pr.left += 2; pr.right -= 2;
+				SetBkColor(tvcdparam->nmcd.hdc, tvcdparam->clrTextBk);
+				SetTextColor(tvcdparam->nmcd.hdc, tvcdparam->clrText);
+				DrawText(tvcdparam->nmcd.hdc, cell->text, -1, &pr, DT_NOPREFIX | DT_END_ELLIPSIS);
+			    }
+
+			    return CDRF_DODEFAULT;
+			    break;
+			default:
+			    return CDRF_DODEFAULT;
+			    break;
+		    }
+		    break;
+		case NM_CLICK:
+		    /* Since we're drawing our own labels, the TreeView provides
+		     * a selection area that's only a couple of pixels wide.  We
+		     * catch clicks to the right of each TreeItem here, and make
+		     * selections as needed.
+		     */
+		    mpos = GetMessagePos();
+		    tvht.pt.x = GET_X_LPARAM(mpos);
+		    tvht.pt.y = GET_Y_LPARAM(mpos);
+		    ScreenToClient(lpnmh->hwndFrom, &(tvht.pt));
+		    item = TreeView_HitTest(lpnmh->hwndFrom, &tvht);
+		    if (item != NULL && tvht.flags & TVHT_ONITEMRIGHT) {
+			TreeView_SelectItem(lpnmh->hwndFrom, item);
+		    }
+		    break;
+		case TVN_SELCHANGED:
+		    tv_sel = (LPNMTREEVIEW) l_param;
+		    tree = (win32_element_t *) GetWindowLong(hw_tree, GWL_USERDATA);
+		    win32_element_assert(tree);
+		    td = (tree_el_data_t *) win32_element_get_data(tree, WIN32_TREE_DATA);
+		    g_assert(td != NULL);
+
+		    if (td->onselect) {
+			td->onselect(tree, tv_sel);
+		    }
+		    break;
+		case TVN_DELETEITEM:
+		    tv_sel = (LPNMTREEVIEW) l_param;
+
+		    row = (tree_row *) tv_sel->itemOld.lParam;
+		    cells = g_list_first(row->cells);
+		    while (cells) {
+			g_free(cells->data);
+			cells = g_list_next(cells);
+		    }
+		    g_list_free(g_list_first(row->cells));
+		    g_free(row);
+		    break;
+		default:
+		    break;
+	    }
+	    break;
+	    return(DefWindowProc(hw_tree, msg, w_param, l_param));
+	default:
+	    return(DefWindowProc(hw_tree, msg, w_param, l_param));
+    }
+    return 0;
+}
+
+static void
+win32_tree_resize(HWND hw_tree) {
+    win32_element_t *tree = (win32_element_t *) GetWindowLong(hw_tree, GWL_USERDATA);
+    tree_el_data_t  *td;
+    RECT             pr;
+    HDLAYOUT         hdl;
+    WINDOWPOS        hdl_wpos;
+
+    win32_element_assert(tree);
+    td = (tree_el_data_t *) win32_element_get_data(tree, WIN32_TREE_DATA);
+
+    GetClientRect(hw_tree, &pr);
+
+    hdl.prc = &pr;
+    hdl.pwpos = &hdl_wpos;
+    SendMessage(td->header, HDM_LAYOUT, 0, (LONG) &hdl);
+
+    SetWindowPos(td->header, hdl_wpos.hwndInsertAfter, hdl_wpos.x, hdl_wpos.y,
+	hdl_wpos.cx, hdl_wpos.cy, hdl_wpos.flags | SWP_SHOWWINDOW);
+    MoveWindow(td->treeview, pr.left, pr.top, pr.right - pr.left,
+	pr.bottom - pr.top, TRUE);
+}
diff -x entries -urN ethereal/xulender/win32-c-sdk/stdelements/win32-tree.h ethereal-win32/xulender/win32-c-sdk/stdelements/win32-tree.h
--- ethereal/xulender/win32-c-sdk/stdelements/win32-tree.h	1969-12-31 18:00:00.000000000 -0600
+++ ethereal-win32/xulender/win32-c-sdk/stdelements/win32-tree.h	2004-06-17 10:20:17.000000000 -0500
@@ -0,0 +1,66 @@
+#ifndef __WIN32_TREE_H__
+#define __WIN32_TREE_H__
+
+typedef struct _tree_row {
+    gchar *id;
+    GList *cells;
+} tree_row;
+
+typedef struct _tree_cell {
+    gchar *id;
+    gchar *text;
+} tree_cell;
+
+/*
+ * Create a tree element.
+ */
+win32_element_t * win32_tree_new(HWND hw_parent);
+
+/*
+ * Add a column.
+ */
+void win32_tree_add_column(win32_element_t *tree, gchar *id, gchar *label,
+    gboolean primary, gboolean hideheader);
+
+/*
+ * "Push" the current treeitem so that children can be placed underneath
+ * it.
+ */
+void win32_tree_push(win32_element_t *tree);
+
+/*
+ * "Pop" the current treeitem.
+ */
+void win32_tree_pop(win32_element_t *tree);
+
+/*
+ * Specifies that the next item added should be open/expanded.
+ */
+void win32_tree_flag_open_item(win32_element_t *tree);
+
+/*
+ * Add a tree row.
+ */
+void win32_tree_add_row(win32_element_t *tree, gchar *id);
+
+/*
+ * Add a cell to a tree row.
+ */
+void win32_tree_add_cell(win32_element_t *tree, gchar *id, gchar *text);
+
+/*
+ * Find the tree's minimum size.
+ */
+void win32_tree_minimum_size(win32_element_t *tree);
+
+/*
+ * Set the selection callback for a tree.
+ */
+void win32_tree_set_onselect(win32_element_t *tree, void (*selfunc)());
+
+/*
+ * Clear all items from the tree.
+ */
+void win32_tree_clear();
+
+#endif /* win32-tree.h */
diff -x entries -urN ethereal/xulender/win32-c-sdk/ui_util.c ethereal-win32/xulender/win32-c-sdk/ui_util.c
--- ethereal/xulender/win32-c-sdk/ui_util.c	1969-12-31 18:00:00.000000000 -0600
+++ ethereal-win32/xulender/win32-c-sdk/ui_util.c	2004-05-27 10:33:48.000000000 -0500
@@ -0,0 +1,145 @@
+/* ui_util.c
+ * UI utility routines
+ *
+ * $Id: ui_util.c,v 1.19 2004/02/13 00:53:37 guy Exp $
+ *
+ * Ethereal - Network traffic analyzer
+ * By Gerald Combs <gerald@xxxxxxxxxxxx>
+ * Copyright 1998 Gerald Combs
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
+ */
+
+/* Originally copied from gtk/ui_util.c */
+
+#ifdef HAVE_CONFIG_H
+# include "config.h"
+#endif
+
+#include <windows.h>
+
+# include <io.h>
+
+#include "prefs.h"
+#include "epan/epan.h"
+#include "../../ui_util.h"
+// #include "compat_macros.h"
+
+#include "win32-globals.h"
+#include "win32-element.h"
+
+#ifdef HAVE_LIBPCAP
+
+#define PIPE_ID 1000
+
+/* Called during the capture loop.  Update our windows. */
+void main_window_update(void)
+{
+    MSG              msg;
+
+    while(PeekMessage(&msg, NULL, 0, 0, PM_REMOVE)) {
+	TranslateMessage(&msg);
+	DispatchMessage(&msg);
+    }
+}
+
+/* exit the main window */
+void main_window_exit(void)
+{
+    PostQuitMessage(0);
+}
+
+/* quit a nested main window */
+void main_window_nested_quit(void)
+{
+    PostQuitMessage(0);
+}
+
+/* quit the main window */
+void main_window_quit(void)
+{
+    PostQuitMessage(0);
+}
+
+typedef struct pipe_input_tag {
+    gint                source;
+    gpointer            user_data;
+    int                 *child_process;
+    pipe_input_cb_t     input_cb;
+    /* XXX - Since we're using PIPE_ID every time, do we need this? */
+    UINT                pipe_input_id;
+} pipe_input_t;
+
+
+/* The timer has expired, see if there's stuff to read from the pipe,
+   if so, do the callback */
+static VOID CALLBACK
+pipe_timer_cb(HWND hwnd, UINT u_msg, UINT id_event, DWORD time)
+{
+  HANDLE handle;
+  DWORD avail = 0;
+  gboolean result, result1;
+  DWORD childstatus;
+  pipe_input_t *pipe_input = win32_element_hwnd_get_data(hwnd, "pipe_input");
+
+  g_assert(pipe_input != NULL);
+
+  /* Oddly enough although Named pipes don't work on win9x,
+     PeekNamedPipe does !!! */
+  handle = (HANDLE) _get_osfhandle (pipe_input->source);
+  result = PeekNamedPipe(handle, NULL, PIPE_ID, NULL, &avail, NULL);
+
+  /* Get the child process exit status */
+  result1 = GetExitCodeProcess((HANDLE)*(pipe_input->child_process),
+                               &childstatus);
+
+  /* If the Peek returned an error, or there are bytes to be read
+     or the childwatcher thread has terminated then call the normal
+     callback */
+  if (!result || avail > 0 || childstatus != STILL_ACTIVE) {
+
+    /* avoid reentrancy problems and stack overflow */
+    KillTimer(g_hw_mainwin, pipe_input->pipe_input_id);
+
+    /* And call the real handler */
+    if (pipe_input->input_cb(pipe_input->source, pipe_input->user_data)) {
+        /* restore pipe handler */
+        pipe_input->pipe_input_id = SetTimer(g_hw_mainwin, PIPE_ID, 200, pipe_timer_cb);
+    }
+  }
+}
+
+
+void pipe_input_set_handler(gint source, gpointer user_data, int *child_process, pipe_input_cb_t input_cb)
+{
+    static pipe_input_t pipe_input;
+
+    pipe_input.source        = source;
+    pipe_input.child_process = child_process;
+    pipe_input.user_data     = user_data;
+    pipe_input.input_cb      = input_cb;
+
+    win32_element_hwnd_set_data(g_hw_mainwin, "pipe_input", &pipe_input);
+
+    /* Tricky to use pipes in win9x, as no concept of wait.  NT can
+       do this but that doesn't cover all win32 platforms.  GTK can do
+       this but doesn't seem to work over processes.  Attempt to do
+       something similar here, start a timer and check for data on every
+       timeout. */
+    pipe_input.pipe_input_id = SetTimer(g_hw_mainwin, PIPE_ID, 200, pipe_timer_cb);
+}
+
+
+#endif /* HAVE_LIBPCAP */
Files ethereal/xulender/win32-c-sdk/vc60.pdb and ethereal-win32/xulender/win32-c-sdk/vc60.pdb differ
diff -x entries -urN ethereal/xulender/win32-c-sdk/wethereal.exe.manifest ethereal-win32/xulender/win32-c-sdk/wethereal.exe.manifest
--- ethereal/xulender/win32-c-sdk/wethereal.exe.manifest	1969-12-31 18:00:00.000000000 -0600
+++ ethereal-win32/xulender/win32-c-sdk/wethereal.exe.manifest	2004-04-13 08:45:10.000000000 -0500
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
+  <assemblyIdentity
+    version="0.10.3.0"
+    processorArchitecture="X86"
+    name="EtherealDevelopmentTeam.Ethereal"
+    type="win32"
+  />
+  <description>The world's most popular network protocol anlayzer</description>
+  <dependency>
+    <dependentAssembly>
+      <assemblyIdentity
+        type="win32"
+        name="Microsoft.Windows.Common-Controls"
+        version="6.0.0.0"
+        processorArchitecture="X86"
+        publicKeyToken="6595b64144ccf1df"
+        language="*"
+      />
+    </dependentAssembly>
+  </dependency>
+</assembly> 
diff -x entries -urN ethereal/xulender/win32-c-sdk/win32-c-sdk.h ethereal-win32/xulender/win32-c-sdk/win32-c-sdk.h
--- ethereal/xulender/win32-c-sdk/win32-c-sdk.h	1969-12-31 18:00:00.000000000 -0600
+++ ethereal-win32/xulender/win32-c-sdk/win32-c-sdk.h	2004-06-14 15:00:28.000000000 -0500
@@ -0,0 +1,24 @@
+#ifndef __WIN32_C_SDK_H__
+#define __WIN32_C_SDK_H__
+
+#include "win32-element.h"
+
+#include "win32-box.h"
+#include "win32-button.h"
+#include "win32-checkbox.h"
+#include "win32-deck.h"
+#include "win32-description.h"
+#include "win32-file-dlg.h"
+#include "win32-grid.h"
+#include "win32-groupbox.h"
+#include "win32-listbox.h"
+#include "win32-menulist.h"
+#include "win32-progressmeter.h"
+#include "win32-radio.h"
+#include "win32-spacer.h"
+#include "win32-textbox.h"
+#include "win32-tree.h"
+
+#define COLOR_T2COLORREF(c) RGB((c)->red >> 8, (c)->green >> 8, (c)->blue >> 8)
+
+#endif /* win32-c-sdk.h */
diff -x entries -urN ethereal/xulender/win32-c-sdk/win32-color-filters.c ethereal-win32/xulender/win32-c-sdk/win32-color-filters.c
--- ethereal/xulender/win32-c-sdk/win32-color-filters.c	1969-12-31 18:00:00.000000000 -0600
+++ ethereal-win32/xulender/win32-c-sdk/win32-color-filters.c	2004-06-02 09:13:42.000000000 -0500
@@ -0,0 +1,300 @@
+#ifdef HAVE_CONFIG_H
+# include "config.h"
+#endif
+
+#include "globals.h"
+
+#include <epan/epan.h>
+#include <epan/filesystem.h>
+
+#include "glib.h"
+
+#include "color.h"
+#include "simple_dialog.h"
+
+/* XXX - Lots of duplicate code originally copied from gtk/color_filters.c */
+
+static gboolean read_filters(void);
+static gboolean read_global_filters(void);
+
+/* Variables and routines defined in color.h */
+
+GSList *filter_list = NULL;
+GSList *removed_filter_list = NULL;
+
+/* delete the specified filter */
+static void
+delete_color_filter(color_filter_t *colorf) {
+    if (colorf->filter_name != NULL)
+	g_free(colorf->filter_name);
+    if (colorf->filter_text != NULL)
+	g_free(colorf->filter_text);
+    if (colorf->c_colorfilter != NULL)
+	dfilter_free(colorf->c_colorfilter);
+    g_free(colorf);
+}
+
+/* delete the specified filter as an iterator*/
+static void
+delete_color_filter_it(gpointer filter_arg, gpointer unused _U_) {
+    color_filter_t *colorf = filter_arg;
+    delete_color_filter(colorf);
+}
+
+/* Delete all the filters */
+static void
+delete_all_color_filters (void) {
+    g_slist_foreach(filter_list, delete_color_filter_it, NULL);
+    g_slist_free(filter_list);
+    filter_list = NULL;
+    g_slist_foreach(removed_filter_list, delete_color_filter_it, NULL);
+    g_slist_free(removed_filter_list);
+    removed_filter_list = NULL;
+}
+
+/* Initialize the filter structures (reading from file) for general running, including app startup */
+void
+colfilter_init(void) {
+    delete_all_color_filters();
+    if (!read_filters())
+	read_global_filters();
+}
+
+/* Create a new filter */
+color_filter_t *
+new_color_filter(gchar *name,           /* The name of the filter to create */
+                 gchar *filter_string)  /* The string representing the filter */
+{
+    color_filter_t *colorf;
+
+    colorf = g_malloc(sizeof (color_filter_t));
+    colorf->filter_name = g_strdup(name);
+    colorf->filter_text = g_strdup(filter_string);
+    colorf->c_colorfilter = NULL;
+    colorf->edit_dialog = NULL;
+    colorf->marked = FALSE;
+    filter_list = g_slist_append(filter_list, colorf);
+    return colorf;
+}
+
+static void
+prime_edt(gpointer data, gpointer user_data) {
+    color_filter_t  *colorf = data;
+    epan_dissect_t   *edt = user_data;
+
+    if (colorf->c_colorfilter != NULL)
+	epan_dissect_prime_dfilter(edt, colorf->c_colorfilter);
+}
+
+void
+filter_list_prime_edt(epan_dissect_t *edt) {
+    g_slist_foreach(filter_list, prime_edt, edt);
+}
+
+
+/* read filters from the given file */
+
+/* XXX - Would it make more sense to use GStrings here instead of reallocing
+   our buffers? */
+static gboolean
+read_filters_file(FILE *f, gpointer arg) {
+#define INIT_BUF_SIZE 128
+    gchar  *name = NULL;
+    gchar  *filter_exp = NULL;
+    guint32 name_len = INIT_BUF_SIZE;
+    guint32 filter_exp_len = INIT_BUF_SIZE;
+    guint32 i = 0;
+    gint32  c;
+    guint16 fg_r, fg_g, fg_b, bg_r, bg_g, bg_b;
+    gboolean skip_end_of_line = FALSE;
+
+    name = g_malloc(name_len + 1);
+    filter_exp = g_malloc(filter_exp_len + 1);
+
+    while (1) {
+
+	if (skip_end_of_line) {
+	    do {
+		c = getc(f);
+	    } while (c != EOF && c != '\n');
+	    if (c == EOF)
+		break;
+	    skip_end_of_line = FALSE;
+	}
+
+	while ((c = getc(f)) != EOF && isspace(c)) {
+	    if (c == '\n') {
+		continue;
+	    }
+	}
+
+	if (c == EOF)
+	    break;
+
+	/* skip # comments and invalid lines */
+	if (c != '@') {
+	    skip_end_of_line = TRUE;
+	    continue;
+	}
+
+	/* we get the @ delimiter.
+	 * Format is:
+	 * @name@filter expression@[background r,g,b][foreground r,g,b]
+	 */
+
+	/* retrieve name */
+	i = 0;
+	while (1) {
+	    c = getc(f);
+	    if (c == EOF || c == '@')
+		break;
+	    if (i >= name_len) {
+		/* buffer isn't long enough; double its length.*/
+		name_len *= 2;
+		name = g_realloc(name, name_len + 1);
+	    }
+	    name[i++] = c;
+	}
+	name[i] = '\0';
+
+	if (c == EOF) {
+	    break;
+	} else if (i == 0) {
+	    skip_end_of_line = TRUE;
+	    continue;
+	}
+
+	/* retrieve filter expression */
+	i = 0;
+	while (1) {
+	    c = getc(f);
+	    if (c == EOF || c == '@')
+		break;
+	    if (i >= filter_exp_len) {
+		/* buffer isn't long enough; double its length.*/
+		filter_exp_len *= 2;
+		filter_exp = g_realloc(filter_exp, filter_exp_len + 1);
+	    }
+	    filter_exp[i++] = c;
+	}
+	filter_exp[i] = '\0';
+
+	if (c == EOF) {
+	    break;
+	} else if (i == 0) {
+	    skip_end_of_line = TRUE;
+	    continue;
+	}
+
+	/* retrieve background and foreground colors */
+	if (fscanf(f,"[%hu,%hu,%hu][%hu,%hu,%hu]",
+	    &bg_r, &bg_g, &bg_b, &fg_r, &fg_g, &fg_b) == 6) {
+
+	    /* we got a complete color filter */
+
+	    color_filter_t *colorf;
+	    dfilter_t *temp_dfilter;
+
+	    if (!dfilter_compile(filter_exp, &temp_dfilter)) {
+		simple_dialog(ESD_TYPE_ERROR, ESD_BTN_OK,
+		"Could not compile color filter %s from saved filters.\n%s",
+		    name, dfilter_error_msg);
+		skip_end_of_line = TRUE;
+		continue;
+	    }
+	    /*
+	     * XXX - The GTK version of this file checks to see if we can
+	     * allocate the specified foreground and background colors.
+	     * Do we need to do this under Windows?
+	     */
+
+	    colorf = new_color_filter(name, filter_exp);
+	    colorf->c_colorfilter = temp_dfilter;
+	    colorf->fg_color.red = fg_r;
+	    colorf->fg_color.green = fg_g;
+	    colorf->fg_color.blue = fg_b;
+	    colorf->bg_color.red = bg_r;
+	    colorf->bg_color.green = bg_g;
+	    colorf->bg_color.blue = bg_b;
+
+//	    if (arg != NULL)
+//		    color_add_filter_cb (colorf, arg);
+	}    /* if sscanf */
+
+	skip_end_of_line = TRUE;
+    }
+
+    g_free(name);
+    g_free(filter_exp);
+    return TRUE;
+}
+
+
+/* read filters from the user's filter file */
+static gboolean
+read_filters(void) {
+    gchar *path;
+    FILE *f;
+    gboolean ret;
+
+    /* decide what file to open (from dfilter code) */
+    path = get_persconffile_path("colorfilters", FALSE);
+    if ((f = fopen(path, "r")) == NULL) {
+	if (errno != ENOENT) {
+	    simple_dialog(ESD_TYPE_ERROR, ESD_BTN_OK,
+		"Could not open filter file\n\"%s\": %s.", path,
+		strerror(errno));
+	}
+	g_free(path);
+	return FALSE;
+    }
+    g_free(path);
+    path = NULL;
+
+    ret = read_filters_file(f, NULL);
+    fclose(f);
+    return ret;
+}
+
+/* read filters from the filter file */
+static gboolean
+read_global_filters(void)
+{
+	gchar *path;
+	FILE *f;
+	gboolean ret;
+
+	/* decide what file to open (from dfilter code) */
+	path = get_datafile_path("colorfilters");
+	if ((f = fopen(path, "r")) == NULL) {
+		if (errno != ENOENT) {
+			simple_dialog(ESD_TYPE_ERROR, ESD_BTN_OK,
+			    "Could not open global filter file\n\"%s\": %s.", path,
+			    strerror(errno));
+		}
+		g_free(path);
+		return FALSE;
+	}
+	g_free(path);
+	path = NULL;
+
+	ret = read_filters_file(f, NULL);
+	fclose(f);
+	return ret;
+}
+
+/*
+ * Convert a COLORREF to a color_t.
+ * XXX - The corresponding COLOR_T2COLORREF lives elsewhere, and is a macro.
+ */
+void colorref2color_t(COLORREF cr, color_t *ct) {
+    guint32 red, green, blue;
+
+    red   = GetRValue(cr);
+    green = GetGValue(cr);
+    blue  = GetBValue(cr);
+
+    ct->red   = (red   << 8) | red;
+    ct->green = (green << 8) | green;
+    ct->blue  = (blue  << 8) | blue;
+}
diff -x entries -urN ethereal/xulender/win32-c-sdk/win32-color-filters.h ethereal-win32/xulender/win32-c-sdk/win32-color-filters.h
--- ethereal/xulender/win32-c-sdk/win32-color-filters.h	1969-12-31 18:00:00.000000000 -0600
+++ ethereal-win32/xulender/win32-c-sdk/win32-color-filters.h	2004-06-02 09:13:16.000000000 -0500
@@ -0,0 +1,42 @@
+/* color_filters.h
+ * Definitions for color filters
+ *
+ * $Id: color_filters.h,v 1.5 2004/03/14 23:55:53 deniel Exp $
+ *
+ * Ethereal - Network traffic analyzer
+ * By Gerald Combs <gerald@xxxxxxxxxxxx>
+ * Copyright 1998 Gerald Combs
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
+ */
+#ifndef  __WIN32_COLOR_FILTERS_H__
+#define  __WIN32_COLOR_FILTERS_H__
+
+#define CFILTERS_CONTAINS_FILTER(filter) \
+	((filter)->num_of_filters != 0)
+
+void colfilter_init(void);
+
+//gboolean write_filters(void);
+//gboolean revert_filters(void);
+
+color_filter_t *new_color_filter(gchar *name, gchar *filter_string);
+//void remove_color_filter(color_filter_t *colorf);
+//gboolean read_other_filters(gchar *path, gpointer arg);
+//gboolean write_other_filters(gchar *path, gboolean only_marked);
+
+void colorref2color_t(COLORREF cr, color_t *ct);
+
+#endif /* win32-color-filters.h */
diff -x entries -urN ethereal/xulender/win32-c-sdk/win32-file-dlg.c ethereal-win32/xulender/win32-c-sdk/win32-file-dlg.c
--- ethereal/xulender/win32-c-sdk/win32-file-dlg.c	1969-12-31 18:00:00.000000000 -0600
+++ ethereal-win32/xulender/win32-c-sdk/win32-file-dlg.c	2004-05-21 10:54:20.000000000 -0500
@@ -0,0 +1,37 @@
+#include <windows.h>
+#include <commdlg.h>
+#include <stdlib.h>
+
+#include "win32-file-dlg.h"
+
+BOOL win32_open_file (HWND h_wnd, LPSTR file_name, int len) {
+	static OPENFILENAME ofn;
+
+	memset(&ofn, 0, sizeof(ofn));
+
+	/* XXX - Check for version and set OPENFILENAME_SIZE_VERSION_400
+           where appropriate */
+	// ofn.lStructSize = sizeof(ofn);
+	ofn.lStructSize = sizeof(ofn);
+	ofn.hwndOwner = h_wnd;
+	ofn.hInstance = (HINSTANCE) GetWindowLong(h_wnd, GWL_HINSTANCE);
+	ofn.lpstrFilter = "Ethereal capture files (*.pcap)\0" "*.pcap\0"
+			"All Files (*.*)\0" "*.*\0"
+			"\0";
+	ofn.nFilterIndex = 2;
+	ofn.lpstrCustomFilter = NULL;
+	ofn.nMaxCustFilter = 0;
+	ofn.lpstrFile = file_name;
+	ofn.nMaxFile = len;
+	ofn.lpstrFileTitle = NULL;
+	ofn.nMaxFileTitle = 0;
+	ofn.lpstrInitialDir = NULL;
+	ofn.lpstrTitle = "Select a capture file";
+	ofn.Flags = OFN_ENABLESIZING | OFN_ENABLETEMPLATE | OFN_EXPLORER |
+		OFN_FILEMUSTEXIST;
+	ofn.lpstrDefExt = "pcap";
+	ofn.lpTemplateName = "ETHEREAL_OPENFILENAME_TEMPLATE";
+
+	return (GetOpenFileName(&ofn));
+}
+
diff -x entries -urN ethereal/xulender/win32-c-sdk/win32-file-dlg.h ethereal-win32/xulender/win32-c-sdk/win32-file-dlg.h
--- ethereal/xulender/win32-c-sdk/win32-file-dlg.h	1969-12-31 18:00:00.000000000 -0600
+++ ethereal-win32/xulender/win32-c-sdk/win32-file-dlg.h	2004-05-21 11:14:17.000000000 -0500
@@ -0,0 +1,6 @@
+#ifndef __WIN32_FILE_DLG_H__
+#define __WIN32_FILE_DLG_H__
+
+BOOL win32_open_file (HWND h_wnd, LPSTR file_name, int len);
+
+#endif /* win32-file-dlg.h */
diff -x entries -urN ethereal/xulender/win32-c-sdk/win32-file-dlg.rc ethereal-win32/xulender/win32-c-sdk/win32-file-dlg.rc
--- ethereal/xulender/win32-c-sdk/win32-file-dlg.rc	1969-12-31 18:00:00.000000000 -0600
+++ ethereal-win32/xulender/win32-c-sdk/win32-file-dlg.rc	2003-11-11 17:30:33.000000000 -0600
@@ -0,0 +1,8 @@
+ETHEREAL_OPENFILENAME_TEMPLATE DIALOG 0, 0, 150, 50
+STYLE WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS | DS_3DLOOK | DS_CONTROL
+FONT 8, "MS Shell Dlg"
+{
+ CHECKBOX "MAC name resolution", -1, 54, 4, 150, 8,  BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP
+ CHECKBOX "Network name resolution", -1, 54, 17, 150, 8,  BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP
+ CHECKBOX "Transport name resolution", -1, 54, 30, 150, 8,  BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP
+}
diff -x entries -urN ethereal/xulender/win32-c-sdk/win32-globals.h ethereal-win32/xulender/win32-c-sdk/win32-globals.h
--- ethereal/xulender/win32-c-sdk/win32-globals.h	1969-12-31 18:00:00.000000000 -0600
+++ ethereal-win32/xulender/win32-c-sdk/win32-globals.h	2004-07-01 15:30:31.000000000 -0500
@@ -0,0 +1,20 @@
+#ifndef __WIN32_GLOBALS_H__
+#define __WIN32_GLOBALS_H__
+
+/* Our main instance variable */
+extern HWND g_hw_mainwin;
+extern HWND g_hw_capture_info_dlg;
+
+extern HFONT g_fixed_font;
+
+extern gchar *ethereal_path;
+
+#define ETHEREAL_BYTEVIEW_TREEVIEW   "_ethereal_byteview_treeview"
+#define ETHEREAL_TREEVIEW_BYTEVIEW   "_ethereal_treeview_byteview"
+
+
+/* XXX - This needs to be moved to a better place. */
+#define ID_COMBOBOX 5003
+#define ID_GROUPBOX 5004
+
+#endif /* win32-globals.h */
diff -x entries -urN ethereal/xulender/win32-c-sdk/win32-main.c ethereal-win32/xulender/win32-c-sdk/win32-main.c
--- ethereal/xulender/win32-c-sdk/win32-main.c	1969-12-31 18:00:00.000000000 -0600
+++ ethereal-win32/xulender/win32-c-sdk/win32-main.c	2004-07-14 15:28:15.000000000 -0500
@@ -0,0 +1,1831 @@
+/* win32-main.c
+ *
+ * $Id$
+ *
+ * Ethereal - Network traffic analyzer (Windows C SDK Frontend)
+ * By Gerald Combs <gerald@xxxxxxxxxxxx>
+ * Copyright 2004 Gerald Combs
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
+ *
+ */
+
+/*
+ * This is the main entry point for wethereal, a version of Ethereal that
+ * uses the native Windows SDK interface.  A _lot_ of code has been copied
+ * from gtk/main.c.
+ */
+
+#ifdef HAVE_CONFIG_H
+# include "config.h"
+#endif
+
+#ifdef HAVE_LIBPCAP
+#include <pcap.h>
+#endif
+
+#include "register.h"
+
+#include <windows.h>
+#include <windowsx.h>
+#include <commctrl.h>
+
+#include "globals.h"
+
+#ifdef NEED_GETOPT_H
+#include "getopt.h"
+#endif
+
+#include <fcntl.h>
+#include <conio.h>
+
+#include <epan/epan.h>
+#include <epan/filesystem.h>
+#include <epan/epan_dissect.h>
+
+#include <glib.h>
+#include "util.h"
+#include "version_info.h"
+#include <epan/timestamp.h>
+#include "capture.h"
+#include "filters.h"
+#include <epan/resolv.h>
+
+#include "color.h"
+#include "ringbuffer.h"
+#include "ui_util.h"
+#include "pcap-util.h"
+#include "disabled_protos.h"
+#include "prefs.h"
+#include "alert_box.h"
+#include "capture-wpcap.h"
+#include "simple_dialog.h"
+#include "prefs-dlg.h"
+#include "about-dlg.h"
+
+#include "win32-c-sdk.h"
+
+#include "win32-color-filters.h"
+#include "win32-globals.h"
+#include "capture-util.h"
+
+#include "ethereal-main.h"
+#include "capture-dialog.h"
+#include "capture-info-dialog.h"
+#include "preferences-dialog.h"
+
+#include "localelements/ethereal-elements.h"
+
+LRESULT CALLBACK win32_main_wnd_proc( HWND, UINT, WPARAM, LPARAM);
+
+static void capture_start_prep();
+
+/*
+ * XXX - A single, global cfile keeps us from having multiple files open
+ * at the same time.
+ */
+
+capture_file cfile;
+ts_type timestamp_type = RELATIVE;
+gchar       *last_open_dir = NULL;
+static gboolean updated_last_open_dir = FALSE;
+
+TCHAR open_name[MAX_PATH] = "\0";
+
+GString *comp_info_str, *runtime_info_str;
+gchar   *ethereal_path = NULL;
+
+static gboolean has_no_console = TRUE; /* TRUE if app has no console */
+static gboolean console_was_created = FALSE; /* TRUE if console was created */
+static void create_console(void);
+static void destroy_console(void);
+static void console_log_handler(const char *log_domain,
+    GLogLevelFlags log_level, const char *message, gpointer user_data);
+
+#ifdef HAVE_LIBPCAP
+static gboolean list_link_layer_types;
+#endif
+
+/* XXX - We can probably get rid of all of these with the possible exception
+ * of g_hw_mainwin */
+HWND g_hw_mainwin, g_hw_capture_dlg = NULL;
+HWND g_hw_capture_info_dlg = NULL;
+HFONT g_fixed_font = NULL;
+
+/* XXX - Copied from gtk/main.c.  We need to consolidate this. */
+static void
+print_usage(gboolean print_ver) {
+
+    FILE *output;
+
+    if (print_ver) {
+	output = stdout;
+	fprintf(output, "This is GNU " PACKAGE " " VERSION
+#ifdef CVSVERSION
+	    " (" CVSVERSION ")"
+#endif
+	    "\n%s\n%s\n",
+	    comp_info_str->str, runtime_info_str->str);
+    } else {
+	output = stderr;
+    }
+#ifdef HAVE_LIBPCAP
+    fprintf(output, "\n%s [ -vh ] [ -klLnpQS ] [ -a <capture autostop condition> ] ...\n",
+	PACKAGE);
+    fprintf(output, "\t[ -b <number of ringbuffer files>[:<duration>] ]\n");
+    fprintf(output, "\t[ -B <byte view height> ] [ -c <count> ] [ -f <capture filter> ]\n");
+    fprintf(output, "\t[ -i <interface> ] [ -m <medium font> ] [ -N <resolving> ]\n");
+    fprintf(output, "\t[ -o <preference setting> ] ... [ -P <packet list height> ]\n");
+    fprintf(output, "\t[ -r <infile> ] [ -R <read filter> ] [ -s <snaplen> ] \n");
+    fprintf(output, "\t[ -t <time stamp format> ] [ -T <tree view height> ]\n");
+    fprintf(output, "\t[ -w <savefile> ] [ -y <link type> ] [ -z <statistics string> ]\n");
+    fprintf(output, "\t[ <infile> ]\n");
+#else
+    fprintf(output, "\n%s [ -vh ] [ -n ] [ -B <byte view height> ] [ -m <medium font> ]\n",
+	PACKAGE);
+    fprintf(output, "\t[ -N <resolving> ] [ -o <preference setting> ...\n");
+    fprintf(output, "\t[ -P <packet list height> ] [ -r <infile> ] [ -R <read filter> ]\n");
+    fprintf(output, "\t[ -t <time stamp format> ] [ -T <tree view height> ]\n");
+    fprintf(output, "\t[ -z <statistics string> ] [ <infile> ]\n");
+#endif
+}
+
+/* XXX - Copied from gtk/main.c.  We need to consolidate this. */
+static void
+show_version(void)
+{
+#ifdef WIN32
+    create_console();
+#endif
+
+    printf(PACKAGE " " VERSION
+#ifdef CVSVERSION
+	" (" CVSVERSION ")"
+#endif
+	"\n%s\n%s\n",
+	comp_info_str->str, runtime_info_str->str);
+}
+
+/* XXX - Copied from gtk/main.c.  We need to consolidate this. */
+static int
+get_natural_int(const char *string, const char *name)
+{
+    long number;
+    char *p;
+
+    number = strtol(string, &p, 10);
+    if (p == string || *p != '\0') {
+	fprintf(stderr, "ethereal: The specified %s \"%s\" is not a decimal number\n",
+		name, string);
+	exit(1);
+    }
+    if (number < 0) {
+	fprintf(stderr, "ethereal: The specified %s \"%s\" is a negative number\n",
+		name, string);
+	exit(1);
+    }
+    if (number > INT_MAX) {
+	fprintf(stderr, "ethereal: The specified %s \"%s\" is too large (greater than %d)\n",
+		name, string, INT_MAX);
+	exit(1);
+    }
+    return number;
+}
+
+/* XXX - Copied from gtk/main.c.  We need to consolidate this. */
+static int
+get_positive_int(const char *string, const char *name)
+{
+    long number;
+
+    number = get_natural_int(string, name);
+
+    if (number == 0) {
+	fprintf(stderr, "ethereal: The specified %s is zero\n",
+		name);
+	exit(1);
+    }
+
+    return number;
+}
+
+#ifdef HAVE_LIBPCAP
+/*
+ * Given a string of the form "<autostop criterion>:<value>", as might appear
+ * as an argument to a "-a" option, parse it and set the criterion in
+ * question.  Return an indication of whether it succeeded or failed
+ * in some fashion.
+ */
+/* XXX - Copied from gtk/main.c.  We need to consolidate this. */
+static gboolean
+set_autostop_criterion(const char *autostoparg)
+{
+    gchar *p, *colonp;
+
+    colonp = strchr(autostoparg, ':');
+    if (colonp == NULL)
+	return FALSE;
+
+    p = colonp;
+    *p++ = '\0';
+
+    /*
+     * Skip over any white space (there probably won't be any, but
+     * as we allow it in the preferences file, we might as well
+     * allow it here).
+     */
+    while (isspace((guchar)*p))
+	p++;
+    if (*p == '\0') {
+	/*
+	 * Put the colon back, so if our caller uses, in an
+	 * error message, the string they passed us, the message
+	 * looks correct.
+	 */
+	*colonp = ':';
+	return FALSE;
+    }
+    if (strcmp(autostoparg,"duration") == 0) {
+	capture_opts.has_autostop_duration = TRUE;
+	capture_opts.autostop_duration = get_positive_int(p,"autostop duration");
+    } else if (strcmp(autostoparg,"filesize") == 0) {
+	capture_opts.has_autostop_filesize = TRUE;
+	capture_opts.autostop_filesize = get_positive_int(p,"autostop filesize");
+    } else {
+	return FALSE;
+    }
+    *colonp = ':'; /* put the colon back */
+    return TRUE;
+}
+
+/*
+ * Given a string of the form "<ring buffer file>:<duration>", as might appear
+ * as an argument to a "-b" option, parse it and set the arguments in
+ * question.  Return an indication of whether it succeeded or failed
+ * in some fashion.
+ */
+/* XXX - Copied from gtk/main.c.  We need to consolidate this. */
+static gboolean
+get_ring_arguments(const char *arg)
+{
+    gchar *p = NULL, *colonp;
+
+    colonp = strchr(arg, ':');
+
+    if (colonp != NULL) {
+	p = colonp;
+	*p++ = '\0';
+    }
+
+    capture_opts.ring_num_files =
+	get_natural_int(arg, "number of ring buffer files");
+
+    if (colonp == NULL)
+	return TRUE;
+    /*
+     * Skip over any white space (there probably won't be any, but
+     * as we allow it in the preferences file, we might as well
+     * allow it here).
+     */
+    while (isspace((guchar)*p))
+	p++;
+    if (*p == '\0') {
+      /*
+       * Put the colon back, so if our caller uses, in an
+       * error message, the string they passed us, the message
+       * looks correct.
+       */
+	*colonp = ':';
+	return FALSE;
+    }
+
+    capture_opts.has_file_duration = TRUE;
+    capture_opts.file_duration = get_positive_int(p, "ring buffer duration");
+
+    *colonp = ':';        /* put the colon back */
+    return TRUE;
+}
+
+#endif /* HAVE_LIBPCAP */
+
+/*
+ * Create a console window for standard input, output and error.
+ */
+/* XXX - Copied from gtk/main.c.  We need to consolidate this. */
+static void
+create_console(void)
+{
+    if (has_no_console) {
+	/* We have no console to which to print the version string, so
+	   create one and make it the standard input, output, and error. */
+	if (!AllocConsole())
+	    return;   /* couldn't create console */
+	freopen("CONIN$", "r", stdin);
+	freopen("CONOUT$", "w", stdout);
+	freopen("CONOUT$", "w", stderr);
+
+	/* Well, we have a console now. */
+	has_no_console = FALSE;
+	console_was_created = TRUE;
+
+	/* Now register "destroy_console()" as a routine to be called just
+	   before the application exits, so that we can destroy the console
+	   after the user has typed a key (so that the console doesn't just
+	   disappear out from under them, giving the user no chance to see
+	   the message(s) we put in there). */
+	atexit(destroy_console);
+    }
+}
+
+/* XXX - Copied from gtk/main.c.  We need to consolidate this. */
+static void
+destroy_console(void)
+{
+    printf("\n\nPress any key to exit\n");
+    _getch();
+    FreeConsole();
+}
+
+/* This routine should not be necessary, at least as I read the GLib
+   source code, as it looks as if GLib is, on Win32, *supposed* to
+   create a console window into which to display its output.
+
+   That doesn't happen, however.  I suspect there's something completely
+   broken about that code in GLib-for-Win32, and that it may be related
+   to the breakage that forces us to just call "printf()" on the message
+   rather than passing the message on to "g_log_default_handler()"
+   (which is the routine that does the aforementioned non-functional
+   console window creation). */
+
+/* XXX - Copied from gtk/main.c.  We need to consolidate this. */
+static void
+console_log_handler(const char *log_domain, GLogLevelFlags log_level,
+                    const char *message, gpointer user_data)
+{
+    create_console();
+    if (console_was_created) {
+	/* For some unknown reason, the above doesn't appear to actually cause
+	   anything to be sent to the standard output, so we'll just splat the
+	   message out directly, just to make sure it gets out. */
+	printf("%s\n", message);
+    } else
+	g_log_default_handler(log_domain, log_level, message, user_data);
+}
+
+int PASCAL
+WinMain( HINSTANCE h_instance, HINSTANCE h_prev_instance, LPSTR lpsz_cmd_line, int n_cmd_show )
+{
+    WNDCLASS               wc;
+    MSG                    msg;
+    char                  *s;
+    int                    i;
+    char                  *gpf_path, *pf_path;
+    char                  *cf_path, *df_path;
+    char                  *gdp_path, *dp_path;
+    int                    gpf_open_errno, gpf_read_errno;
+    int                    pf_open_errno, pf_read_errno;
+    int                    cf_open_errno, df_open_errno;
+    int                    gdp_open_errno, gdp_read_errno;
+    int                    dp_open_errno, dp_read_errno;
+    e_prefs               *prefs;
+    INITCOMMONCONTROLSEX   comm_ctrl;
+    int                    argc = __argc;
+    char                 **argv = __argv;
+    WSADATA                wsaData;
+    int                    opt;
+    extern char           *optarg;
+    gboolean               arg_error = FALSE;
+#ifdef HAVE_LIBPCAP
+    char                  *command_name;
+    int                    err;
+    gboolean               start_capture = FALSE;
+    gchar                 *save_file = NULL;
+    GList                 *if_list;
+    if_info_t             *if_info;
+    GList                 *lt_list, *lt_entry;
+    data_link_info_t      *data_link_info;
+    gchar                  err_str[PCAP_ERRBUF_SIZE];
+    gboolean               stats_known;
+    struct pcap_stat       stats;
+#else
+    gboolean               capture_option_specified = FALSE;
+#endif
+    gint                   pl_size = 280, tv_size = 95, bv_size = 75;
+    gchar                 *cf_name = NULL, *rfilter = NULL;
+    dfilter_t             *rfcode = NULL;
+    gboolean               rfilter_parse_failed = FALSE;
+    char                   badopt;
+//    ethereal_tap_list     *tli = NULL;
+    LOGFONT                lfinfo;
+    gchar                 *font_style;
+    HDC                    hdc;
+
+#define OPTSTRING_INIT "a:b:B:c:f:Hhi:klLm:nN:o:pP:Qr:R:Ss:t:T:w:vy:z:"
+
+#ifdef HAVE_LIBPCAP
+#define OPTSTRING_CHILD "W:Z:"
+#else
+#define OPTSTRING_CHILD ""
+#endif  /* HAVE_LIBPCAP */
+
+    char optstring[sizeof(OPTSTRING_INIT) + sizeof(OPTSTRING_CHILD) - 1] =
+	OPTSTRING_INIT;
+
+    ethereal_path = argv[0];
+
+    /* Arrange that if we have no console window, and a GLib message logging
+       routine is called to log a message, we pop up a console window.
+
+       We do that by inserting our own handler for all messages logged
+       to the default domain; that handler pops up a console if necessary,
+       and then calls the default handler. */
+    g_log_set_handler(NULL,
+	    G_LOG_LEVEL_ERROR|
+	    G_LOG_LEVEL_CRITICAL|
+	    G_LOG_LEVEL_WARNING|
+	    G_LOG_LEVEL_MESSAGE|
+	    G_LOG_LEVEL_INFO|
+	    G_LOG_LEVEL_DEBUG|
+	    G_LOG_FLAG_FATAL|G_LOG_FLAG_RECURSION,
+	    console_log_handler, NULL);
+
+#ifdef HAVE_LIBPCAP
+    command_name = get_basename(ethereal_path);
+    /* Set "capture_child" to indicate whether this is going to be a child
+       process for a "-S" capture. */
+    capture_child = (strcmp(command_name, CHILD_NAME) == 0);
+    if (capture_child)
+	strcat(optstring, OPTSTRING_CHILD);
+#endif
+
+    set_timestamp_setting(TS_RELATIVE);
+
+    /* Register all dissectors; we must do this before checking for the
+       "-G" flag, as the "-G" flag dumps information registered by the
+       dissectors, and we must do it before we read the preferences, in
+       case any dissectors register preferences. */
+
+    epan_init(PLUGIN_DIR,register_all_protocols,register_all_protocol_handoffs,
+	failure_alert_box, open_failure_alert_box, read_failure_alert_box);
+
+    /* Register all tap listeners; we do this before we parse the arguments,
+       as the "-z" argument can specify a registered tap. */
+
+    register_all_tap_listeners();
+
+    /* Now register the preferences for any non-dissector modules.
+       We must do that before we read the preferences as well. */
+
+    prefs_register_modules();
+
+    /* If invoked with the "-G" flag, we dump out information based on
+       the argument to the "-G" flag; if no argument is specified,
+       for backwards compatibility we dump out a glossary of display
+       filter symbols.
+
+       We must do this before calling "gtk_init()", because "gtk_init()"
+       tries to open an X display, and we don't want to have to do any X
+       stuff just to do a build.
+
+       Given that we call "gtk_init()" before doing the regular argument
+       list processing, so that it can handle X and GTK+ arguments and
+       remove them from the list at which we look, this means we must do
+       this before doing the regular argument list processing, as well.
+
+       This means that:
+
+	 you must give the "-G" flag as the first flag on the command line;
+
+	 you must give it as "-G", nothing more, nothing less;
+
+	 the first argument after the "-G" flag, if present, will be used
+	 to specify the information to dump;
+
+	 arguments after that will not be used. */
+
+    /* XXX - This doesn't currently work in wethereal. Does it need to? */
+
+    if (argc >= 2 && strcmp(argv[1], "-G") == 0) {
+	if (argc == 2) {
+	    proto_registrar_dump_fields();
+	} else {
+	    if (strcmp(argv[2], "fields") == 0)
+		proto_registrar_dump_fields();
+	    else if (strcmp(argv[2], "protocols") == 0)
+		proto_registrar_dump_protocols();
+	    else {
+		fprintf(stderr, "wethereal: Invalid \"%s\" option for -G flag\n",
+		    argv[2]);
+		exit(1);
+	    }
+	}
+	exit(0);
+    }
+
+    /* Read the preference files. */
+    prefs = read_prefs(&gpf_open_errno, &gpf_read_errno, &gpf_path,
+	&pf_open_errno, &pf_read_errno, &pf_path);
+
+
+#ifdef HAVE_LIBPCAP
+    capture_opts.has_snaplen = FALSE;
+    capture_opts.snaplen = MIN_PACKET_SIZE;
+    capture_opts.linktype = -1;
+#ifdef _WIN32
+    capture_opts.buffer_size = 1;
+#endif
+
+    capture_opts.has_autostop_packets = FALSE;
+    capture_opts.autostop_packets = 1;
+    capture_opts.has_autostop_duration = FALSE;
+    capture_opts.autostop_duration = 1;
+    capture_opts.has_autostop_filesize = FALSE;
+    capture_opts.autostop_filesize = 1;
+    capture_opts.has_autostop_files = FALSE;
+    capture_opts.autostop_files = 1;
+
+    capture_opts.multi_files_on = FALSE;
+    capture_opts.has_ring_num_files = TRUE;
+    capture_opts.ring_num_files = 2;
+    capture_opts.has_file_duration = FALSE;
+    capture_opts.file_duration = 1;
+
+  /* If this is a capture child process, it should pay no attention
+     to the "prefs.capture_prom_mode" setting in the preferences file;
+     it should do what the parent process tells it to do, and if
+     the parent process wants it not to run in promiscuous mode, it'll
+     tell it so with a "-p" flag.
+
+     Otherwise, set promiscuous mode from the preferences setting. */
+  /* the same applies to other preferences settings as well. */
+  if (capture_child) {
+	capture_opts.promisc_mode = TRUE;	/* maybe changed by command line below */
+	capture_opts.show_info    = TRUE;	/* maybe changed by command line below */
+	capture_opts.sync_mode    = TRUE;	/* always true in child process */
+	auto_scroll_live          = FALSE;	/* doesn't matter in child process */
+    } else {
+	capture_opts.promisc_mode = prefs->capture_prom_mode;
+	capture_opts.show_info    = prefs->capture_show_info;
+	capture_opts.sync_mode    = prefs->capture_real_time;
+	auto_scroll_live          = prefs->capture_auto_scroll;
+    }
+
+#endif /* HAVE_LIBPCAP */
+
+    /* Set the name resolution code's flags from the preferences. */
+    g_resolv_flags = prefs->name_resolve;
+
+    /* Read the capture filter file. */
+    read_filter_list(CFILTER_LIST, &cf_path, &cf_open_errno);
+
+    /* Read the display filter file. */
+    read_filter_list(DFILTER_LIST, &df_path, &df_open_errno);
+
+    /* Read the disabled protocols file. */
+    read_disabled_protos_list(&gdp_path, &gdp_open_errno, &gdp_read_errno,
+                              &dp_path, &dp_open_errno, &dp_read_errno);
+
+    init_cap_file(&cfile);
+
+    /* Initialize our XUL elements. */
+    win32_identifier_init();
+
+    /* Load wpcap if possible. Do this before collecting the run-time version information */
+    load_wpcap();
+
+
+    /* Start windows sockets */
+    WSAStartup( MAKEWORD( 1, 1 ), &wsaData );
+
+    /* Assemble the compile-time version information string */
+    comp_info_str = g_string_new("Compiled with the Windows C SDK, ");
+    get_compiled_version_info(comp_info_str);
+
+    /* Assemble the run-time version information string */
+    runtime_info_str = g_string_new("Running ");
+    get_runtime_version_info(runtime_info_str);
+
+
+    /* Initialize our controls. */
+    memset (&comm_ctrl, 0, sizeof(comm_ctrl));
+    comm_ctrl.dwSize = sizeof(comm_ctrl);
+    comm_ctrl.dwICC = ICC_WIN95_CLASSES;
+    InitCommonControlsEx(&comm_ctrl);
+
+    /* RichEd20.DLL is needed by the byte view. */
+    LoadLibrary("riched20.dll");
+
+    /* Now get our args */
+    while ((opt = getopt(argc, argv, optstring)) != -1) {
+	switch (opt) {
+	    case 'a':        /* autostop criteria */
+#ifdef HAVE_LIBPCAP
+		if (set_autostop_criterion(optarg) == FALSE) {
+		    fprintf(stderr, "ethereal: Invalid or unknown -a flag \"%s\"\n", optarg);
+		    exit(1);
+		}
+#else
+		capture_option_specified = TRUE;
+		arg_error = TRUE;
+#endif
+		break;
+
+	    case 'b':        /* Ringbuffer option */
+#ifdef HAVE_LIBPCAP
+		capture_opts.multi_files_on = TRUE;
+		capture_opts.has_ring_num_files = TRUE;
+		if (get_ring_arguments(optarg) == FALSE) {
+		    fprintf(stderr, "ethereal: Invalid or unknown -b arg \"%s\"\n", optarg);
+		    exit(1);
+		}
+#else
+		capture_option_specified = TRUE;
+		arg_error = TRUE;
+#endif
+		break;
+
+	    case 'B':        /* Byte view pane height */
+		bv_size = get_positive_int(optarg, "byte view pane height");
+		break;
+	    case 'c':        /* Capture xxx packets */
+#ifdef HAVE_LIBPCAP
+		capture_opts.has_autostop_packets = TRUE;
+		capture_opts.autostop_packets = get_positive_int(optarg, "packet count");
+#else
+		capture_option_specified = TRUE;
+		arg_error = TRUE;
+#endif
+		break;
+
+	    case 'f':
+#ifdef HAVE_LIBPCAP
+		if (cfile.cfilter)
+		    g_free(cfile.cfilter);
+		cfile.cfilter = g_strdup(optarg);
+#else
+		capture_option_specified = TRUE;
+		arg_error = TRUE;
+#endif
+		break;
+	    case 'h':        /* Print help and exit */
+		print_usage(TRUE);
+		exit(0);
+		break;
+	    case 'H':        /* Hide capture info dialog box */
+#ifdef HAVE_LIBPCAP
+		capture_opts.show_info = FALSE;
+#else
+		capture_option_specified = TRUE;
+		arg_error = TRUE;
+#endif
+		break;
+	    case 'i':        /* Use interface xxx */
+#ifdef HAVE_LIBPCAP
+		cfile.iface = g_strdup(optarg);
+#else
+		capture_option_specified = TRUE;
+		arg_error = TRUE;
+#endif
+		break;
+	    case 'k':        /* Start capture immediately */
+#ifdef HAVE_LIBPCAP
+		start_capture = TRUE;
+#else
+		capture_option_specified = TRUE;
+		arg_error = TRUE;
+#endif
+		break;
+
+	    case 'l':        /* Automatic scrolling in live capture mode */
+#ifdef HAVE_LIBPCAP
+		auto_scroll_live = TRUE;
+#else
+		capture_option_specified = TRUE;
+		arg_error = TRUE;
+#endif
+		break;
+	    case 'L':        /* Print list of link-layer types and exit */
+#ifdef HAVE_LIBPCAP
+		list_link_layer_types = TRUE;
+#else
+		capture_option_specified = TRUE;
+		arg_error = TRUE;
+#endif
+		break;
+	    case 'm':        /* Fixed-width font for the display */
+		if (prefs->PREFS_GUI_FONT_NAME != NULL)
+		    g_free(prefs->PREFS_GUI_FONT_NAME);
+		prefs->PREFS_GUI_FONT_NAME = g_strdup(optarg);
+		break;
+	    case 'n':        /* No name resolution */
+		g_resolv_flags = RESOLV_NONE;
+		break;
+	    case 'N':        /* Select what types of addresses/port #s to resolve */
+		if (g_resolv_flags == RESOLV_ALL)
+		    g_resolv_flags = RESOLV_NONE;
+		badopt = string_to_name_resolve(optarg, &g_resolv_flags);
+		if (badopt != '\0') {
+		    fprintf(stderr, "ethereal: -N specifies unknown resolving option '%c'; valid options are 'm', 'n', and 't'\n",
+			badopt);
+		    exit(1);
+		}
+		break;
+	    case 'o':        /* Override preference from command line */
+		switch (prefs_set_pref(optarg)) {
+
+		    case PREFS_SET_SYNTAX_ERR:
+			fprintf(stderr, "ethereal: Invalid -o flag \"%s\"\n", optarg);
+			exit(1);
+			break;
+
+		    case PREFS_SET_NO_SUCH_PREF:
+		    case PREFS_SET_OBSOLETE:
+			fprintf(stderr, "ethereal: -o flag \"%s\" specifies unknown preference\n",
+			    optarg);
+		        exit(1);
+		        break;
+		}
+		break;
+	    case 'p':        /* Don't capture in promiscuous mode */
+#ifdef HAVE_LIBPCAP
+		capture_opts.promisc_mode = FALSE;
+#else
+		capture_option_specified = TRUE;
+		arg_error = TRUE;
+#endif
+		break;
+	    case 'P':        /* Packet list pane height */
+		pl_size = get_positive_int(optarg, "packet list pane height");
+		break;
+	    case 'Q':        /* Quit after capture (just capture to file) */
+#ifdef HAVE_LIBPCAP
+		quit_after_cap  = TRUE;
+		start_capture   = TRUE;  /*** -Q implies -k !! ***/
+#else
+		capture_option_specified = TRUE;
+		arg_error = TRUE;
+#endif
+		break;
+	    case 'r':        /* Read capture file xxx */
+		/* We may set "last_open_dir" to "cf_name", and if we change
+		   "last_open_dir" later, we free the old value, so we have to
+		   set "cf_name" to something that's been allocated. */
+		cf_name = g_strdup(optarg);
+		break;
+	    case 'R':        /* Read file filter */
+		rfilter = optarg;
+		break;
+	    case 's':        /* Set the snapshot (capture) length */
+#ifdef HAVE_LIBPCAP
+		capture_opts.has_snaplen = TRUE;
+		capture_opts.snaplen = get_positive_int(optarg, "snapshot length");
+#else
+		capture_option_specified = TRUE;
+		arg_error = TRUE;
+#endif
+		break;
+	    case 'S':        /* "Sync" mode: used for following file ala tail -f */
+#ifdef HAVE_LIBPCAP
+		capture_opts.sync_mode = TRUE;
+#else
+		capture_option_specified = TRUE;
+		arg_error = TRUE;
+#endif
+	    break;
+	    case 't':        /* Time stamp type */
+		if (strcmp(optarg, "r") == 0)
+		    set_timestamp_setting(TS_RELATIVE);
+		else if (strcmp(optarg, "a") == 0)
+		    set_timestamp_setting(TS_ABSOLUTE);
+		else if (strcmp(optarg, "ad") == 0)
+		    set_timestamp_setting(TS_ABSOLUTE_WITH_DATE);
+		else if (strcmp(optarg, "d") == 0)
+		    set_timestamp_setting(TS_DELTA);
+		else {
+		    fprintf(stderr, "ethereal: Invalid time stamp type \"%s\"\n",
+		    optarg);
+		    fprintf(stderr, "It must be \"r\" for relative, \"a\" for absolute,\n");
+		    fprintf(stderr, "\"ad\" for absolute with date, or \"d\" for delta.\n");
+		    exit(1);
+		}
+		break;
+	    case 'T':        /* Tree view pane height */
+		tv_size = get_positive_int(optarg, "tree view pane height");
+		break;
+	    case 'v':        /* Show version and exit */
+		show_version();
+		if (console_was_created)
+		    destroy_console();
+		exit(0);
+		break;
+	    case 'w':        /* Write to capture file xxx */
+#ifdef HAVE_LIBPCAP
+		save_file = g_strdup(optarg);
+#else
+		capture_option_specified = TRUE;
+		arg_error = TRUE;
+#endif
+	    break;
+	    case 'y':        /* Set the pcap data link type */
+#ifdef HAVE_LIBPCAP
+#ifdef HAVE_PCAP_DATALINK_NAME_TO_VAL
+		capture_opts.linktype = pcap_datalink_name_to_val(optarg);
+		if (capture_opts.linktype == -1) {
+		    fprintf(stderr, "ethereal: The specified data link type \"%s\" is not valid\n",
+			optarg);
+		    exit(1);
+		}
+#else /* HAVE_PCAP_DATALINK_NAME_TO_VAL */
+		/* XXX - just treat it as a number */
+		capture_opts.linktype = get_natural_int(optarg, "data link type");
+#endif /* HAVE_PCAP_DATALINK_NAME_TO_VAL */
+#else /* HAVE_LIBPCAP */
+		capture_option_specified = TRUE;
+		arg_error = TRUE;
+#endif /* HAVE_LIBPCAP */
+		break;
+#ifdef HAVE_LIBPCAP
+	    case 'W':        /* Write to capture file FD xxx */
+		cfile.save_file_fd = atoi(optarg);
+		break;
+#endif
+/* XXX - Add tap support */
+//	    case 'z':
+//		for(tli=tap_list;tli;tli=tli->next){
+//		    if(!strncmp(tli->cmd,optarg,strlen(tli->cmd))){
+//			tap_opt = g_strdup(optarg);
+//			break;
+//		    }
+//		}
+//		if(!tli){
+//		    fprintf(stderr,"ethereal: invalid -z argument.\n");
+//		    fprintf(stderr,"  -z argument must be one of :\n");
+//		    for(tli=tap_list;tli;tli=tli->next){
+//			fprintf(stderr,"     %s\n",tli->cmd);
+//		    }
+//		    exit(1);
+//		}
+//		break;
+#ifdef HAVE_LIBPCAP
+	    /* Hidden option supporting Sync mode */
+	    case 'Z':        /* Write to pipe FD XXX */
+		/* associate stdout with pipe */
+		i = atoi(optarg);
+		if (dup2(i, 1) < 0) {
+		    fprintf(stderr, "Unable to dup pipe handle\n");
+		    exit(1);
+		}
+		break;
+#endif /* HAVE_LIBPCAP */
+
+	    default:
+	    case '?':        /* Bad flag - print usage message */
+		arg_error = TRUE;
+		break;
+	}
+    }
+
+    argc -= optind;
+    argv += optind;
+    if (argc >= 1) {
+	if (cf_name != NULL) {
+	    /*
+	     * Input file name specified with "-r" *and* specified as a regular
+	     * command-line argument.
+	     */
+	    arg_error = TRUE;
+	} else {
+	    /*
+	     * Input file name not specified with "-r", and a command-line argument
+	     * was specified; treat it as the input file name.
+	     *
+	     * Yes, this is different from tethereal, where non-flag command-line
+	     * arguments are a filter, but this works better on GUI desktops
+	     * where a command can be specified to be run to open a particular
+	     * file - yes, you could have "-r" as the last part of the command,
+	     * but that's a bit ugly.
+	     */
+	    cf_name = g_strdup(argv[0]);
+	}
+	argc--;
+	argv++;
+    }
+
+    if (argc != 0) {
+	/*
+	 * Extra command line arguments were specified; complain.
+	 */
+	fprintf(stderr, "Invalid argument: %s\n", argv[0]);
+	arg_error = TRUE;
+    }
+
+#ifndef HAVE_LIBPCAP
+    if (capture_option_specified)
+	fprintf(stderr, "This version of Ethereal was not built with support for capturing packets.\n");
+#endif
+    if (arg_error) {
+	print_usage(FALSE);
+	exit(1);
+    }
+
+#ifdef HAVE_LIBPCAP
+    if (start_capture && list_link_layer_types) {
+	/* Specifying *both* is bogus. */
+	fprintf(stderr, "ethereal: You cannot specify both -L and a live capture.\n");
+	exit(1);
+    }
+
+    if (list_link_layer_types) {
+	/* We're supposed to list the link-layer types for an interface;
+	   did the user also specify a capture file to be read? */
+	if (cf_name) {
+	    /* Yes - that's bogus. */
+	    fprintf(stderr, "ethereal: You cannot specify -L and a capture file to beread.\n");
+	    exit(1);
+	}
+	/* No - did they specify a ring buffer option? */
+	if (capture_opts.multi_files_on) {
+	    fprintf(stderr, "ethereal: Ring buffer requested, but a capture is not being done.\n");
+	    exit(1);
+	}
+    } else {
+	/* We're supposed to do a live capture; did the user also specify
+	   a capture file to be read? */
+	if (start_capture && cf_name) {
+	    /* Yes - that's bogus. */
+	    fprintf(stderr, "ethereal: You cannot specify both a live capture and a capture file to be read.\n");
+	    exit(1);
+	}
+
+	/* No - was the ring buffer option specified and, if so, does it make
+	   sense? */
+	if (capture_opts.multi_files_on) {
+	    /* Ring buffer works only under certain conditions:
+	       a) ring buffer does not work with temporary files;
+	       b) sync_mode and capture_opts.ringbuffer_on are mutually exclusive -
+		  sync_mode takes precedence;
+	       c) it makes no sense to enable the ring buffer if the maximum
+		  file size is set to "infinite". */
+	    if (save_file == NULL) {
+		fprintf(stderr, "ethereal: Ring buffer requested, but capture isn't being saved to a permanent file.\n");
+		capture_opts.multi_files_on = FALSE;
+	    }
+	    if (capture_opts.sync_mode) {
+		fprintf(stderr, "ethereal: Ring buffer requested, but an \"Update list of packets in real time\" capture is being done.\n");
+		capture_opts.multi_files_on = FALSE;
+	    }
+	    if (!capture_opts.has_autostop_filesize) {
+		fprintf(stderr, "ethereal: Ring buffer requested, but no maximum capture file size was specified.\n");
+		capture_opts.multi_files_on = FALSE;
+	    }
+	}
+    }
+
+    if (start_capture || list_link_layer_types) {
+	/* Did the user specify an interface to use? */
+	if (cfile.iface == NULL) {
+	    /* No - is a default specified in the preferences file? */
+	    if (prefs->capture_device != NULL) {
+		/* Yes - use it. */
+		cfile.iface = g_strdup(prefs->capture_device);
+	    } else {
+		/* No - pick the first one from the list of interfaces. */
+		if_list = get_interface_list(&err, err_str);
+		if (if_list == NULL) {
+		    switch (err) {
+
+		      case CANT_GET_INTERFACE_LIST:
+			  fprintf(stderr, "ethereal: Can't get list of interfaces: %s\n",
+			      err_str);
+			  break;
+
+		      case NO_INTERFACES_FOUND:
+			  fprintf(stderr, "ethereal: There are no interfaces on which a capture can be done\n");
+			  break;
+		    }
+		    exit(2);
+		}
+		if_info = if_list->data;        /* first interface */
+		cfile.iface = g_strdup(if_info->name);
+		free_interface_list(if_list);
+	    }
+	}
+    }
+
+    if (capture_child) {
+	if (cfile.save_file_fd == -1) {
+	    /* XXX - send this to the standard output as something our parent
+	       should put in an error message box? */
+	    fprintf(stderr, "%s: \"-W\" flag not specified\n", CHILD_NAME);
+	    exit(1);
+	}
+    }
+
+    if (list_link_layer_types) {
+	/* Get the list of link-layer types for the capture device. */
+	lt_list = get_pcap_linktype_list(cfile.iface, err_str);
+	if (lt_list == NULL) {
+	    if (err_str[0] != '\0') {
+		fprintf(stderr, "ethereal: The list of data link types for the capture device could not be obtained (%s).\n"
+		    "Please check to make sure you have sufficient permissions, and that\n"
+		    "you have the proper interface or pipe specified.\n", err_str);
+	    } else
+		fprintf(stderr, "ethereal: The capture device has no data link types.\n");
+	    exit(2);
+	}
+	fprintf(stderr, "Data link types (use option -y to set):\n");
+	for (lt_entry = lt_list; lt_entry != NULL; lt_entry = g_list_next(lt_entry)) {
+	    data_link_info = lt_entry->data;
+	    fprintf(stderr, "  %s", data_link_info->name);
+	    if (data_link_info->description != NULL)
+		fprintf(stderr, " (%s)", data_link_info->description);
+	    else
+		fprintf(stderr, " (not supported)");
+	    putchar('\n');
+	}
+	free_pcap_linktype_list(lt_list);
+	exit(0);
+    }
+#endif /* HAVE_LIBPCAP */
+
+    /* XXX - Is there a better way to map a name, e.g. "courier bold 12"
+       to a font and back in Windows? */
+    /* Set our fonts according to prefs */
+    ZeroMemory(&lfinfo, sizeof(lfinfo));
+    if (prefs->gui_win32_font_name == NULL || strlen(prefs->gui_win32_font_name) == 0) {
+	g_fixed_font = (HFONT) GetStockObject(ANSI_FIXED_FONT);
+	GetObject(g_fixed_font, sizeof(lfinfo), &lfinfo);
+	prefs->gui_win32_font_name = g_strdup(lfinfo.lfFaceName);
+	if (lfinfo.lfWeight == 700) {
+	    if (lfinfo.lfItalic) {
+		prefs->gui_win32_font_style = g_strdup("Bold Italic");
+	    } else {
+		prefs->gui_win32_font_style = g_strdup("Bold");
+	    }
+	} else if (lfinfo.lfItalic) {
+	    prefs->gui_win32_font_style = g_strdup("Italic");
+	} else {
+	    prefs->gui_win32_font_style = g_strdup("Regular");
+	}
+	hdc = GetDC(NULL);
+	prefs->gui_win32_font_size = MulDiv(lfinfo.lfHeight, 72, GetDeviceCaps(hdc, LOGPIXELSY));
+	ReleaseDC(NULL, hdc);
+    } else {
+	g_strlcpy(lfinfo.lfFaceName, prefs->gui_win32_font_name, LF_FACESIZE);
+	lfinfo.lfWeight = 400;
+	lfinfo.lfItalic = FALSE;
+	hdc = GetDC(NULL);
+	lfinfo.lfHeight = - MulDiv(prefs->gui_win32_font_size, GetDeviceCaps(hdc, LOGPIXELSY), 72);
+	ReleaseDC(NULL, hdc);
+	font_style = g_ascii_strdown(prefs->gui_win32_font_style, strlen(prefs->gui_win32_font_style));
+	if (strstr(font_style, "bold")) {
+	    lfinfo.lfWeight = 700;
+	}
+	if (strstr(font_style, "italic")) {
+	    lfinfo.lfItalic = TRUE;
+	}
+	g_free(font_style);
+	g_fixed_font = CreateFontIndirect(&lfinfo);
+	if (g_fixed_font == NULL) {
+	    g_warning("Failed to find font: %s %s %d", prefs->gui_win32_font_name,
+		    prefs->gui_win32_font_style, prefs->gui_win32_font_size);
+	    g_fixed_font = (HFONT) GetStockObject(ANSI_FIXED_FONT);
+	}
+    }
+
+    prefs_apply_all();
+
+    /* disabled protocols as per configuration file */
+    if (gdp_path == NULL && dp_path == NULL) {
+      set_disabled_protos_list();
+    }
+
+#ifdef HAVE_LIBPCAP
+    if (capture_opts.has_snaplen) {
+	if (capture_opts.snaplen < 1)
+	    capture_opts.snaplen = WTAP_MAX_PACKET_SIZE;
+	else if (capture_opts.snaplen < MIN_PACKET_SIZE)
+	    capture_opts.snaplen = MIN_PACKET_SIZE;
+    }
+
+    /* Check the value range of the ringbuffer_num_files parameter */
+    if (capture_opts.ring_num_files > RINGBUFFER_MAX_NUM_FILES)
+	capture_opts.ring_num_files = RINGBUFFER_MAX_NUM_FILES;
+#if RINGBUFFER_MIN_NUM_FILES > 0
+    else if (capture_opts.num_files < RINGBUFFER_MIN_NUM_FILES)
+	capture_opts.ring_num_files = RINGBUFFER_MIN_NUM_FILES;
+#endif
+#endif
+
+    colfilter_init();
+
+
+
+    // XXX - This should be done in win32csdk.py.
+    if( !h_prev_instance )
+    {
+	wc.lpszClassName = "ethereal_main";
+	wc.lpfnWndProc = win32_main_wnd_proc;
+	wc.style = CS_OWNDC | CS_VREDRAW | CS_HREDRAW;
+	wc.hInstance = h_instance;
+	wc.hIcon = LoadIcon( NULL, IDI_APPLICATION );
+	wc.hCursor = LoadCursor( NULL, IDC_ARROW );
+	wc.hbrBackground = (HBRUSH)( COLOR_WINDOW+1 );
+	wc.lpszMenuName = "ETHEREAL_MAIN_MENU";
+	wc.cbClsExtra = 0;
+	wc.cbWndExtra = 0;
+
+	RegisterClass( &wc );
+
+    }
+
+    // Set our globals and instance variables
+    // XXX - There's some overlap here that needs to be cleaned up.
+
+#ifdef HAVE_LIBPCAP
+    /* Is this a "child" ethereal, which is only supposed to pop up a
+       capture box to let us stop the capture, and run a capture
+       to a file that our parent will read? */
+    if (! capture_child) {
+#endif
+	/* Create and show the main window */
+	g_hw_mainwin = ethereal_main_window_create(h_instance);
+	/* XXX - Get our geometry */
+	ethereal_main_window_show(g_hw_mainwin, n_cmd_show);
+
+	main_window_update();
+
+	/* If we were given the name of a capture file, read it in now;
+	   we defer it until now, so that, if we can't open it, and pop
+	   up an alert box, the alert box is more likely to come up on
+	   top of the main window - but before the preference-file-error
+	   alert box, so, if we get one of those, it's more likely to come
+	   up on top of us. */
+	if (cf_name) {
+	    if (rfilter != NULL) {
+		if (!dfilter_compile(rfilter, &rfcode)) {
+		    bad_dfilter_alert_box(rfilter);
+		    rfilter_parse_failed = TRUE;
+		}
+	    }
+	    if (!rfilter_parse_failed) {
+		if ((err = cf_open(cf_name, FALSE, &cfile)) == 0) {
+		    /* "cf_open()" succeeded, so it closed the previous
+			capture file, and thus destroyed any previous read filter
+			attached to "cf". */
+		    cfile.rfcode = rfcode;
+
+		    /* Open tap windows; we do so after creating the main window,
+		       to avoid GTK warnings, and after successfully opening the
+		       capture file, so we know we have something to tap. */
+//		    if (tap_opt && tli) {
+//			(*tli->func)(tap_opt);
+//			g_free(tap_opt);
+//		    }
+
+		    /* Read the capture file. */
+		    switch (cf_read(&cfile)) {
+
+			case READ_SUCCESS:
+			case READ_ERROR:
+			    /* Just because we got an error, that doesn't mean we were unable
+			       to read any of the file; we handle what we could get from the
+			       file. */
+			    break;
+
+			case READ_ABORTED:
+			    /* Exit now. */
+			    PostQuitMessage(0);
+			    break;
+		    }
+		    /* Save the name of the containing directory specified in the
+		       path name, if any; we can write over cf_name, which is a
+		       good thing, given that "get_dirname()" does write over its
+		       argument. */
+		    s = get_dirname(cf_name);
+		    /* we might already set this from the recent file, don't overwrite this */
+
+		    if(last_open_dir == NULL)
+			set_last_open_dir(s);
+		    g_free(cf_name);
+		    cf_name = NULL;
+		} else {
+		    if (rfcode != NULL)
+			dfilter_free(rfcode);
+		    cfile.rfcode = NULL;
+		}
+	    }
+	}
+#ifdef HAVE_LIBPCAP
+    }
+#endif
+
+    /* If the global preferences file exists but we failed to open it
+       or had an error reading it, pop up an alert box; we defer that
+       until now, so that the alert box is more likely to come up on top of
+       the main window. */
+    if (gpf_path != NULL) {
+	if (gpf_open_errno != 0) {
+	    simple_dialog(ESD_TYPE_WARN, ESD_BTN_OK,
+		"Could not open global preferences file\n\"%s\": %s.", gpf_path,
+		strerror(gpf_open_errno));
+	}
+	if (gpf_read_errno != 0) {
+	    simple_dialog(ESD_TYPE_WARN, ESD_BTN_OK,
+		"I/O error reading global preferences file\n\"%s\": %s.", gpf_path,
+		strerror(gpf_read_errno));
+	}
+    }
+
+    /* If the user's preferences file exists but we failed to open it
+       or had an error reading it, pop up an alert box; we defer that
+       until now, so that the alert box is more likely to come up on top of
+       the main window. */
+    if (pf_path != NULL) {
+	if (pf_open_errno != 0) {
+	    simple_dialog(ESD_TYPE_WARN, ESD_BTN_OK,
+		"Could not open your preferences file\n\"%s\": %s.", pf_path,
+		strerror(pf_open_errno));
+	}
+	if (pf_read_errno != 0) {
+	    simple_dialog(ESD_TYPE_WARN, ESD_BTN_OK,
+		"I/O error reading your preferences file\n\"%s\": %s.", pf_path,
+		strerror(pf_read_errno));
+	}
+	g_free(pf_path);
+	pf_path = NULL;
+    }
+
+    /* If the user's capture filter file exists but we failed to open it,
+       pop up an alert box; we defer that until now, so that the alert
+       box is more likely to come up on top of the main window. */
+    if (cf_path != NULL) {
+	  simple_dialog(ESD_TYPE_WARN, ESD_BTN_OK,
+	      "Could not open your capture filter file\n\"%s\": %s.", cf_path,
+	      strerror(cf_open_errno));
+	  g_free(cf_path);
+    }
+
+    /* If the user's display filter file exists but we failed to open it,
+       pop up an alert box; we defer that until now, so that the alert
+       box is more likely to come up on top of the main window. */
+    if (df_path != NULL) {
+	  simple_dialog(ESD_TYPE_WARN, ESD_BTN_OK,
+	      "Could not open your display filter file\n\"%s\": %s.", df_path,
+	      strerror(df_open_errno));
+	  g_free(df_path);
+    }
+
+    /* If the global disabled protocols file exists but we failed to open it,
+       or had an error reading it, pop up an alert box; we defer that until now,
+       so that the alert box is more likely to come up on top of the main
+       window. */
+    if (gdp_path != NULL) {
+	if (gdp_open_errno != 0) {
+	    simple_dialog(ESD_TYPE_WARN, ESD_BTN_OK,
+		"Could not open global disabled protocols file\n\"%s\": %s.",
+		gdp_path, strerror(gdp_open_errno));
+	}
+	if (gdp_read_errno != 0) {
+	    simple_dialog(ESD_TYPE_WARN, ESD_BTN_OK,
+		"I/O error reading global disabled protocols file\n\"%s\": %s.",
+		gdp_path, strerror(gdp_read_errno));
+	}
+	g_free(gdp_path);
+    }
+
+    /* If the user's disabled protocols file exists but we failed to open it,
+       or had an error reading it, pop up an alert box; we defer that until now,
+       so that the alert box is more likely to come up on top of the main
+       window. */
+    if (dp_path != NULL) {
+	if (dp_open_errno != 0) {
+	    simple_dialog(ESD_TYPE_WARN, ESD_BTN_OK,
+		"Could not open your disabled protocols file\n\"%s\": %s.", dp_path,
+		strerror(dp_open_errno));
+	}
+	if (dp_read_errno != 0) {
+	    simple_dialog(ESD_TYPE_WARN, ESD_BTN_OK,
+		"I/O error reading your disabled protocols file\n\"%s\": %s.", dp_path,
+		strerror(dp_read_errno));
+	}
+	g_free(dp_path);
+    }
+
+#ifdef HAVE_LIBPCAP
+    if (capture_child) {
+	/* This is the child process for a sync mode or fork mode capture,
+	   so just do the low-level work of a capture - don't create
+	   a temporary file and fork off *another* child process (so don't
+	   call "do_capture()"). */
+
+	   /* XXX - hand these stats to the parent process */
+	   capture(&stats_known, &stats);
+
+	   /* The capture is done; there's nothing more for us to do. */
+	   PostQuitMessage(0);
+    } else {
+	if (start_capture) {
+	    /* "-k" was specified; start a capture. */
+	    if (do_capture(save_file)) {
+		/* The capture started.  Open tap windows; we do so after creating
+		   the main window, to avoid GTK warnings, and after starting the
+		   capture, so we know we have something to tap. */
+//		if (tap_opt && tli) {
+//		    (*tli->func)(tap_opt);
+//		    g_free(tap_opt);
+//		}
+	    }
+	    if (save_file != NULL) {
+		/* Save the directory name for future file dialogs. */
+		s = get_dirname(save_file);  /* Overwrites save_file */
+		set_last_open_dir(s);
+		g_free(save_file);
+		save_file = NULL;
+	    }
+	}
+//	else {
+//	    set_menus_for_capture_in_progress(FALSE);
+//	}
+    }
+    if (!start_capture && (cfile.cfilter == NULL || strlen(cfile.cfilter) == 0)) {
+	if (cfile.cfilter) {
+	    g_free(cfile.cfilter);
+	}
+	cfile.cfilter = g_strdup(get_conn_cfilter());
+    }
+#else
+    set_menus_for_capture_in_progress(FALSE);
+#endif
+
+    while( GetMessage( &msg, NULL, 0, 0 ) != 0) {
+	TranslateMessage( &msg );
+	DispatchMessage( &msg );
+    }
+
+    epan_cleanup();
+
+    /* Shutdown windows sockets */
+    WSACleanup();
+
+    /* For some unknown reason, the "atexit()" call in "create_console()"
+       doesn't arrange that "destroy_console()" be called when we exit,
+       so we call it here if a console was created. */
+    if (console_was_created)
+        destroy_console();
+
+    return msg.wParam;
+}
+
+/* XXX - How do we fold this into ethereal-main.c? */
+LRESULT CALLBACK
+win32_main_wnd_proc(HWND hw_mainwin, UINT msg, WPARAM w_param, LPARAM l_param)
+{
+    BOOL ret;
+    read_status_t err;
+
+    switch( msg ) {
+	case WM_CREATE:
+	    ethereal_main_handle_wm_create(hw_mainwin);
+	    break;
+
+	case WM_NOTIFY:
+	    break;
+
+	case WM_SIZE:
+	    ethereal_main_handle_wm_size(hw_mainwin, (int) LOWORD(l_param), (int) HIWORD(l_param));
+	    break;
+
+	case WM_COMMAND:
+	    switch( w_param ) {
+		case IDM_ETHEREAL_MAIN_OPEN:
+		    ret = win32_open_file(hw_mainwin, open_name, MAX_PATH);
+		    if (ret) {
+			err = cf_open(open_name, FALSE, &cfile);
+			if (err != 0) {
+			    epan_cleanup();
+			    exit(2);
+			}
+			err = cf_read(&cfile);
+			if (err == READ_SUCCESS) {
+			    ethereal_packetlist_init(&cfile);
+			}
+		    }
+		break;
+		case IDM_ETHEREAL_MAIN_CLOSE:
+		    cf_close(&cfile);
+		break;
+		case IDM_ETHEREAL_MAIN_EDIT_PREFERENCES:
+		    prefs_dialog_init(hw_mainwin);
+		    break;
+		case IDM_ETHEREAL_MAIN_CAPTURE_START:
+		    capture_start_prep();
+		break;
+		case IDM_ETHEREAL_MAIN_CAPTURE_STOP:
+		    capture_stop();
+		break;
+		case IDM_ETHEREAL_MAIN_ABOUT_ETHEREAL:
+		    about_dialog_init(hw_mainwin);
+		break;
+		case IDM_ETHEREAL_MAIN_EXIT:
+		    PostQuitMessage(0);
+		break;
+		default:
+		break;
+	    }
+	break;
+
+	case WM_DESTROY:
+		PostQuitMessage( 0 );
+		break;
+
+	default:
+		return( DefWindowProc( hw_mainwin, msg, w_param, l_param ));
+    }
+
+    return 0;
+}
+
+BOOL CALLBACK
+capture_dialog_dlg_proc(HWND hw_capture, UINT msg, WPARAM w_param, LPARAM l_param)
+{
+    win32_element_t *dlg_box;
+
+    switch( msg ) {
+	case WM_INITDIALOG:
+	    capture_dialog_handle_wm_initdialog(hw_capture);
+	    dlg_box = (win32_element_t *) GetWindowLong(hw_capture, GWL_USERDATA);
+	    win32_element_assert (dlg_box);
+	    win32_element_resize(dlg_box, -1, -1);
+	    return 0;
+	    break;
+	case WM_COMMAND:
+	    return 0;
+	    break;
+	case WM_CLOSE:
+	    capture_dialog_dialog_hide(hw_capture);
+	    return 1;
+	    break;
+	default:
+	    return 0;
+    }
+    return 0;
+}
+
+BOOL CALLBACK
+capture_info_dialog_dlg_proc(HWND hw_cap_info, UINT msg, WPARAM w_param, LPARAM l_param)
+{
+    win32_element_t *dlg_box;
+
+    switch( msg ) {
+	case WM_INITDIALOG:
+	    capture_info_dialog_handle_wm_initdialog(hw_cap_info);
+	    dlg_box = (win32_element_t *) GetWindowLong(hw_cap_info, GWL_USERDATA);
+	    win32_element_assert (dlg_box);
+	    win32_element_resize(dlg_box, -1, -1);
+	    return 0;
+	    break;
+	case WM_COMMAND:
+	    g_warning("w_param: %04x", LOWORD(w_param));
+	    return 0;
+	    break;
+	case WM_CLOSE:
+	    dlg_box = (win32_element_t *) GetWindowLong(hw_cap_info, GWL_USERDATA);
+	    win32_element_assert (dlg_box);
+	    capture_info_dialog_stop_capture(dlg_box);
+	    return 1;
+	    break;
+	default:
+	    return 0;
+    }
+    return 0;
+}
+
+/* Call filter_packets() and add this filter string to the recent filter list */
+/* Taken from gtk/main.c. */
+int
+main_filter_packets(capture_file *cf, gchar *dftext)
+{
+    win32_element_t *dfilter_el = win32_identifier_get_str("dfilter-entry");
+    int              filter_packets_ret;
+    gboolean         add_filter = TRUE;
+
+    win32_element_assert(dfilter_el);
+
+    if ((filter_packets_ret = filter_packets(cf, dftext, FALSE))) {
+	if (SendMessage(dfilter_el->h_wnd, CB_FINDSTRINGEXACT, (WPARAM) -1, (LPARAM) (LPCTSTR) dftext) == CB_ERR) {
+	    SendMessage(dfilter_el->h_wnd, CB_ADDSTRING, 0, (LPARAM) (LPCTSTR) dftext);
+	}
+    }
+
+    return filter_packets_ret;
+}
+
+/* Apply the current display filter */
+void
+filter_apply_cb(win32_element_t *el) {
+    win32_element_t *dfilter_el = win32_identifier_get_str("dfilter-entry");
+    int len;
+    gchar *dftext;
+
+    win32_element_assert(dfilter_el);
+
+    len = SendMessage(dfilter_el->h_wnd, WM_GETTEXTLENGTH, 0, 0);
+    if (len > 0) {
+	len++;
+	dftext = g_malloc(len);
+	SendMessage(dfilter_el->h_wnd, WM_GETTEXT, (WPARAM) len, (LPARAM) dftext);
+	main_filter_packets(&cfile, dftext);
+	g_free (dftext);
+    }
+}
+
+/* Clear the display filter */
+void
+filter_clear_cb(win32_element_t *el) {
+    win32_element_t *dfilter_el = win32_identifier_get_str("dfilter-entry");
+
+    win32_element_assert(dfilter_el);
+
+    SendMessage(dfilter_el->h_wnd, WM_SETTEXT, 0, (LPARAM)(LPCTSTR) "");
+    main_filter_packets(&cfile, "");
+}
+
+/* Make sure we can perform a capture, and if so open the capture options dialog */
+/* XXX - Move this to capture-util.c */
+/* XXX - Switch over to value struct iteration, like we're using in the prefs dialog. */
+static void
+capture_start_prep() {
+    GList *if_list, *if_entry;
+    int   err;
+    char  err_str[PCAP_ERRBUF_SIZE];
+    win32_element_t *if_el, *cb_el, *sp_el, *tb_el;
+    if_info_t *if_info;
+
+    /* Is WPcap loaded? */
+    if (!has_wpcap) {
+	simple_dialog(ESD_TYPE_ERROR, ESD_BTN_OK,
+	    "Unable to load WinPcap (wpcap.dll); Ethereal will not be able "
+	    "to capture packets.\n\n"
+	    "In order to capture packets, WinPcap must be installed; see\n"
+	    "\n"
+	    "        http://winpcap.polito.it/\n";
+	    "\n"
+	    "or the mirror at\n"
+	    "\n"
+	    "        http://winpcap.mirror.ethereal.com/\n";
+	    "\n"
+	    "or the mirror at\n"
+	    "\n"
+	    "        http://www.mirrors.wiretapped.net/security/packet-capre/winpcap/\n";
+	    "\n"
+	    "for a downloadable version of WinPcap and for instructions\n"
+	    "on how to install WinPcap.");
+	return;
+    }
+
+    if_list = get_interface_list(&err, err_str);
+    if (if_list == NULL && err == CANT_GET_INTERFACE_LIST) {
+	simple_dialog(ESD_TYPE_WARN, ESD_BTN_OK, "Can't get list of interfaces: %s",
+	      err_str);
+    }
+
+    if (! g_hw_capture_dlg) {
+	g_hw_capture_dlg = capture_dialog_dialog_create(g_hw_mainwin);
+
+	if_el = win32_identifier_get_str("capture-dialog.interface-combo");
+	win32_element_assert(if_el);
+
+	for (if_entry = if_list; if_entry != NULL; if_entry = g_list_next(if_entry)) {
+	    if_info = if_entry->data;
+	    SendMessage(if_el->h_wnd, CB_ADDSTRING, 0, (LPARAM) (LPCTSTR) if_info->name);
+	}
+	SendMessage(if_el->h_wnd, CB_SETCURSEL, 0, 0);
+    }
+
+    /* Buffer size */
+    sp_el = win32_identifier_get_str("capture-dialog.buffer-size");
+    ethereal_spinner_set_range(sp_el, 1, 65535);
+    ethereal_spinner_set_pos(sp_el, capture_opts.buffer_size);
+
+    /* Promiscuous mode */
+    cb_el = win32_identifier_get_str("capture-dialog.promiscuous");
+    win32_checkbox_set_state(cb_el, capture_opts.promisc_mode);
+
+    /* Snaplen */
+    cb_el = win32_identifier_get_str("capture-dialog.packet-size-cb");
+    win32_checkbox_set_state(cb_el, capture_opts.has_snaplen);
+
+    sp_el = win32_identifier_get_str("capture-dialog.packet-size-spinner");
+    ethereal_spinner_set_range(sp_el, MIN_PACKET_SIZE, WTAP_MAX_PACKET_SIZE);
+    ethereal_spinner_set_pos(sp_el, capture_opts.snaplen);
+    win32_element_set_enabled(sp_el, capture_opts.has_snaplen);
+
+    /* Fill in our capture filter, if we have one */
+    if (cfile.cfilter) {
+	tb_el = win32_identifier_get_str("capture-dialog.capture-filter");
+	win32_textbox_set_text(tb_el, cfile.cfilter);
+    }
+
+    cb_el = win32_identifier_get_str("capture-dialog.next-file-every-size-cb");
+    win32_checkbox_set_state(cb_el, capture_opts.has_autostop_filesize);
+
+    /* Capture file options */
+    cb_el = win32_identifier_get_str("capture-dialog.use-multiple-files");
+    win32_checkbox_set_state(cb_el, capture_opts.multi_files_on);
+
+    /* Ring buffer file size */
+    cb_el = win32_identifier_get_str("capture-dialog.next-file-every-size-cb");
+    win32_checkbox_set_state(cb_el, capture_opts.has_autostop_filesize);
+
+    sp_el = win32_identifier_get_str("capture-dialog.next-file-every-size-spinner");
+    ethereal_spinner_set_range(sp_el, 1, INT_MAX);
+    ethereal_spinner_set_pos(sp_el, capture_opts.autostop_filesize);
+
+    /* Ring buffer duration */
+    cb_el = win32_identifier_get_str("capture-dialog.next-file-every-time-cb");
+    win32_checkbox_set_state(cb_el, capture_opts.has_file_duration);
+
+    sp_el = win32_identifier_get_str("capture-dialog.next-file-every-time-spinner");
+    ethereal_spinner_set_range(sp_el, 1, INT_MAX);
+    ethereal_spinner_set_pos(sp_el, capture_opts.file_duration);
+
+    /* Ring buffer files */
+    cb_el = win32_identifier_get_str("capture-dialog.ring-buffer-with-cb");
+    win32_checkbox_set_state(cb_el, capture_opts.has_ring_num_files);
+
+    sp_el = win32_identifier_get_str("capture-dialog.ring-buffer-with-spinner");
+    ethereal_spinner_set_range(sp_el, 2, RINGBUFFER_MAX_NUM_FILES);
+    ethereal_spinner_set_pos(sp_el, capture_opts.ring_num_files);
+    /* XXX - Set wrap and handle onchange */
+
+    /* Stop capture after */
+    cb_el = win32_identifier_get_str("capture-dialog.stop-capture-after-cb");
+    win32_checkbox_set_state(cb_el, capture_opts.has_autostop_files);
+
+    sp_el = win32_identifier_get_str("capture-dialog.stop-capture-after-spinner");
+    ethereal_spinner_set_range(sp_el, 1, INT_MAX);
+    ethereal_spinner_set_pos(sp_el, capture_opts.autostop_files);
+
+    /* Stop after... (capture limits frame) */
+    /* Packet count row */
+    cb_el = win32_identifier_get_str("capture-dialog.stop-after-packets-cb");
+    win32_checkbox_set_state(cb_el, capture_opts.has_autostop_packets);
+
+    sp_el = win32_identifier_get_str("capture-dialog.stop-after-packets-spinner");
+    ethereal_spinner_set_range(sp_el, 1, INT_MAX);
+    ethereal_spinner_set_pos(sp_el, capture_opts.autostop_packets);
+
+    /* Filesize row */
+    cb_el = win32_identifier_get_str("capture-dialog.stop-after-size-cb");
+    win32_checkbox_set_state(cb_el, capture_opts.has_autostop_filesize);
+
+    sp_el = win32_identifier_get_str("capture-dialog.stop-after-size-spinner");
+    ethereal_spinner_set_range(sp_el, 1, INT_MAX);
+    ethereal_spinner_set_pos(sp_el, capture_opts.autostop_filesize);
+
+    /* Duration row */
+    cb_el = win32_identifier_get_str("capture-dialog.stop-after-time-cb");
+    win32_checkbox_set_state(cb_el, capture_opts.has_autostop_duration);
+
+    sp_el = win32_identifier_get_str("capture-dialog.stop-after-time-spinner");
+    ethereal_spinner_set_range(sp_el, 1, INT_MAX);
+    ethereal_spinner_set_pos(sp_el, capture_opts.autostop_duration);
+
+    /* Set up our display options */
+    cb_el = win32_identifier_get_str("capture-dialog.update-real-time");
+    win32_checkbox_set_state(cb_el, capture_opts.sync_mode);
+
+    cb_el = win32_identifier_get_str("capture-dialog.auto-scroll-live");
+    win32_checkbox_set_state(cb_el, auto_scroll_live);
+
+    cb_el = win32_identifier_get_str("capture-dialog.show_info");
+    win32_checkbox_set_state(cb_el, !capture_opts.show_info);
+
+    /* Set up name resolution */
+    cb_el = win32_identifier_get_str("capture-mac-resolution");
+    win32_checkbox_set_state(cb_el, g_resolv_flags & RESOLV_MAC);
+
+    cb_el = win32_identifier_get_str("capture-network-resolution");
+    win32_checkbox_set_state(cb_el, g_resolv_flags & RESOLV_NETWORK);
+
+    cb_el = win32_identifier_get_str("capture-transport-resolution");
+    win32_checkbox_set_state(cb_el, g_resolv_flags & RESOLV_TRANSPORT);
+
+    capture_dialog_adjust_sensitivity(cb_el);
+
+    capture_dialog_dialog_show(g_hw_capture_dlg);
+}
+
+
+/* Routines defined elsewhere that we need to handle */
+
+
+/* Routines defined in ui_util.h */
+
+/* Set the name of the top-level window. */
+void set_main_window_name(gchar *window_name) {
+    SetWindowText(g_hw_mainwin, window_name);
+}
+
+/* create byte views in the main window */
+/* XXX - Move to ethereal-byteview.c? */
+void add_main_byte_views(epan_dissect_t *edt) {
+    win32_element_t *byteview = win32_identifier_get_str("main-byteview");
+    win32_element_t *treeview = win32_identifier_get_str("main-treeview");
+
+    win32_element_assert(byteview);
+    win32_element_assert(treeview);
+    ethereal_byteview_add(edt, byteview, treeview);
+}
+
+/* display the protocol tree in the main widow */
+/* XXX - Move to ethereal-treeview.c? */
+void main_proto_tree_draw(proto_tree *protocol_tree) {
+    win32_element_t *treeview = win32_identifier_get_str("main-treeview");
+    win32_element_t *byteview = win32_identifier_get_str("main-byteview");
+
+    win32_element_assert(treeview);
+    win32_element_assert(byteview);
+
+    ethereal_treeview_draw(treeview, protocol_tree, byteview);
+}
+
+void clear_tree_and_hex_views(void) {
+    win32_element_t *byteview = win32_identifier_get_str("main-byteview");
+    win32_element_t *treeview = win32_identifier_get_str("main-treeview");
+
+    ethereal_treeview_clear(treeview);
+    ethereal_byteview_clear(byteview);
+}
+
+/* Destroy all popup packet windows. */
+void destroy_packet_wins(void) {
+}
+
+gint packet_list_get_sort_column(void) {
+    return 0;
+}
+
+/* Destroy the save as dialog */
+void file_save_as_destroy(void) {
+}
+
+/* Defined in tap_dfilter_dlg.h */
+
+/* This will update the titles of the dialog windows when we load a new capture
+file. */
+void tap_dfilter_dlg_update (void) {
+}
+
+void
+set_last_open_dir(char *dirname)
+{
+    int len;
+    gchar *new_last_open_dir;
+
+    if (dirname) {
+	len = strlen(dirname);
+	if (dirname[len-1] == G_DIR_SEPARATOR) {
+		new_last_open_dir = g_strconcat(dirname, NULL);
+	}
+	else {
+	    new_last_open_dir = g_strconcat(dirname,
+		G_DIR_SEPARATOR_S, NULL);
+	}
+
+	if (last_open_dir == NULL ||
+	    strcmp(last_open_dir, new_last_open_dir) != 0)
+		updated_last_open_dir = TRUE;
+    }
+    else {
+	new_last_open_dir = NULL;
+	if (last_open_dir != NULL)
+	    updated_last_open_dir = TRUE;
+    }
+
+    if (last_open_dir) {
+	g_free(last_open_dir);
+    }
+    last_open_dir = new_last_open_dir;
+}
+
+void
+font_apply() {
+    win32_element_t *byteview;
+    byteview = win32_identifier_get_str("main-byteview");
+    win32_element_assert(byteview);
+    SendMessage(byteview->h_wnd, WM_SETFONT, (WPARAM) g_fixed_font, TRUE);
+}
\ No newline at end of file
diff -x entries -urN ethereal/xulender/win32-c-sdk/win32-main.h ethereal-win32/xulender/win32-c-sdk/win32-main.h
--- ethereal/xulender/win32-c-sdk/win32-main.h	1969-12-31 18:00:00.000000000 -0600
+++ ethereal-win32/xulender/win32-c-sdk/win32-main.h	2004-06-11 15:49:03.000000000 -0500
@@ -0,0 +1,9 @@
+#ifndef __WIN32_MAIN_H__
+#define __WIN32_MAIN_H__
+
+void filter_apply_cb();
+void filter_clear_cb();
+void set_last_open_dir(char *dirname);
+void font_apply();
+
+#endif /* win32-main.h */
diff -x entries -urN ethereal/xulender/win32-c-sdk/win32-main.rc ethereal-win32/xulender/win32-c-sdk/win32-main.rc
--- ethereal/xulender/win32-c-sdk/win32-main.rc	1969-12-31 18:00:00.000000000 -0600
+++ ethereal-win32/xulender/win32-c-sdk/win32-main.rc	2004-06-16 11:21:30.000000000 -0500
@@ -0,0 +1,20 @@
+/*************************************************************\
+* generic.rc: Resource script for Generic                     *
+*                                                             *
+*                                                             *
+\*************************************************************/
+
+#include <windows.h>
+#include "win32-main.h"
+#include "generated\about-dialog.rc"
+#include "generated\capture-dialog.rc"
+#include "generated\capture-info-dialog.rc"
+#include "generated\ethereal-main.rc"
+#include "generated\preferences-dialog.rc"
+#include "generated\progress-dialog.rc"
+#include "win32-file-dlg.rc"
+
+#define MANIFEST_RESOURCE_ID 1
+#define RT_MANIFEST 24
+
+MANIFEST_RESOURCE_ID RT_MANIFEST "wethereal.exe.manifest"
diff -x entries -urN ethereal/xulender/win32-c-sdk/win32-menu.c ethereal-win32/xulender/win32-c-sdk/win32-menu.c
--- ethereal/xulender/win32-c-sdk/win32-menu.c	1969-12-31 18:00:00.000000000 -0600
+++ ethereal-win32/xulender/win32-c-sdk/win32-menu.c	2004-02-05 14:08:02.000000000 -0600
@@ -0,0 +1,44 @@
+#ifdef HAVE_CONFIG_H
+# include "config.h"
+#endif
+
+#include "globals.h"
+#include "glib.h"
+
+#include "menu.h"
+
+/* Routines defined in menu.h */
+
+/* Add a new recent capture filename to the "Recent Files" submenu
+   (duplicates will be ignored) */
+void add_menu_recent_capture_file(gchar *file) {
+}
+
+/* Enable or disable menu items based on whether you have a capture file
+   you've finished reading. */
+void set_menus_for_capture_file(gboolean have_capture_file) {
+}
+
+/* Enable or disable menu items based on whether you have an unsaved
+   capture file you've finished reading. */
+void set_menus_for_unsaved_capture_file(gboolean have_unsaved_capture_file) {
+}
+
+/* Enable or disable menu items based on whether there's a capture in
+   progress. */
+void set_menus_for_capture_in_progress(gboolean capture_in_progress) {
+}
+
+/* Enable or disable menu items based on whether you have some captured
+   packets. */
+void set_menus_for_captured_packets(gboolean have_captured_packets) {
+}
+
+/* Enable or disable menu items based on whether a packet is selected. */
+void set_menus_for_selected_packet(capture_file *cf) {
+}
+
+/* Enable or disable menu items based on whether a tree row is selected
+   and and on whether a "Match Selected" can be done. */
+void set_menus_for_selected_tree_row(capture_file *cf) {
+}
diff -x entries -urN ethereal/xulender/win32-c-sdk/win32-progress-dlg.c ethereal-win32/xulender/win32-c-sdk/win32-progress-dlg.c
--- ethereal/xulender/win32-c-sdk/win32-progress-dlg.c	1969-12-31 18:00:00.000000000 -0600
+++ ethereal-win32/xulender/win32-c-sdk/win32-progress-dlg.c	2004-06-17 11:07:23.000000000 -0500
@@ -0,0 +1,304 @@
+#ifdef HAVE_CONFIG_H
+# include "config.h"
+#endif
+
+#include <glib.h>
+
+#include <stdio.h>
+
+#include <windows.h>
+#include <windowsx.h>
+#include <commctrl.h>
+
+#include "color.h"
+#include "ui_util.h"
+
+#include "win32-c-sdk.h"
+
+#include "win32-globals.h"
+#include "win32-util.h"
+
+#include "progress_dlg.h"     /* In the source tree root */
+#include "progress-dialog.h"  /* In the "generated" directory */
+
+struct progdlg {
+    GString         *title;
+    HWND             h_wnd;
+    gboolean        *stop_flag;
+    GTimeVal         start_time;
+    GTimeVal         last_time;
+    win32_element_t *task_title_ds;
+    win32_element_t *item_title_ds;
+    win32_element_t *status_ds;
+    win32_element_t *elapsed_ds;
+    win32_element_t *time_left_ds;
+    win32_element_t *progress_pm;
+    win32_element_t *percentage_ds;
+};
+
+#define DIALOG_DATA_KEY "progress-dialog.data"
+
+/* Routines defined in progress_dlg.h */
+
+/*
+ * Create and pop up the progress dialog {
+} allocate a "progdlg_t"
+ * and initialize it to contain all information the implementation
+ * needs in order to manipulate the dialog, and return a pointer to
+ * it.
+ *
+ * The first argument is the task to do, e.g. "Loading".
+ * The second argument is the item to do, e.g. "capture.cap".
+ * The third argument is the string to put in the "stop this operation" button.
+ * The fourth argument is a pointer to a Boolean variable that will be
+ *   set to TRUE if the user hits that button.
+ */
+progdlg_t *create_progress_dlg(const gchar *task_title, const gchar *item_title,
+	gboolean *stop_flag) {
+    win32_element_t *dlg_box, *cancel_bt;
+    progdlg_t       *dlg;
+    GString         *item_title_dup, *task_title_dup;
+
+    dlg = g_malloc(sizeof (progdlg_t));
+
+    dlg->h_wnd = progress_dialog_dialog_create(g_hw_mainwin);
+    dlg->stop_flag = stop_flag;
+
+    dlg_box = (win32_element_t *) GetWindowLong(dlg->h_wnd, GWL_USERDATA);
+    win32_element_set_data(dlg_box, DIALOG_DATA_KEY, dlg);
+
+    item_title_dup = g_string_new(item_title);
+    if (item_title_dup->len > 110) {
+	g_string_truncate(item_title_dup, 100);
+	g_string_append(item_title_dup, "...");
+    }
+
+    dlg->title = g_string_new(task_title);
+    g_string_sprintfa(dlg->title, ": %s", item_title_dup->str);
+    SetWindowText(dlg->h_wnd, dlg->title->str);
+
+    dlg->task_title_ds = win32_identifier_get_str("progress-dlg.task_title");
+    win32_element_assert(dlg->task_title_ds);
+    task_title_dup = g_string_new(task_title);
+    g_string_append(task_title_dup, ":");
+    SetWindowText(dlg->task_title_ds->h_wnd, task_title_dup->str);
+
+    dlg->item_title_ds = win32_identifier_get_str("progress-dlg.item_title");
+    win32_element_assert(dlg->item_title_ds);
+    SetWindowText(dlg->item_title_ds->h_wnd, item_title_dup->str);
+
+    dlg->status_ds = win32_identifier_get_str("progress-dlg.status");
+    win32_element_assert(dlg->status_ds);
+
+    dlg->elapsed_ds = win32_identifier_get_str("progress-dlg.time.elapsed");
+    win32_element_assert(dlg->elapsed_ds);
+
+    dlg->time_left_ds = win32_identifier_get_str("progress-dlg.time.left");
+    win32_element_assert(dlg->time_left_ds);
+
+    dlg->progress_pm = win32_identifier_get_str("progress-dlg.progress");
+    win32_element_assert(dlg->progress_pm);
+
+    dlg->percentage_ds = win32_identifier_get_str("progress-dlg.percentage");
+    win32_element_assert(dlg->percentage_ds);
+
+    cancel_bt = win32_identifier_get_str("progress-dlg.cancel");
+    win32_element_assert(cancel_bt);
+    win32_element_set_data(cancel_bt, DIALOG_DATA_KEY, dlg);
+
+    g_get_current_time(&dlg->start_time);
+    ZeroMemory(&dlg->last_time, sizeof(dlg->last_time));
+
+    g_string_free(item_title_dup, TRUE);
+    g_string_free(task_title_dup, TRUE);
+    progress_dialog_dialog_show(dlg->h_wnd);
+    return dlg;
+}
+
+/* Create a progress dialog, but only if it's not likely to disappear
+ * immediately, which can be disconcerting for the user.
+ *
+ * The first four arguments are as for create_progress_dlg().
+ * Following those is a pointer to a GTimeVal structure which holds
+ * the time at which the caller started to process the data, and the
+ * current progress (0..1).
+ */
+/* XXX - Copied verbatim from gtk/progress_dlg.c */
+progdlg_t *
+delayed_create_progress_dlg(const gchar *task_title, const gchar *item_title,
+	gboolean *stop_flag, const GTimeVal *start_time, gfloat progress) {
+    GTimeVal    time_now;
+    gdouble     delta_time;
+    gdouble     min_display;
+    progdlg_t  *dlg;
+
+#define INIT_DELAY          0.1 * 1e6
+#define MIN_DISPLAY_DEFAULT 2.0 * 1e6
+
+    /* Create a progress dialog, but only if it's not likely to disappear
+     * immediately, which can be disconcerting for the user.
+     *
+     * Arguments are as for create_progress_dlg(), plus:
+     *
+     * (a) A pointer to a GTimeVal structure which holds the time at which
+     *     the caller started to process the data.
+     * (b) The current progress as a real number between 0 and 1.
+     */
+
+    g_get_current_time(&time_now);
+
+    /* Get the time elapsed since the caller started processing the data */
+
+    delta_time = (time_now.tv_sec - start_time->tv_sec) * 1e6 +
+	time_now.tv_usec - start_time->tv_usec;
+
+    /* Do nothing for the first INIT_DELAY microseconds */
+
+    if (delta_time < INIT_DELAY)
+	return NULL;
+
+    /* If we create the progress dialog we want it to be displayed for a
+     * minimum of MIN_DISPLAY_DEFAULT microseconds.  However, if we
+     * previously estimated that the progress dialog didn't need to be
+     * created and the caller's processing is slowing down (perhaps due
+     * to the action of the operating system's scheduler on a compute-
+     * intensive task), we tail off the minimum display time such that
+     * the progress dialog will always be created after
+     * 2*MIN_DISPLAY_DEFAULT microseconds.
+     */
+
+    if (delta_time <= INIT_DELAY + MIN_DISPLAY_DEFAULT)
+	min_display = MIN_DISPLAY_DEFAULT;
+    else
+	min_display = 2 * MIN_DISPLAY_DEFAULT - delta_time;
+    /* = MIN_DISPLAY_DEFAULT - (delta_time - MIN_DISPLAY_DEFAULT) */
+
+    /* Assuming the progress increases linearly, see if the progress
+     * dialog would be displayed for at least min_display microseconds if
+     * we created it now.
+     */
+
+    if (progress >= (delta_time / (delta_time + min_display)))
+	return NULL;
+
+   dlg = create_progress_dlg(task_title, item_title, stop_flag);
+
+   /* set dialog start_time to the start of processing, not box creation */
+   dlg->start_time = *start_time;
+
+   return dlg;
+}
+
+/*
+ * Update the progress information of the progress dialog box.
+ */
+void update_progress_dlg(progdlg_t *dlg, gfloat percentage, gchar *status) {
+    GTimeVal   time_now;
+    gdouble    delta_time;
+    gulong     ul_left;
+    gulong     ul_elapsed;
+    gulong     ul_percentage;
+    gchar      tmp[100];
+
+    /* calculate some timing values */
+    g_get_current_time(&time_now);
+
+    delta_time = (time_now.tv_sec - dlg->last_time.tv_sec) * 1e6 +
+	    time_now.tv_usec - dlg->last_time.tv_usec;
+
+    /* after the first time don't update more than every 100ms */
+    if (dlg->last_time.tv_sec && delta_time < 100*1000)
+	return;
+
+    dlg->last_time = time_now;
+    delta_time = (time_now.tv_sec - dlg->start_time.tv_sec) * 1e6 +
+	time_now.tv_usec - dlg->start_time.tv_usec;
+
+    ul_percentage = (gulong) (percentage * 100);
+    ul_elapsed = (gulong) (delta_time / 1000 / 1000);
+
+    /* update labels */
+    g_snprintf(tmp, sizeof(tmp), "%lu%% of %s", ul_percentage, dlg->title->str);
+    SetWindowText(dlg->h_wnd, tmp);
+
+    SetWindowText(dlg->status_ds->h_wnd, status);
+
+    g_snprintf(tmp, sizeof(tmp), "%lu%%", ul_percentage);
+    SetWindowText(dlg->percentage_ds->h_wnd, tmp);
+
+    g_snprintf(tmp, sizeof(tmp), "%02lu:%02lu", ul_elapsed / 60,
+	    ul_elapsed % 60);
+    SetWindowText(dlg->elapsed_ds->h_wnd, tmp);
+
+    /* show "Time Left" only,
+    * if at least 5% and 3 seconds running (to get a useful estimation) */
+    if (ul_percentage >= 5 && delta_time >= 3 * 1e6) {
+	ul_left = (gulong) ((delta_time / percentage - delta_time) / 100 / 1000);
+
+	g_snprintf(tmp, sizeof(tmp), "%02lu:%02lu", ul_left / 60,
+		ul_left % 60);
+	SetWindowText(dlg->time_left_ds->h_wnd, tmp);
+    }
+
+    /* update progress bar */
+
+    SendMessage(dlg->progress_pm->h_wnd, PBM_SETPOS, (int) (percentage * 100.0), 0);
+
+    /*
+     * Flush out the update and process any input events.
+     */
+    main_window_update();
+}
+
+/*
+ * Destroy the progress dialog.
+ */
+void destroy_progress_dlg(progdlg_t *dlg) {
+    win32_element_t *dlg_el;
+
+    dlg_el = (win32_element_t *) GetWindowLong(dlg->h_wnd, GWL_USERDATA);
+    win32_element_assert(dlg_el);
+    win32_element_destroy(dlg_el, TRUE);
+
+    g_string_free(dlg->title, TRUE);
+    g_free(dlg);
+}
+
+/* Command sent by element type <button>, id "progress-dlg.cancel" */
+void progress_dialog_destroy (win32_element_t *cancel_bt) {
+    progdlg_t *dlg;
+
+    win32_element_assert(cancel_bt);
+    dlg = (progdlg_t *) win32_element_get_data(cancel_bt, DIALOG_DATA_KEY);
+    *dlg->stop_flag = TRUE;
+}
+
+BOOL CALLBACK
+progress_dialog_dlg_proc(HWND hw_progress, UINT msg, WPARAM w_param, LPARAM l_param)
+{
+    win32_element_t *dlg_box;
+    progdlg_t *dlg;
+
+    switch( msg ) {
+	case WM_INITDIALOG:
+	    progress_dialog_handle_wm_initdialog(hw_progress);
+	    dlg_box = (win32_element_t *) GetWindowLong(hw_progress, GWL_USERDATA);
+	    win32_element_assert (dlg_box);
+	    win32_element_resize(dlg_box, -1, -1);
+	    return 0;
+	    break;
+	case WM_COMMAND:
+	    return 0;
+	    break;
+	case WM_CLOSE:
+	    dlg_box = (win32_element_t *) GetWindowLong(hw_progress, GWL_USERDATA);
+	    win32_element_assert (dlg_box);
+	    dlg = (progdlg_t *) win32_element_get_data(dlg_box, DIALOG_DATA_KEY);
+	    *dlg->stop_flag = TRUE;
+	    return 1;
+	    break;
+	default:
+	    return 0;
+    }
+    return 0;
+}
\ No newline at end of file
diff -x entries -urN ethereal/xulender/win32-c-sdk/win32-simple-dialog.c ethereal-win32/xulender/win32-c-sdk/win32-simple-dialog.c
--- ethereal/xulender/win32-c-sdk/win32-simple-dialog.c	1969-12-31 18:00:00.000000000 -0600
+++ ethereal-win32/xulender/win32-c-sdk/win32-simple-dialog.c	2004-05-21 11:15:11.000000000 -0500
@@ -0,0 +1,163 @@
+#ifdef HAVE_CONFIG_H
+# include "config.h"
+#endif
+
+#include <glib.h>
+
+#include <stdio.h>
+
+#include <epan/strutil.h>
+
+#include <windows.h>
+
+#include "win32-globals.h"
+
+#include "simple_dialog.h"
+
+/* Derived from gtk/simple_dialog.c */
+
+/*
+ * Queue for messages requested before we have a main window.
+ */
+typedef struct {
+	gint	type;
+	gint	btn_mask;
+	char	*message;
+} queued_message_t;
+
+static GSList *message_queue;
+
+static int
+display_simple_dialog(gint type, gint btn_mask, char *message)
+{
+    UINT flags = 0;;
+
+
+    switch (type) {
+	case ESD_TYPE_WARN:
+	    flags |= MB_ICONERROR;
+	break;
+	case ESD_TYPE_CONFIRMATION:
+	    flags |= MB_ICONQUESTION;
+	break;
+	case ESD_TYPE_ERROR:
+	    flags |= MB_ICONWARNING;
+	break;
+	case ESD_TYPE_INFO:
+	default:
+	    flags |= MB_ICONINFORMATION;
+	break;
+    }
+
+    if (type)
+	flags |= MB_TASKMODAL;
+
+    switch(btn_mask) {
+	case (ESD_BTN_OK):
+	    flags |= MB_OK;
+	    break;
+	case (ESD_BTN_CLEAR | ESD_BTN_CANCEL):
+	    flags |= MB_OKCANCEL;
+	    break;
+	case (ESD_BTNS_YES_NO_CANCEL):
+	    flags |= MB_YESNOCANCEL;
+	    break;
+	default:
+	    g_assert_not_reached();
+	    break;
+    }
+
+    return MessageBox(NULL, message, "Ethereal", flags);
+}
+
+void
+display_queued_messages(void)
+{
+  queued_message_t *queued_message;
+
+  while (message_queue != NULL) {
+    queued_message = message_queue->data;
+    message_queue = g_slist_remove(message_queue, queued_message);
+
+    display_simple_dialog(queued_message->type, queued_message->btn_mask,
+                          queued_message->message);
+
+    g_free(queued_message->message);
+    g_free(queued_message);
+  }
+}
+
+/* Simple dialog function - Displays a dialog box with the supplied message
+ * text.
+ *
+ * Args:
+ * type       : One of ESD_TYPE_*.
+ * btn_mask   : The value passed in determines which buttons are displayed.
+ * msg_format : Sprintf-style format of the text displayed in the dialog.
+ * ...        : Argument list for msg_format
+ */
+
+gpointer
+vsimple_dialog(gint type, gint btn_mask, const gchar *msg_format, va_list ap)
+{
+    gchar            *message;
+    queued_message_t *queued_message;
+    int               ret;
+
+    /* Format the message. */
+    message = g_strdup_vprintf(msg_format, ap);
+
+
+    /* If we don't yet have a main window, queue up the message for later
+       display. */
+    if (g_hw_mainwin == NULL) {
+	queued_message = g_malloc(sizeof (queued_message_t));
+	queued_message->type = type;
+	queued_message->btn_mask = btn_mask;
+	queued_message->message = message;
+	message_queue = g_slist_append(message_queue, queued_message);
+	return NULL;
+    }
+
+    /*
+     * Do we have any queued up messages?  If so, pop them up.
+     */
+    display_queued_messages();
+
+    ret = display_simple_dialog(type, btn_mask, message);
+
+    g_free(message);
+
+    return (gpointer) ret;
+}
+
+gpointer
+simple_dialog(gint type, gint btn_mask, const gchar *msg_format, ...)
+{
+    va_list ap;
+    gpointer ret;
+
+    va_start(ap, msg_format);
+    ret = vsimple_dialog(type, btn_mask, msg_format, ap);
+    va_end(ap);
+    return ret;
+}
+
+extern char *simple_dialog_primary_start(void) {
+    return "";
+}
+
+extern char *simple_dialog_format_message(const char *msg) {
+    char *str;
+
+    if (msg) {
+        str = xml_escape(msg);
+    } else {
+        str = NULL;
+    }
+    return str;
+}
+
+extern char *simple_dialog_primary_end(void) {
+    return "";
+}
diff -x entries -urN ethereal/xulender/win32-c-sdk/win32-statusbar.c ethereal-win32/xulender/win32-c-sdk/win32-statusbar.c
--- ethereal/xulender/win32-c-sdk/win32-statusbar.c	1969-12-31 18:00:00.000000000 -0600
+++ ethereal-win32/xulender/win32-c-sdk/win32-statusbar.c	2004-02-05 14:08:02.000000000 -0600
@@ -0,0 +1,33 @@
+#ifdef HAVE_CONFIG_H
+# include "config.h"
+#endif
+
+#include "globals.h"
+#include "glib.h"
+
+#include "statusbar.h"
+
+/* Routines defined in statusbar.h */
+/*
+ * Push a message referring to file access onto the statusbar.
+ */
+void statusbar_push_file_msg(gchar *msg) {
+}
+
+/*
+ * Pop a message referring to file access off the statusbar.
+ */
+void statusbar_pop_file_msg(void) {
+}
+
+/*
+ * Push a message referring to the currently-selected field onto the statusbar.
+ */
+void statusbar_push_field_msg(gchar *msg) {
+}
+
+/*
+ * Pop a message referring to the currently-selected field off the statusbar.
+ */
+void statusbar_pop_field_msg(void) {
+}
diff -x entries -urN ethereal/xulender/win32-c-sdk/win32-tap-register.c ethereal-win32/xulender/win32-c-sdk/win32-tap-register.c
--- ethereal/xulender/win32-c-sdk/win32-tap-register.c	1969-12-31 18:00:00.000000000 -0600
+++ ethereal-win32/xulender/win32-c-sdk/win32-tap-register.c	2004-02-05 14:08:02.000000000 -0600
@@ -0,0 +1,3 @@
+#include "register.h"
+
+void register_all_tap_listeners(void) { }
diff -x entries -urN ethereal/xulender/win32-c-sdk/win32-util.c ethereal-win32/xulender/win32-c-sdk/win32-util.c
--- ethereal/xulender/win32-c-sdk/win32-util.c	1969-12-31 18:00:00.000000000 -0600
+++ ethereal-win32/xulender/win32-c-sdk/win32-util.c	2004-06-02 17:25:14.000000000 -0500
@@ -0,0 +1,55 @@
+#ifdef HAVE_CONFIG_H
+# include "config.h"
+#endif
+
+#include "globals.h"
+#include "glib.h"
+#include <windows.h>
+#include <windowsx.h>
+#include <commctrl.h>
+
+#include "win32-c-sdk.h"
+
+#include "win32-globals.h"
+#include "win32-util.h"
+
+
+/*
+ * The amount of work you have to go through just to get the screen 
+ * size of a string is amazing.
+ */
+void win32_get_text_size(HWND hwnd, LPCSTR text, LPSIZE szp) {
+    HDC        hdc;
+    HFONT      hw_font, hdc_font;
+    TEXTMETRIC tm;
+    int        width = 0, height = 0, len;
+    LPCSTR     cptr = text, next_nl;
+
+    while (cptr) {
+	next_nl = strchr(cptr, '\n');
+	if (next_nl == NULL) {
+	    len = strlen(cptr);
+	} else {
+	    len = next_nl - cptr;
+	}
+	hw_font = (HFONT) SendMessage(hwnd, WM_GETFONT, 0, 0);
+	hdc = GetWindowDC(hwnd);
+	hdc_font = SelectObject(hdc, hw_font);
+	GetTextExtentPoint(hdc, cptr, len, szp);
+	GetTextMetrics(hdc, &tm);
+	SelectObject(hdc, hdc_font);
+	ReleaseDC(hwnd, hdc);
+	if (szp->cx > width) {
+	    width = szp->cx;
+	}
+	height += tm.tmHeight + tm.tmExternalLeading;
+	cptr = strchr(cptr, '\n');
+	while (cptr != NULL && cptr[0] == '\n') {
+	    cptr++;
+	}
+    }
+
+    szp->cx = width;
+    szp->cy = height;
+}
+
diff -x entries -urN ethereal/xulender/win32-c-sdk/win32-util.h ethereal-win32/xulender/win32-c-sdk/win32-util.h
--- ethereal/xulender/win32-c-sdk/win32-util.h	1969-12-31 18:00:00.000000000 -0600
+++ ethereal-win32/xulender/win32-c-sdk/win32-util.h	2004-06-02 09:13:01.000000000 -0500
@@ -0,0 +1,15 @@
+#ifndef __WIN32_UTIL_H__
+#define __WIN32_UTIL_H__
+
+#include "../../color.h"
+
+/* XXX - For some reason, MapDialogRect() and GetDialogBaseUnits() don't work
+ * for us.  Instead, we use contrived base units that give us the results we
+ * need for DEFAULT_GUI_FONT.
+ */
+#define DIALOG2PIXELX(x) ((int) (x * 6.0) / 4)
+#define DIALOG2PIXELY(y) ((int) (y * 13.25 / 8))
+
+void win32_get_text_size(HWND hwnd, LPCSTR text, LPSIZE szp);
+
+#endif /* win32-util.h */
diff -x entries -urN ethereal/xulender/win32csdk.py ethereal-win32/xulender/win32csdk.py
--- ethereal/xulender/win32csdk.py	1969-12-31 18:00:00.000000000 -0600
+++ ethereal-win32/xulender/win32csdk.py	2004-07-20 16:10:07.000000000 -0500
@@ -0,0 +1,1259 @@
+# Win32csdk.py - Genskel module for creating Win32 C SDK code
+# Tabs: 8  indent: 4
+
+# To do:
+# - Come up with some sort of box packing system that will properly arrange
+#   controls inside containers.
+# - Link menus to commands
+# - Pull in event handler from win32-main.c
+# - Dump out a list of functions we need to create
+
+from frontendutil import *
+import string
+
+cur_cf = None
+cur_hf = None
+cur_rcf = None
+cur_window_id = None
+cur_var_name = None
+cur_width = 250
+cur_height = 100
+xpadding = 15
+ypadding = 15
+cur_menu_id = 1000
+start_group = 0
+callbacks = {}
+
+class CodeGenerationError:
+    pass
+
+def get_func_prefix():
+    return 'win32'
+
+def cleanup():
+    cbkeys = callbacks.keys()
+    cbkeys.sort()
+    for cb in cbkeys:
+	cur_hf.write_body('''
+%(comments)svoid %(callback)s  (win32_element_t *);\n''' % {
+	    'comments': callbacks[cb],
+	    'callback': cb
+	})
+    if cur_cf is not None:
+	cur_cf.close()
+    if cur_hf is not None:
+	cur_hf.close()
+    if cur_rcf is not None:
+	cur_rcf.close()
+
+#
+# Generate any attribute-specific code, e.g. for "id" or "orient"
+#
+def get_element_attributes(node):
+    default       = get_attribute(node, 'default',       'false')
+    disabled      = get_attribute(node, 'disabled',      'false')
+    flex          = get_attribute(node, 'flex',          None)
+    flexgroup     = get_attribute(node, 'flexgroup',     None)
+    el_id         = get_attribute(node, 'id',            None)
+    minheight     = get_attribute(node, 'minheight',     None)
+    minwidth      = get_attribute(node, 'minwidth',      None)
+    orient        = get_attribute(node, 'orient',        None)
+    sortdirection = get_attribute(node, 'sortdirection', 'natural')
+    style         = get_attribute(node, 'style',         None)
+
+    oncommand = get_attribute(node, 'oncommand', None)
+    oninput   = get_attribute(node, 'oninput',   None)
+
+    # XXX - Should we have a general routine for setting the default element?
+    if (default.lower() == 'true'):
+	cur_cf.write_body('    SetFocus(cur_el->h_wnd);\n')
+    if (disabled.lower() == 'true'):
+	cur_cf.write_body('    win32_element_set_disabled(cur_el, TRUE);\n')
+    if (flex):
+	cur_cf.write_body('    cur_el->flex = %s;\n' % (flex))
+    if (flexgroup):
+	cur_cf.write_body('    cur_el->flexgroup = %s;\n' % (flexgroup))
+    if (el_id):
+	cur_cf.write_body('    win32_element_set_id(cur_el, "' +  el_id + '");\n')
+    if (minheight):
+	cur_cf.write_body('    cur_el->minheight = %s;\n' % (minheight))
+    if (minwidth):
+	cur_cf.write_body('    cur_el->minwidth = %s;\n' % (minwidth))
+
+    if (oncommand):
+	if (id is None):
+	    raise CodeGenerationError
+	cur_cf.write_body('    cur_el->oncommand = %s;' % (oncommand))
+	add_callback(node.nodeName, el_id, oncommand)
+    if (oninput):
+	if (id is None):
+	    raise CodeGenerationError
+	cur_cf.write_body('    cur_el->oninput = %s;' % (oninput))
+	add_callback(node.nodeName, el_id, oninput)
+
+    if (orient):
+	if (orient.lower() == 'horizontal'):
+	    cur_cf.write_body('    cur_el->orient = BOX_ORIENT_HORIZONTAL;\n')
+	elif (orient.lower() == 'vertical'):
+	    cur_cf.write_body('    cur_el->orient = BOX_ORIENT_VERTICAL;\n')
+	else:
+	    raise CodeGenerationError
+
+    if sortdirection.lower() == 'ascending':
+	cur_cf.write_body('    cur_el->sortdirection = EL_SORT_ASCENDING;\n')
+    elif sortdirection.lower() == 'descending':
+	cur_cf.write_body('    cur_el->sortdirection = EL_SORT_DESCENDING;\n')
+
+    get_element_style(style)
+
+#
+# Parse out any CSS style information, and generate code accordingly
+#
+def get_element_style(style):
+    if style is None:
+	return
+
+    for parts in style.split(';'):
+	if parts.find(':') == -1:
+	    continue
+	prop, val = parts.split(':', 2)
+	prop = prop.strip()
+	val = val.strip()
+	if prop.lower() == 'text-align':
+	    taval = None
+	    if val.lower() in ['left', 'right', 'center', 'justify']:
+		cur_cf.write_body('    cur_el->text_align = CSS_TEXT_ALIGN_%s;\n'
+		    % val.upper())
+
+#
+# Add a callback function
+#
+def add_callback(nodename, el_id, cbname):
+    comment = '/* Command sent by element type <%(nodename)s>, id "%(id)s" */\n' % {
+	'nodename': nodename,
+	'id': el_id,
+    }
+
+    if callbacks.has_key(cbname):
+	callbacks[cbname] = callbacks[cbname] + comment
+    else:
+	callbacks[cbname] = comment
+
+
+#
+# General element generators
+#
+# These are called from xulender.py and MUST be named "win32_gen_<element>()"
+# or "win32_gen_<element>_end()".
+#
+
+#
+# <button>
+#
+
+def win32_gen_button(node):
+    label = get_attribute(node, 'label', '')
+
+    cur_cf.write_body('''
+    /* Begin <button> */
+    cur_el = win32_button_new(cur_box->h_wnd, "%(label)s");
+    win32_box_add(cur_box, cur_el, -1);
+''' % {'label': label})
+
+    get_element_attributes(node)
+
+    cur_cf.write_body('    /* End <button> */\n')
+
+#
+# <caption>
+#
+#
+def win32_gen_caption(node):
+    # Captions MUST be a child of <groupbox>
+    # XXX - Move to xulender.py
+    if node.parentNode.nodeName != 'groupbox':
+	raise CodeGenerationError
+
+    title = ""
+    lines = []
+    for child in node.childNodes:
+	if child.nodeType == node.TEXT_NODE:
+	    lines.append(child.data.strip())
+	title = string.join(lines, '')
+	title = title.replace('\n', '')
+	print 'caption: ' + title
+
+    # XXX - Groupboxes under Windows tend to eat various messages.  To
+    # work around this, we add an insulating vbox.
+    cur_cf.write_body('''
+    /* Begin <caption> */
+    win32_groupbox_set_title(cur_box, "%(title)s");
+    /* End <caption> */
+''' % {'title': title})
+
+#
+# <checkbox>
+#
+
+def win32_gen_checkbox(node):
+    label = get_attribute(node, 'label', '')
+
+    cur_cf.write_body('''
+    /* Begin <checkbox> */
+    cur_el = win32_checkbox_new(cur_box->h_wnd, "%(label)s");
+    win32_box_add(cur_box, cur_el, -1);
+''' % {'label': label})
+
+    get_element_attributes(node)
+
+    cur_cf.write_body('\n    /* End <checkbox> */\n')
+
+#
+# <column>
+#
+# XXX - We need to verify that we're inside a <grid><columns></columns></grid>
+# construct.
+#
+def win32_gen_column(node):
+
+    flex = float(get_attribute(node, 'flex', '0.0'))
+    flexgroup = int(get_attribute(node, 'flexgroup', '0'))
+    cur_cf.write_body('''
+    /* Begin <column> */
+    win32_grid_add_column(cur_box, %(flex)1.1f, %(flexgroup)d);
+    /* End <column> */
+    ''' % {
+	'flex': flex,
+	'flexgroup': flexgroup
+	})
+
+#
+# <deck>
+#
+
+def win32_gen_deck(node):
+    selectedindex = get_attribute(node, 'selectedindex', None)
+
+    cur_cf.write_body('''
+    /* Begin <deck> */
+    cur_el = win32_deck_new(cur_box->h_wnd);
+    win32_box_add(cur_box, cur_el, -1);
+''')
+
+    if selectedindex is not None:
+	cur_cf.write_body('    win32_deck_set_selectedindex(cur_el, %s);\n' % (selectedindex))
+
+    get_element_attributes(node)
+
+    cur_cf.write_body('''
+    box_stack = g_list_prepend(box_stack, cur_box);
+    cur_box = cur_el;
+''')
+
+def win32_gen_deck_end(node):
+    cur_cf.write_body('''
+    box_stack = g_list_first(box_stack);
+    cur_box = (win32_element_t *) box_stack->data;
+    box_stack = g_list_remove(box_stack, cur_box);
+    /* End <deck> */
+''')
+
+#
+# <description>
+#
+def win32_gen_description(node):
+    text = ""
+    lines = []
+    for child in node.childNodes:
+	if child.nodeType == node.TEXT_NODE:
+	    lines.append(child.data.strip())
+	text = string.join(lines, '')
+	text = text.replace('\n', '')
+	print 'text: ' + text
+
+    cur_cf.write_body('''
+    /* Begin <description> */
+    cur_el = win32_description_new(cur_box->h_wnd, "%(text)s");
+    win32_box_add(cur_box, cur_el, -1);
+''' % {'text': text})
+
+    get_element_attributes(node)
+
+    cur_cf.write_body('''
+    win32_description_apply_styles(cur_el);
+    /* End <description> */
+''')
+
+
+#
+# <dialog>
+#
+# Under the SDK, dialogs are created by feeding a dialog template to
+# CreateDialog().  We're using XUL to lay out the controls instead of
+# dialog templates.
+#
+# XXX - How dow we make this modal?
+#
+def win32_gen_dialog(node):
+    global cur_cf, cur_hf, cur_rcf, cur_window_id
+
+    try:
+	cur_window_id = node.attributes['id'].value
+	cur_var_name = id_to_name(cur_window_id)
+    except:
+	CodeGenerationError
+
+    cur_width = int(get_attribute(node, 'width', 250))
+    cur_height = int(get_attribute(node, 'height', 100))
+    title = get_attribute(node, 'title', '[ Untitled - ' + cur_window_id + ' ]')
+    header_file_name = cur_window_id + '.h'
+
+    cur_cf = sect_file(cur_window_id + '.c')
+    cur_cf.write_body('''
+#include "config.h"
+
+#ifdef HAVE_LIBPCAP
+#include <pcap.h>
+#endif
+
+#include <windows.h>
+#include <windowsx.h>
+#include <commctrl.h>
+
+#include "globals.h"
+
+#include <epan/epan.h>
+
+#include "win32-c-sdk.h"
+#include "ethereal-win32.h"
+
+#include "%(header_file_name)s"
+
+HWND g_hw_dlg;
+
+/* Create dialog "%(cur_window_id)s" */
+HWND
+%(varname)s_dialog_create (HWND hw_parent) {
+    HINSTANCE h_instance = (HINSTANCE) GetWindowLong(hw_parent, GWL_HINSTANCE);
+
+    g_hw_dlg = CreateDialog (h_instance, "%(varname)s", hw_parent,
+	%(varname)s_dlg_proc);
+
+    if (!g_hw_dlg)
+	return NULL;
+
+    return g_hw_dlg;
+}
+
+/* Show dialog "%(cur_window_id)s" */
+void
+%(varname)s_dialog_show (HWND hw_dlg) {
+    ShowWindow(hw_dlg, SW_SHOW);
+}
+
+/* Hide dialog "%(cur_window_id)s" */
+void
+%(varname)s_dialog_hide (HWND hw_dlg) {
+    ShowWindow(hw_dlg, SW_HIDE);
+}
+
+/* Create the contents of "%(cur_window_id)s".  Should be called from its
+ * WNDPROC.
+ */
+void
+%(varname)s_handle_wm_initdialog(HWND hw_dlg) {
+    win32_element_t *cur_box = NULL;
+    win32_element_t *cur_el = NULL;
+    GList* box_stack = NULL;
+
+    cur_box = win32_hbox_new(hw_dlg, NULL);
+    win32_element_set_id(cur_box, "%(cur_window_id)s");
+
+''' % {
+    'cur_window_id': cur_window_id,
+    'header_file_name': header_file_name,
+    'height': cur_height,
+    'title': title,
+    'varname': cur_var_name,
+    'width': cur_width,
+    })
+
+    cur_hf = sect_file(header_file_name)
+
+    cur_hf.write_header('''
+#ifndef %(define_name)s
+#define %(define_name)s
+''' % {
+    'define_name': id_to_name(cur_window_id).upper() + '_H'
+    })
+
+    cur_hf.write_body('''
+HWND %(varname)s_dialog_create (HWND hw_parent);
+void %(varname)s_dialog_show (HWND);
+void %(varname)s_dialog_hide (HWND);
+BOOL CALLBACK %(varname)s_dlg_proc(HWND, UINT, WPARAM, LPARAM);
+void %(varname)s_handle_wm_initdialog(HWND hw_dlg);
+
+''' % {
+    'varname': cur_var_name,
+    })
+
+    cur_hf.write_footer('\n\n#endif /* ' + header_file_name + ' */\n')
+
+    cur_rcf = sect_file(cur_window_id + '.rc')
+
+    cur_rcf.write_body('''
+%(varname)s DIALOG 6, 21, %(width)d, %(height)d
+STYLE DS_MODALFRAME | WS_CAPTION | WS_SYSMENU | DS_SETFOREGROUND | DS_SETFONT
+CAPTION "%(title)s"
+FONT 8, "MS Shell Dlg"
+{
+
+}
+
+''' % {
+    'height': cur_height,
+    'title': title,
+    'varname': cur_var_name,
+    'width': cur_width,
+    })
+
+def win32_gen_dialog_end(node):
+    cur_cf.write_body('\n}\n\n')
+
+#
+# <grid>
+#
+
+def win32_gen_grid(node):
+
+    cur_cf.write_body('''
+    /* Begin <grid> */
+    cur_el = win32_grid_new(cur_box->h_wnd);
+    win32_box_add(cur_box, cur_el, -1);
+''')
+
+    get_element_attributes(node)
+
+    cur_cf.write_body('''
+    box_stack = g_list_prepend(box_stack, cur_box);
+    cur_box = cur_el;
+''')
+
+def win32_gen_grid_end(node):
+    cur_cf.write_body('''
+    box_stack = g_list_first(box_stack);
+    cur_box = (win32_element_t *) box_stack->data;
+    box_stack = g_list_remove(box_stack, cur_box);
+    /* End <grid> */
+''')
+
+#
+# <groupbox>
+#
+
+def win32_gen_groupbox(node):
+
+    cur_cf.write_body('''
+    /* Begin <groupbox> */
+    cur_el = win32_groupbox_new(cur_box->h_wnd);
+    win32_box_add(cur_box, cur_el, -1);
+''')
+
+    get_element_attributes(node)
+
+    cur_cf.write_body('''
+    box_stack = g_list_prepend(box_stack, cur_box);
+    cur_box = cur_el;
+''')
+
+def win32_gen_groupbox_end(node):
+    cur_cf.write_body('''
+    box_stack = g_list_first(box_stack);
+    cur_box = (win32_element_t *) box_stack->data;
+    box_stack = g_list_remove(box_stack, cur_box);
+    /* End <groupbox> */
+''')
+
+#
+# <hbox>
+#
+
+def win32_gen_hbox(node):
+
+    cur_cf.write_body('''
+    /* Begin <hbox> */
+    cur_el = win32_hbox_new(NULL, cur_box->h_wnd);
+    win32_box_add(cur_box, cur_el, -1);
+''')
+
+    get_element_attributes(node)
+
+    cur_cf.write_body('''
+    box_stack = g_list_prepend(box_stack, cur_box);
+    cur_box = cur_el;
+''')
+
+def win32_gen_hbox_end(node):
+    cur_cf.write_body('''
+    box_stack = g_list_first(box_stack);
+    cur_box = (win32_element_t *) box_stack->data;
+    box_stack = g_list_remove(box_stack, cur_box);
+    /* End <hbox> */
+''')
+
+#
+# <listbox>
+#
+
+def win32_gen_listbox(node):
+    show_header = 'FALSE'
+    onselect    = get_attribute(node, 'onselect')
+    el_id       = get_attribute(node, 'id')
+
+    for child in node.childNodes:
+	if child.nodeName == 'listhead':
+	    show_header = 'TRUE'
+
+    cur_cf.write_body('''
+    /* Begin <listbox> */
+    cur_el = win32_listbox_new(cur_box->h_wnd, %(show_header)s);
+    win32_box_add(cur_box, cur_el, -1);
+''' % {
+    'show_header': show_header
+    })
+
+    get_element_attributes(node)
+
+    if (onselect):
+	if el_id is None:
+	    raise CodeGenerationError
+	cur_cf.write_body('    win32_listbox_set_onselect(cur_el, %s);' % (onselect))
+	cur_hf.write_body('''
+/* Command sent by <listbox> id "%(id)s" */
+void %(onselect)s (win32_element_t *, LPNMLISTVIEW);
+'''	% {
+	    'id': el_id,
+	    'onselect': onselect,
+	})
+
+def win32_gen_listbox_end(node):
+    cur_cf.write_body('''
+    win32_listbox_minimum_size(cur_el);
+    /* End <listbox> */
+''')
+
+
+#
+# <listcell>
+#
+
+def win32_gen_listcell(node):
+    # <listcell> MUST be a child of <listitem>
+    # XXX - Move to xulender.py
+    if node.parentNode.nodeName != 'listitem':
+	raise CodeGenerationError
+
+    label = get_attribute(node, 'label', '')
+    el_id = get_attribute(node, 'id', '')
+
+    cur_cf.write_body('''
+    /* Begin <listcell> */
+    win32_listbox_add_cell(cur_el, "%(id)s", "%(label)s");
+''' % {
+    'id': el_id,
+    'label': label,
+    })
+
+#
+# <listcol>
+#
+
+def win32_gen_listcol(node):
+    # <listcol> MUST be a child of <listcols>
+    # XXX - Move to xulender.py
+    if node.parentNode.nodeName != 'listcols':
+	raise CodeGenerationError
+
+    col_id = get_attribute(node, 'id', 'NULL')
+    if col_id != 'NULL':
+	col_id = '"' + col_id + '"'
+
+    cur_cf.write_body('''
+    /* Begin <listcol> */
+    win32_listbox_add_column(cur_el, %(id)s, NULL);
+''' % {
+    'id': col_id,
+    })
+
+#
+# <listheader>
+#
+
+def win32_gen_listheader(node):
+    # <listheader> MUST be a child of <listhead>
+    # XXX - Move to xulender.py
+    if node.parentNode.nodeName != 'listhead':
+	raise CodeGenerationError
+
+    col_id = get_attribute(node, 'id', 'NULL')
+    if col_id != 'NULL':
+	col_id = '"' + col_id + '"'
+    label = get_attribute(node, 'label', '')
+
+    cur_cf.write_body('''
+    /* Begin <listheader> */
+    win32_listbox_add_column(cur_el, %(id)s, "%(label)s");
+''' % {
+    'id': col_id,
+    'label': label,
+    })
+
+#
+# <menu>
+#
+
+def win32_gen_menu(node):
+    label = get_attribute(node, 'label', '[ No Label ]')
+
+    cur_rcf.write_body('  Popup "&%(label)s" {\n' % { 'label': label } )
+
+def win32_gen_menu_end(node):
+    cur_rcf.write_body('  }\n')
+
+#
+# <menubar>
+#
+
+def win32_gen_menubar(node):
+    mbid = cur_window_id.upper() + '_MENU'
+    for ch in [' ', '-']: mbid = mbid.replace(ch, '_')
+
+    cur_rcf.write_body('%(mbid)s MENU {\n' % {'mbid': mbid})
+
+def win32_gen_menubar_end(node):
+    cur_rcf.write_body('}\n\n')
+
+#
+# <menuitem>
+#
+
+def win32_gen_menuitem(node):
+    # Menuitems MUST be a child of <menupopup>
+    # XXX - Move to xulender.py
+    if node.parentNode.nodeName != 'menupopup':
+	raise CodeGenerationError
+
+    global cur_menu_id, cur_hfd, cur_rcfd
+
+    label = get_attribute(node, 'label', '[ No Label ]')
+    command = get_attribute(node, 'command', None)
+    selected = get_attribute(node, 'selected', 'false')
+
+    if node.parentNode.parentNode.nodeName == 'menu':
+	if command is None:
+	    raise CodeGenerationError
+
+	id = 'IDM_' + command.upper()
+	for ch in [' ', '-']: id = id.replace(ch, '_')
+
+	cur_rcf.write_body('    MENUITEM "&%(label)s", %(id)s\n' % {
+	    'id': id,
+	    'label': label
+	    })
+
+	cur_hf.write_body('#define %(id)s %(cur_menu_id)d\n' % {
+	    'cur_menu_id': cur_menu_id,
+	    'id': id,
+	    })
+	cur_menu_id = cur_menu_id + 1
+    elif node.parentNode.parentNode.nodeName == 'menulist':
+	if selected.lower() == 'true':
+	    selected = 'TRUE'
+	else:
+	    selected = 'FALSE'
+	cur_cf.write_body('    win32_menulist_add(cur_el, "%(label)s", %(selected)s);\n' % {
+	    'label': label,
+	    'selected': selected,
+	    })
+
+#
+# <menulist>
+#
+
+def win32_gen_menulist(node):
+    cur_cf.write_body('''
+    /* Begin <menulist> */
+    cur_el = win32_menulist_new(cur_box->h_wnd);
+    win32_box_add(cur_box, cur_el, -1);
+''')
+
+    get_element_attributes(node)
+
+def win32_gen_menulist_end(node):
+    cur_cf.write_body('    /* End <menulist> */\n')
+
+#
+# <menuseparator>
+#
+
+def win32_gen_menuseparator(node):
+    # XXX - Move to xulender.py
+    if node.parentNode.nodeName != 'menupopup':
+	raise CodeGenerationError
+    if node.parentNode.parentNode.nodeName != 'menu':
+	raise CodeGenerationError
+
+    cur_rcf.write_body('    MENUITEM SEPARATOR\n')
+
+#
+# <progressmeter>
+#
+
+def win32_gen_progressmeter(node):
+
+    cur_cf.write_body('''
+    /* Begin <progressmeter> */
+    cur_el = win32_progressmeter_new(cur_box->h_wnd);
+    win32_box_add(cur_box, cur_el, -1);
+''')
+
+    get_element_attributes(node)
+
+    cur_cf.write_body('    /* End <progressmeter> */\n')
+
+#
+# <radio>
+#
+
+def win32_gen_radio(node):
+    global start_group
+
+    label = get_attribute(node, 'label', '')
+
+    cur_cf.write_body('''
+    /* Begin <radio> */
+    cur_el = win32_radio_new(cur_box->h_wnd, "%(label)s", %(start_group)d);
+    win32_box_add(cur_box, cur_el, -1);
+''' % {
+	'label': label,
+	'start_group': start_group
+    })
+
+    get_element_attributes(node)
+    start_group = 0
+
+    cur_cf.write_body('    /* End <radio> */\n')
+
+#
+# <radiogroup>
+#
+# XXX - Should this be its own full-fledged element instead of a vbox?
+#
+def win32_gen_radiogroup(node):
+    global start_group
+    start_group = 1
+
+    cur_cf.write_body('''
+    /* Begin <radiogroup> */
+    cur_el = win32_vbox_new(NULL, cur_box->h_wnd);
+    win32_box_add(cur_box, cur_el, -1);
+''')
+
+    get_element_attributes(node)
+
+    cur_cf.write_body('''
+    box_stack = g_list_prepend(box_stack, cur_box);
+    cur_box = cur_el;
+''')
+
+def win32_gen_radiogroup_end(node):
+    cur_cf.write_body('''
+    box_stack = g_list_first(box_stack);
+    cur_box = (win32_element_t *) box_stack->data;
+    box_stack = g_list_remove(box_stack, cur_box);
+    /* End <radiogroup> */
+''')
+
+
+#
+# <row>
+#
+# XXX - We need to verify that we're inside a <grid><rows></rows></grid>
+# construct.
+#
+def win32_gen_row(node):
+
+    flex = float(get_attribute(node, 'flex', '0.0'))
+    flexgroup = int(get_attribute(node, 'flexgroup', '0'))
+    cur_cf.write_body('''
+    /* Begin <row> */
+    win32_grid_add_row(cur_box, %(flex)1.1f, %(flexgroup)d);
+    /* End <row> */
+''' % {
+	'flex': flex,
+	'flexgroup': flexgroup
+	})
+
+#
+# <spacer>
+#
+def win32_gen_spacer(node):
+
+    cur_cf.write_body('''
+    /* Begin <spacer> */
+    cur_el = win32_spacer_new(cur_box->h_wnd);
+    win32_box_add(cur_box, cur_el, -1);
+''')
+
+    get_element_attributes(node)
+
+    cur_cf.write_body('    /* End <spacer> */\n')
+
+#
+# <splitter>
+#
+
+def win32_gen_splitter(node):
+    cur_cf.write_body('''
+    /* Begin <splitter> */
+    win32_box_add_splitter(cur_box, -1);
+    /* End <splitter> */
+''')
+
+#
+# <textbox>
+#
+
+def win32_gen_textbox(node):
+    value = get_attribute(node, 'value', None)
+    rows = get_attribute(node, 'rows', None)
+    multiline = get_attribute(node, 'multiline', 'FALSE');
+
+    if multiline.lower() == 'true':
+	multiline = 'TRUE'
+
+    cur_cf.write_body('''
+    /* Begin <textbox> */
+    cur_el = win32_textbox_new(cur_box->h_wnd, %s);
+    win32_box_add(cur_box, cur_el, -1);
+''' % (multiline))
+
+    get_element_attributes(node)
+
+    if value is not None:
+	cur_cf.write_body('    win32_textbox_set_text(cur_el, "%s");\n' % (value))
+    if rows is not None:
+	cur_cf.write_body('    win32_textbox_set_row_count(cur_el, %s);\n' % (rows))
+# XXX - Add multiline, onchange, oninput, other textbox-specific attributes
+
+    cur_cf.write_body('    /* End <textbox> */\n')
+
+#
+# <tree>
+#
+
+def win32_gen_tree(node):
+    onselect = get_attribute(node, 'onselect')
+    el_id = get_attribute(node, 'id')
+
+    cur_cf.write_body('''
+    /* Begin <tree> */
+    cur_el = win32_tree_new(cur_box->h_wnd);
+    win32_box_add(cur_box, cur_el, -1);
+''')
+
+    get_element_attributes(node)
+
+    if (onselect):
+	if el_id is None:
+	    raise CodeGenerationError
+	cur_cf.write_body('    win32_tree_set_onselect(cur_el, %s);' % (onselect))
+	# XXX - Add to the callback mechanism
+	cur_hf.write_body('''
+/* Command sent by <tree> id "%(id)s" */
+void %(onselect)s (win32_element_t *, NMTREEVIEW *);
+'''	% {
+	    'id': el_id,
+	    'onselect': onselect,
+	})
+
+def win32_gen_tree_end(node):
+    cur_cf.write_body('''
+    win32_tree_minimum_size(cur_el);
+    /* End <tree> */
+''')
+
+#
+# <treecell>
+#
+
+def win32_gen_treecell(node):
+    # <treecell>s MUST be a child of <treerow>
+    # XXX - Move to xulender.py
+    if node.parentNode.nodeName != 'treerow':
+	raise CodeGenerationError
+
+    label = get_attribute(node, 'label', '')
+    el_id = get_attribute(node, 'id', '')
+
+    cur_cf.write_body('''
+    /* Begin <treecell> */
+    win32_tree_add_cell(cur_el, "%(id)s", "%(label)s");
+''' % {
+    'id': el_id,
+    'label': label,
+    })
+
+#
+# <treecol>
+#
+
+def win32_gen_treecol(node):
+    # <treecol>s MUST be a child of <treecols>
+    # XXX - Move to xulender.py
+    if node.parentNode.nodeName != 'treecols':
+	raise CodeGenerationError
+
+    col_id = get_attribute(node, 'id', '')
+    label = get_attribute(node, 'label', '')
+    primary = get_attribute(node, 'primary', 'FALSE')
+    if primary.lower() == 'true':
+	primary = 'TRUE'
+    hideheader = get_attribute(node, 'hideheader', 'FALSE')
+    if hideheader.lower() == 'true':
+	hideheader = 'TRUE'
+
+    cur_cf.write_body('''
+    /* Begin <treecol> */
+    win32_tree_add_column(cur_el, "%(id)s", "%(label)s", %(primary)s, %(hideheader)s);
+''' % {
+    'id': col_id,
+    'label': label,
+    'primary': primary,
+    'hideheader': hideheader,
+    })
+
+#
+# <treeitem>
+#
+
+def win32_gen_treeitem(node):
+    # <treeitem>s MUST be a child of <treechildren>
+    # XXX - Move to xulender.py
+    if node.parentNode.nodeName != 'treechildren':
+	raise CodeGenerationError
+
+    is_open = get_attribute(node, 'open', 'FALSE')
+
+    cur_cf.write_body('''
+    /* Begin <treeitem> */
+    win32_tree_push(cur_el);
+''')
+
+    if is_open.lower() == 'true':
+	cur_cf.write_body('    win32_tree_flag_open_item(cur_el);\n')
+
+def win32_gen_treeitem_end(node):
+    cur_cf.write_body('''
+    win32_tree_pop(cur_el);
+    /* End <treeitem> */
+''')
+
+#
+# <treerow>
+#
+
+def win32_gen_treerow(node):
+    # <treerow>s MUST be a child of <treeitem>
+    # XXX - Move to xulender.py
+    if node.parentNode.nodeName != 'treeitem':
+	raise CodeGenerationError
+
+    el_id = get_attribute(node, 'id', '')
+
+    cur_cf.write_body('''
+    /* Begin <treerow> */
+    win32_tree_add_row(cur_el, "%(id)s");
+''' % {
+    'id': el_id
+    })
+
+#
+# <vbox>
+#
+
+def win32_gen_vbox(node):
+
+    cur_cf.write_body('''
+    /* Begin <vbox> */
+    cur_el = win32_vbox_new(NULL, cur_box->h_wnd);
+    win32_box_add(cur_box, cur_el, -1);
+''')
+
+    get_element_attributes(node)
+
+    cur_cf.write_body('''
+    box_stack = g_list_prepend(box_stack, cur_box);
+    cur_box = cur_el;
+''')
+
+def win32_gen_vbox_end(node):
+    cur_cf.write_body('''
+    box_stack = g_list_first(box_stack);
+    cur_box = (win32_element_t *) box_stack->data;
+    box_stack = g_list_remove(box_stack, cur_box);
+    /* End <vbox> */
+''')
+
+#
+# <window>
+#
+
+#
+# Contained elements are added to the WM_CREATE notify function.
+#
+# XXX - We need a way to automagically pick up a list of the types of
+# widgets we use, and #include them.
+#
+# XXX - Fix #include order to fix va_start/_end redefinition errors.
+#
+def win32_gen_window(node):
+    global cur_cf, cur_hf, cur_rcf, cur_window_id
+
+    try:
+	cur_window_id = node.attributes['id'].value
+	cur_var_name = id_to_name(cur_window_id)
+    except:
+	CodeGenerationError
+
+    cur_width = int(get_attribute(node, 'width', 250))
+    cur_height = int(get_attribute(node, 'height', 100))
+    title = get_attribute(node, 'title', '[ Untitled - ' + cur_window_id + ' ]')
+    id = get_attribute(node, 'id', None)
+    header_file_name = cur_window_id + '.h'
+
+    cur_cf = sect_file(cur_window_id + '.c')
+    cur_cf.write_body('''
+#include "config.h"
+
+#ifdef HAVE_LIBPCAP
+#include <pcap.h>
+#endif
+
+#include <windows.h>
+#include <windowsx.h>
+#include <commctrl.h>
+
+#include "globals.h"
+
+#include <epan/epan.h>
+
+#include "win32-c-sdk.h"
+#include "ethereal-win32.h"
+
+#include "%(header_file_name)s"
+
+/* Create window "%(cur_window_id)s"*/
+HWND
+%(varname)s_window_create (HINSTANCE h_instance) {
+    HWND  h_wnd;
+
+    /* Register main window class if this is the first instance of the app. */
+    /* if (!hPrevInstance)
+	if (!MenuInit (hInstance))
+	    return 0; */
+
+    h_wnd = CreateWindow ("%(varname)s", "%(title)s",
+	WS_OVERLAPPEDWINDOW,
+	CW_USEDEFAULT, CW_USEDEFAULT, %(width)d, %(height)d,
+	(HWND) NULL, NULL, h_instance, (LPSTR) NULL);
+
+    if (!h_wnd)
+	return NULL;
+
+    return h_wnd;
+}
+
+void
+%(varname)s_window_show(HWND h_wnd, int n_cmd_show) {
+    ShowWindow (h_wnd, n_cmd_show);
+    UpdateWindow (h_wnd);
+}
+
+/* Resize the contents of "%(cur_window_id)s".  Should be called from its
+ * WNDPROC.
+ */
+void
+%(varname)s_handle_wm_size(HWND hwnd, int width, int height) {
+    win32_element_t *hw_hbox;
+
+    hw_hbox = (win32_element_t *) GetWindowLong(hwnd, GWL_USERDATA);
+    win32_element_assert (hw_hbox);
+
+    win32_element_resize(hw_hbox, width, height);
+}
+
+/*
+ * Create the contents of "%(cur_window_id)s".  Should be called from its
+ * WNDPROC.
+ */
+void
+%(varname)s_handle_wm_create(HWND hw_mainwin) {
+    win32_element_t *win_hbox, *cur_box = NULL;
+    win32_element_t *cur_el = NULL;
+    GList* box_stack = NULL;
+
+    win_hbox = win32_hbox_new(hw_mainwin, NULL);
+    cur_box = win_hbox;
+    win32_element_set_id(cur_box, "%(cur_window_id)s");
+
+''' % {
+    'cur_window_id': cur_window_id,
+    'header_file_name': header_file_name,
+    'height': cur_height,
+    'title': title,
+    'varname': cur_var_name,
+    'width': cur_width,
+    })
+
+    cur_hf = sect_file(header_file_name)
+
+    cur_hf.write_header('''
+#ifndef %(define_name)s
+#define %(define_name)s
+''' % {
+    'define_name': id_to_name(cur_window_id).upper() + '_H'
+    })
+
+    cur_hf.write_body('''
+HWND %(varname)s_window_create (HINSTANCE h_instance);
+void %(varname)s_handle_wm_size(HWND hw_mainwin, int width, int height);
+void %(varname)s_handle_wm_create(HWND hw_mainwin);
+void %(varname)s_window_show(HWND h_wnd, int n_cmd_show);
+void %(varname)s_window_hide(HWND h_wnd, int n_cmd_show);
+
+''' % {
+    'varname': cur_var_name,
+    })
+
+    cur_hf.write_footer('\n\n#endif /* ' + header_file_name + ' */\n')
+
+    cur_rcf = sect_file(cur_window_id + '.rc')
+    cur_rcf.write_header('''
+#include "%(header_file_name)s"
+''' % {'header_file_name': header_file_name } )
+
+def win32_gen_window_end(node):
+    cur_cf.write_body('''
+    /* Set our initial size */
+    win32_element_resize(win_hbox,
+	win32_element_get_width(win_hbox),
+	win32_element_get_height(win_hbox));
+    /* End <window> */
+}
+
+''')
+
+#
+# Ethereal-specific element generators
+# XXX - These should be in their own module.
+#
+
+#
+# <ethereal:byteview>
+#
+
+def win32_gen_ethereal_byteview(node):
+
+    cur_cf.write_body('''
+    /* Begin <ethereal:byteview> */
+    cur_el = ethereal_byteview_new(cur_box->h_wnd);
+    win32_box_add(cur_box, cur_el, -1);
+''')
+
+    get_element_attributes(node)
+
+    cur_cf.write_body('''
+    /* End <ethereal:byteview> */
+    ''')
+
+#
+# <ethereal:combobox>
+#
+# XXX - The XUL Planet element reference at
+#
+#   http://www.xulplanet.com/references/elemref/
+#
+# doesn't define a "combobox" element.  However, the Luxor XUL project
+# does in the form of a "choice" elment:
+#
+#   http://luxor-xul.sourceforge.net/xulref/tag-choice.html
+#
+# We define a combobox in the Ethereal namespace.  Should we use "choice"
+# instead?
+#
+
+def win32_gen_ethereal_combobox(node):
+
+    cur_cf.write_body('''
+    /* Begin <ethereal:combobox> */
+    cur_el = ethereal_combobox_new(cur_box->h_wnd);
+    win32_box_add(cur_box, cur_el, -1);
+''')
+
+    get_element_attributes(node)
+
+    cur_cf.write_body('''
+    /* End <ethereal:combobox> */
+    ''')
+
+#
+# <ethereal:packetlist>
+#
+
+def win32_gen_ethereal_packetlist(node):
+
+    cur_cf.write_body('''
+    /* Begin <ethereal:packetlist> */
+    cur_el = ethereal_packetlist_new(cur_box->h_wnd);
+    win32_box_add(cur_box, cur_el, -1);
+''')
+
+    get_element_attributes(node)
+
+    cur_cf.write_body('''
+    /* End <ethereal:packetlist> */
+    ''')
+
+#
+# <ethereal:spinner>
+#
+
+def win32_gen_ethereal_spinner(node):
+
+    cur_cf.write_body('''
+    /* Begin <spinner> */
+    cur_el = ethereal_spinner_new(cur_box->h_wnd);
+    win32_box_add(cur_box, cur_el, -1);
+''')
+
+    get_element_attributes(node)
+
+    cur_cf.write_body('    /* End <spinner> */\n')
+
+#
+# <ethereal:treeview>
+#
+
+def win32_gen_ethereal_treeview(node):
+
+    cur_cf.write_body('''
+    /* Begin <ethereal:treeview> */
+    cur_el = ethereal_treeview_new(cur_box->h_wnd);
+    win32_box_add(cur_box, cur_el, -1);
+    ''')
+
+    get_element_attributes(node)
+
+    cur_cf.write_body('    /* End <ethereal:treeview> */\n')
Files ethereal/xulender/win32csdk.pyc and ethereal-win32/xulender/win32csdk.pyc differ
diff -x entries -urN ethereal/xulender/xulender.py ethereal-win32/xulender/xulender.py
--- ethereal/xulender/xulender.py	1969-12-31 18:00:00.000000000 -0600
+++ ethereal-win32/xulender/xulender.py	2004-05-17 15:04:58.000000000 -0500
@@ -0,0 +1,122 @@
+#!/bin/env python
+#
+# Xulender ('zoo-len-d&r) - XUL frontend generator.  Reads a XUL interface
+# definition and generates an application frontend for a particular language
+# and API.
+#
+# Mozilla XUL reference: http://www.mozilla.org/xpfe/xulref/
+# XUL Planet XUL reference: http://www.xulplanet.com/references/elemref/
+#
+# Tabs: 8  Indent: 4
+
+# Standard Python modules
+import sys
+import xml
+from xml.dom.minidom import parse
+import os
+import getopt
+
+# Local modules
+import win32csdk
+from frontendutil import id_to_name
+
+frontend_list = []
+
+def level_prefix(lvl):
+    if lvl == 0: return ''
+    return '--' * (lvl - 1) + '->'
+
+def walk_tree(doc, lvl):
+    for n in doc.childNodes:
+
+	# To make things a little more clean (but a bit less obvious)
+	# we borrow a trick from John Aycock's SPARK utility.  For each
+	# frontend we have defined, we first see if a "gen" routine
+	# exists for the nodename, e.g. win32_gen_button.  If it does,
+	# we call it.  This avoids having a huge if/then/else clause in
+	# each frontend module.
+	if n.nodeType is n.ELEMENT_NODE:
+	    # XXX - For now, we force external elements (e.g. ethereal:packetlist)
+	    # into the local "namespace" by converting the colon to an underscore.
+	    # We may at some point to put external element generators in their own
+	    # modules.
+	    element_name = id_to_name(n.nodeName)
+
+	    for fe in frontend_list:
+		pfx = fe.get_func_prefix()
+		func_name = pfx + '_gen_' + element_name
+		if hasattr(fe, func_name):
+		    func = getattr(fe, func_name)
+		    func(n)
+
+	    print level_prefix(lvl), element_name,
+	    if n.hasAttributes():
+		print '[',
+		for k in n.attributes.keys():
+		    print k + ': ' + n.attributes[k].value + ' ',
+		print ']'
+	    else:
+		print
+
+	if n.hasChildNodes():
+	    walk_tree(n, lvl + 1)
+
+	# Once we've walked our child nodes, see if we have an _end routine
+	# defined, and call it.
+	if n.nodeType is n.ELEMENT_NODE:
+	    for fe in frontend_list:
+		pfx = fe.get_func_prefix()
+		func_name = pfx + '_gen_' + element_name + '_end'
+		if hasattr(fe, func_name):
+		    func = getattr(fe, func_name)
+		    func(n)
+
+def main():
+    path_prefix = ''
+    opts, files = getopt.getopt(sys.argv[1:], 'f:I:')
+
+    for flag, arg in opts:
+    	if flag == '-f':
+	    frontends = arg.split(',')
+	    for fe in frontends:
+		if fe == 'win32csdk':
+		    if win32csdk not in frontend_list:
+			frontend_list.append(win32csdk)
+		else:
+		    print 'Error: Unknown frontend "' + fe + '"'
+	if flag == '-I':
+	    path_prefix = arg
+
+    print 'Path prefix: ' + path_prefix
+
+    # XXX - Pass these as command-line arguments from the Makefile
+    if (len(files) < 1):
+	print "Error: No XUL source file specified."
+	return 1
+
+    for xul_file in files:
+	ds = open(os.path.join(path_prefix, xul_file))
+	try:
+	    ui_doc = parse(ds)
+	except xml.parsers.expat.ExpatError, err:
+	    print 'Error in "%s", line %d, column %d\n' % (
+		os.path.join(path_prefix, xul_file),
+		err.lineno,
+		err.offset + 1,
+	    )
+	    ds.seek(0)
+	    for i in range(err.lineno):
+		err_line = ds.readline()
+	    print err_line.rstrip()
+	    print ' ' * err.offset + '^'
+	    print 'ExpatError: ' + \
+		xml.parsers.expat.ErrorString(err.code) + '\n'
+	    return 1
+
+	walk_tree(ui_doc, 0)
+
+	for fe in frontend_list:
+	    fe.cleanup()
+
+if __name__ == '__main__':
+    sys.exit(main())